91 lines
3.0 KiB
C
91 lines
3.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 PLC_BEACON_HTBUS_H
|
||
|
#define PLC_BEACON_HTBUS_H
|
||
|
|
||
|
/* os shim includes */
|
||
|
#include "os_types_api.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/* define htbus beacon entry type */
|
||
|
typedef enum _beacon_htbus_entry_type_id {
|
||
|
MAC_BCN_HTBUS_ENTRY_TYPE_ID_TS = 0x00,
|
||
|
MAC_BCN_HTBUS_ENTRY_TYPE_ID_UD = 0x01,
|
||
|
} beacon_htbus_entry_type_id_t;
|
||
|
|
||
|
/* pack for the structures in the whole file */
|
||
|
#pragma pack(push) /* save the pack status */
|
||
|
#pragma pack(1) /* 1 byte align */
|
||
|
|
||
|
/* define htbus beacon type */
|
||
|
#define PLC_HTBUS_BC_TYPE_CCO 0
|
||
|
#define PLC_HTBUS_BC_TYPE_STA 1
|
||
|
|
||
|
/* htbus beacon payload header */
|
||
|
typedef struct _beacon_htbus_payload_fixed_header {
|
||
|
/* htbus becacon type, see PLC_HTBUS_BC_TYPE_XXX */
|
||
|
uint8_t type : 3,
|
||
|
/* number of entries */
|
||
|
beacon_entry_num : 5;
|
||
|
/* reboot counter */
|
||
|
uint8_t reboot_cnt;
|
||
|
/* reques period counter */
|
||
|
uint16_t period_cnt;
|
||
|
} beacon_htbus_payload_fixed_header_t;
|
||
|
|
||
|
/* htbus beacon entry header */
|
||
|
typedef struct _beacon_htbus_entry_hdr {
|
||
|
/* entry type, see beacon_htbus_entry_type_id_t */
|
||
|
uint16_t entry_type : 4,
|
||
|
/* entry len */
|
||
|
entry_len : 12;
|
||
|
} beacon_htbus_entry_hdr_t;
|
||
|
|
||
|
/* htbus time slot entry */
|
||
|
typedef struct _beacon_htbus_entry_ts {
|
||
|
/* htbus beacon entry header */
|
||
|
beacon_htbus_entry_hdr_t hdr;
|
||
|
/* cco slot duration, uint is 1ms */
|
||
|
uint8_t cco_slot_dur;
|
||
|
/* sta slot duration, uint is 1ms */
|
||
|
uint8_t sta_slot_dur;
|
||
|
/* reques period start NTB */
|
||
|
uint32_t start_ntb;
|
||
|
/* node tei bitmap len */
|
||
|
uint8_t bm_len : 4,
|
||
|
/* reserved for further use */
|
||
|
rsvd : 4;
|
||
|
/* node tei bitmap with response slot assigned. */
|
||
|
uint8_t rsp_bm[0];
|
||
|
} beacon_htbus_entry_ts_t;
|
||
|
|
||
|
/* htbus user data entry */
|
||
|
typedef struct _beacon_htbus_entry_ud {
|
||
|
/* htbus beacon entry header */
|
||
|
beacon_htbus_entry_hdr_t hdr;
|
||
|
/* user data payload */
|
||
|
uint8_t data[0];
|
||
|
} beacon_htbus_entry_ud_t;
|
||
|
|
||
|
#pragma pack(pop) /* restore the pack status */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* PLC_BEACON_HTBUS_H */
|