132 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/****************************************************************************
 | 
						|
 | 
						|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | 
						|
 | 
						|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | 
						|
be copied by any method or incorporated into another program without
 | 
						|
the express written consent of Aerospace C.Power. This Information or any portion
 | 
						|
thereof remains the property of Aerospace C.Power. The Information contained herein
 | 
						|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | 
						|
liability for its use in any way and conveys no license or title under
 | 
						|
any patent or copyright and makes no representation or warranty that this
 | 
						|
Information is free from patent or copyright infringement.
 | 
						|
 | 
						|
****************************************************************************/
 | 
						|
 | 
						|
#ifndef IOT_BSRM_REC_H
 | 
						|
#define IOT_BSRM_REC_H
 | 
						|
 | 
						|
#include "os_types_api.h"
 | 
						|
#include "iot_pkt_api.h"
 | 
						|
 | 
						|
/* iot common header files */
 | 
						|
#include "iot_config_api.h"
 | 
						|
#include "iot_bsrm_common.h"
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#if IOT_BSRM_MODE
 | 
						|
 | 
						|
/* branch event number of data */
 | 
						|
#define IOT_BSRM_BRANCH_EVT_ENTRY_INFO_NUM   4
 | 
						|
 | 
						|
#pragma pack(push)  /* save the pack status */
 | 
						|
#pragma pack(1)     /* 1 byte align */
 | 
						|
 | 
						|
/* branch detect recording formats */
 | 
						|
typedef struct {
 | 
						|
    /* time stamp of received identification signal */
 | 
						|
    uint32_t ts;
 | 
						|
    /* success flag */
 | 
						|
    uint8_t is_vaild  : 1,
 | 
						|
    /* phase see, IOT_PLC_PHASE_XXX */
 | 
						|
            phase     : 2,
 | 
						|
    /* reserved */
 | 
						|
            reserved1 : 5;
 | 
						|
    /* signal intensity 1, unit: 1.0A */
 | 
						|
    float   signal1_rssi;
 | 
						|
    /* signal intensity 2, unit: 1.0A */
 | 
						|
    float   signal2_rssi;
 | 
						|
    /* base wave intensity */
 | 
						|
    float   base_rssi;
 | 
						|
    /* background noise, unit: 1.0A */
 | 
						|
    float   noise;
 | 
						|
    /* identification code len */
 | 
						|
    uint8_t id_code_len;
 | 
						|
    /* identification code */
 | 
						|
    uint8_t id_code[IOT_BSRM_BRANCH_ID_CODE_MAX];
 | 
						|
    /* reserved */
 | 
						|
    uint8_t reserved2[16];
 | 
						|
} iot_bsrm_branch_info_entry_t;
 | 
						|
 | 
						|
/* branch event entry descriptor */
 | 
						|
typedef struct {
 | 
						|
    /* number of records of this event */
 | 
						|
    uint8_t data_cnt;
 | 
						|
    /* data of records of this event */
 | 
						|
    iot_bsrm_branch_info_entry_t record_data[IOT_BSRM_BRANCH_EVT_ENTRY_INFO_NUM];
 | 
						|
} iot_bsrm_branch_evt_rec_entry_t;
 | 
						|
 | 
						|
#pragma pack(pop)
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_bsrm_info_rec() - information data record.
 | 
						|
 * @param ts:       time stamp.
 | 
						|
 * @param len:      data len.
 | 
						|
 * @param data:     data pointer.
 | 
						|
 */
 | 
						|
void iot_bsrm_info_rec(uint32_t ts, uint8_t len, uint8_t *data);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_bsrm_info_rec_read() - reading information record.
 | 
						|
 * @param ts: specify the start time, and return the time of the first point of
 | 
						|
 *            successful lookup
 | 
						|
 * @param total_cnt: return The number of the latest records in the current ts.
 | 
						|
 * @param n: specifies the number of points to be read, returns the number of
 | 
						|
 *           points actually read.
 | 
						|
 * @param pkt: return reading information record pointer.
 | 
						|
 * @param start_index: the number after idx found according to ts.
 | 
						|
 * @retval: ERR_OK - successfully, otherwise - error code
 | 
						|
 */
 | 
						|
uint8_t iot_bsrm_info_rec_read(uint32_t *ts, uint16_t *total_cnt,
 | 
						|
    uint8_t *n, iot_pkt_t **pkt, uint16_t start_index);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_bsrm_rec_init() - initialization recording Module
 | 
						|
 * @retval: ERR_OK - successfully, otherwise - error code
 | 
						|
 */
 | 
						|
uint32_t iot_bsrm_rec_init(void);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_bsrm_evt_read() - read event record.
 | 
						|
 * @param evt_num:       read event number.
 | 
						|
 * @param evt:           return data pointer.
 | 
						|
 */
 | 
						|
uint8_t iot_bsrm_evt_read(uint32_t evt_num, uint8_t **evt);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_bsrm_evt_rec_write() - write event record.
 | 
						|
 * @param evt_buf:       data to be written.
 | 
						|
 */
 | 
						|
void iot_bsrm_evt_rec_write(uint8_t *evt_buf);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_bsrm_rec_info_clear() - clear information data record.
 | 
						|
 */
 | 
						|
void iot_bsrm_rec_info_clear(void);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_bsrm_rec_evt_clear() - clear event record.
 | 
						|
 */
 | 
						|
void iot_bsrm_rec_evt_clear(void);
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif  /* IOT_BSRM_REC_H */
 |