100 lines
3.2 KiB
C
Executable File
100 lines
3.2 KiB
C
Executable File
/****************************************************************************
|
|
|
|
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 CVG_BEACON_SPG_H
|
|
#define CVG_BEACON_SPG_H
|
|
|
|
#include "iot_config.h"
|
|
/* os shim includes */
|
|
#include "os_types.h"
|
|
|
|
/* public api includes */
|
|
#include "mac_bcm_api.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* transform tei to sg13 format */
|
|
typedef struct _trans_2_real_tei {
|
|
uint16_t tei_l : 8,
|
|
tei_h : 4,
|
|
resv0 : 4;
|
|
} trans_2_real_tei_t;
|
|
|
|
typedef struct _trans_2_bc_tei {
|
|
uint16_t tei_l : 4,
|
|
tei_h : 8,
|
|
resv0 : 4;
|
|
} trans_2_bc_tei_t;
|
|
|
|
/* rx beacon descriptor */
|
|
typedef struct _mac_bc_rx_desc_spg {
|
|
/* flag to mark if it is a freq band detection beacon */
|
|
uint32_t detect_bc_flag :1,
|
|
/* valid bcn entry count in entry_sort */
|
|
entry_sort_cnt :7,
|
|
/* beacon entries of the received beacon */
|
|
field_flag :24;
|
|
iot_pkt_t *unknown_entry;
|
|
mac_bc_fc_t fc;
|
|
mac_bc_fp_spg_t fp;
|
|
mac_bc_sta_cap_spg_t sta_cap;
|
|
mac_bc_rt_param_spg_t rt_param;
|
|
mac_bc_freq_chg_t freq_chg;
|
|
mac_bc_time_slot_t time_slot;
|
|
mac_bc_meter_t meter;
|
|
mac_bc_vendor_spec_t vendor;
|
|
mac_bc_fb_detect_t fb_detect;
|
|
mac_bc_rtc_t rtc;
|
|
mac_bc_rf_channel_chg_t rf_chg;
|
|
mac_bc_rf_route_t rf_route;
|
|
mac_bc_simple_param_spg_t rf_simple;
|
|
uint8_t entry_sort[MAC_BCN_SORT_MAX_CNT];
|
|
} mac_bc_rx_desc_spg_t;
|
|
|
|
#if SUPPORT_SOUTHERN_POWER_GRID
|
|
|
|
/*
|
|
* @brief cvg_get_bc_entry_spg() - get pointer to beacon entry field specified
|
|
* by entry_id
|
|
*
|
|
* @param bc: the beacon descriptor
|
|
* @param entry_id: entry id of beacon field
|
|
*
|
|
* @retval: NULL -- if the field is invalid
|
|
* @retval: otherwise -- pointer to specific field
|
|
*/
|
|
void* cvg_get_bc_entry_spg(mac_bc_rx_desc_spg_t *bc, uint8_t entry_id);
|
|
|
|
/*
|
|
* @brief cvg_parse_beacon_spg() - parse a iot_pkt to get beacon info
|
|
* in a mac_bc_rx_desc_t
|
|
*
|
|
* @param pbuf: pointer to a iot_pkt with beacon raw data
|
|
* @param bc_desc: beacon descriptor with all beacon info
|
|
* @retval: network id of the beacon
|
|
*/
|
|
uint32_t cvg_parse_beacon_spg(iot_pkt_t *pbuf, mac_bc_rx_desc_spg_t *bc_desc);
|
|
|
|
#endif // SUPPORT_SOUTHERN_POWER_GRID
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* CVG_BEACON_SPG_H */
|