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