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 */
|