538 lines
17 KiB
C
538 lines
17 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_PROTO_GE_H
|
|
#define IOT_PROTO_GE_H
|
|
|
|
#include "iot_flashinfo.h"
|
|
#include "iot_proto_common.h"
|
|
#include "iot_grapp.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#pragma pack(push) // save the pack status
|
|
#pragma pack(1) // 1 byte align
|
|
/* timer delay */
|
|
typedef enum {
|
|
CCO_TX_TIME = 1,
|
|
STA_RX_TIME = 2,
|
|
STA_TX_TIME = 3,
|
|
CCO_RX_TIME = 4,
|
|
} app_delay_timer_id_e;
|
|
|
|
/** subfn = PROTO_LOCAL_MAC_SET_CMD */
|
|
typedef struct _ge_frame_local_mac_set_subfn1_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_local_mac_set_subfn1_t;
|
|
|
|
/* subfn = PROTO_JOIN_NW_SET_CMD */
|
|
typedef struct _ge_frame_join_nw_set_subfn3_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t nid;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_join_nw_set_subfn3_t;
|
|
|
|
/* subfn = PROTO_LEAVE_NW_SET_CMD */
|
|
typedef struct _ge_frame_leave_nw_set_subfn4_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t nid;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_leave_nw_set_subfn4_t;
|
|
|
|
/* subfn = PROTO_OP_WHITELIST_SET_CMD */
|
|
typedef struct _ge_frame_op_wl_set_subfn5_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t action;
|
|
uint8_t resv0;
|
|
uint8_t seq;
|
|
uint16_t total_frame;
|
|
uint16_t cur_frame;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_op_wl_set_subfn5_t;
|
|
|
|
/** subfn = PROTO_CONN_IND_RPT_CMD */
|
|
typedef struct _ge_frame_conn_ind_rpt_set_subfn9_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t nid;
|
|
uint8_t resv0;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t rssi;
|
|
uint8_t snr;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_conn_ind_rpt_set_subfn9_t;
|
|
|
|
/* subfn = PROTO_DISCONN_IND_RPT_CMD */
|
|
typedef struct _ge_frame_disc_ind_rpt_set_subfn10_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t nid;
|
|
uint8_t resv0;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t reason;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_disc_ind_rpt_set_subfn10_t;
|
|
|
|
/* subfn = PROTO_REJECT_IND_RPT_CMD */
|
|
typedef struct _ge_frame_reject_ind_rpt_set_subfn36_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t reason;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_reject_ind_rpt_set_subfn36_t;
|
|
|
|
/* subfn = PROTO_CCO_START_GROUP_NET_CMD */
|
|
typedef struct _ge_frame_start_group_set_subfn13_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t nid;
|
|
uint8_t resv0;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_start_group_set_subfn13_t;
|
|
|
|
/* subfn = PROTO_CCO_END_GROUP_NET_CMD */
|
|
typedef struct _ge_frame_end_group_set_subfn14_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t nid;
|
|
uint8_t resv0;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_end_group_set_subfn14_t;
|
|
|
|
/* subfn = PROTO_CCO_NID_SET_CMD */
|
|
typedef struct _ge_frame_cco_nid_set_subfn17_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t nid;
|
|
uint8_t resv0;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_cco_nid_set_subfn17_t;
|
|
|
|
/** subfn = PROTO_LOCAL_IP4_SET_CMD */
|
|
typedef struct _ge_frame_local_ip4_set_subfn35_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t ip4_addr[IOT_IP4_ADDR_LEN];
|
|
uint8_t ip4_mask[IOT_IP4_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_local_ip4_set_subfn35_t;
|
|
|
|
/* subfn = PROTO_STA_LEAVE_IND */
|
|
typedef struct _ge_frame_sta_leave_ind_set_subfn154_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_sta_leave_ind_set_subfn154_t;
|
|
|
|
/* subfn = PROTO_GE_DATA_CMD, general data send subfn */
|
|
typedef struct _ge_frame_data_send_set_subfn160_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
/* This byte is used for TX.It is useless for RX. */
|
|
uint8_t force_tx_connless : 1, /* send as connless */
|
|
force_noaggr : 1, /* force no aggr */
|
|
recv_connless : 1, /* received as connless */
|
|
not_need_ack : 1, /* flag if ack, 0:need ack */
|
|
/* 1:not need ack */
|
|
retr_cnt : 2, /* retransmission cnts */
|
|
resv : 2;
|
|
/* 0:host data 1:internal beacon data */
|
|
uint8_t data_type : 1,
|
|
port_id : 6, /* Port ID for cust used. */
|
|
data_ext_flag : 1; /* payload data extend flag, */
|
|
/* 0:not extend, 1: extend */
|
|
|
|
uint8_t dest_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t data[0];
|
|
} ge_frame_data_send_set_subfn160_t;
|
|
|
|
/* subfn = PROTO_GE_UART_PARAM_SET_CMD, set uart parameter */
|
|
typedef struct _ge_frame_uart_param_set_subfn161_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
uint32_t baudrate;
|
|
uint8_t parity;
|
|
uint8_t data_bit;
|
|
uint8_t stop_bit;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_uart_param_set_subfn161_t;
|
|
|
|
#if IOT_GE_AES_ENABLE
|
|
/* subfn = PROTO_GE_AES_CMD, general data send subfn */
|
|
typedef struct _ge_frame_aes_set_subfn163_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
/* aes contxt */
|
|
ge_aes_contxt_t aes;
|
|
uint8_t dest_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t seq;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_aes_set_subfn163_t;
|
|
#endif
|
|
|
|
/* subfn = PROTO_GE_GPIO_CONFIG_CMD, config gpio */
|
|
typedef struct _ge_frame_gpio_config_subfn164_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
uint8_t dest_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t src_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t gpio_num;
|
|
uint8_t dir_mode; /* 1:output , 2:input */
|
|
uint8_t pull_mode;/* 1:pullup , 2:pulldown */
|
|
uint8_t output_value; /* if config output, need set the value */
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_gpio_config_subfn164_t;
|
|
|
|
|
|
/* subfn = PROTO_GE_GPIO_SET_CMD, set gpio */
|
|
typedef struct _ge_frame_gpio_set_subfn165_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
uint8_t dest_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t src_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t gpio_num;
|
|
uint8_t value;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_gpio_set_subfn165_t;
|
|
|
|
typedef struct _ge_delay_time_test_t {
|
|
/* node level */
|
|
int8_t level;
|
|
/* sequency number */
|
|
uint32_t sn;
|
|
/* fill data length */
|
|
uint16_t datalen;
|
|
/* mcu transmit time (us) */
|
|
uint32_t mcu_tx_time;
|
|
/* cco transmit time (us) */
|
|
uint32_t cco_tx_time;
|
|
/* sta receive time (us) */
|
|
uint32_t sta_rx_time;
|
|
/* sta transmit time (us) */
|
|
uint32_t sta_tx_time;
|
|
/* cco receive time (us) */
|
|
uint32_t cco_rx_time;
|
|
} ge_delay_tm_test_t;
|
|
|
|
/* subfn = PROTO_GE_TM_CMD, test delay time */
|
|
typedef struct _ge_frame_delay_time_subfn166_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t force_tx_connless : 1, /* send as connless */
|
|
force_noaggr : 1, /* force no aggr */
|
|
recv_connless : 1, /* received as connless */
|
|
not_need_ack : 1, /* flag if ack, 0:need ack */
|
|
/* 1:not need ack */
|
|
retr_cnt : 2, /* retransmission cnts */
|
|
resv : 2;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t dest_mac[IOT_MAC_ADDR_LEN];
|
|
ge_delay_tm_test_t tm_test;
|
|
} ge_frame_delay_time_subfn166_t;
|
|
|
|
/* subfn = PROTO_NET_STS_QUERY_CMD, MCU query net states */
|
|
typedef struct _ge_frame_net_stat_query_subfn6_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_net_stat_query_subfn6_t;
|
|
|
|
/* subfn = PROTO_GE_UART_PARAM_QUERY_CMD */
|
|
typedef struct _ge_frame_uart_param_query_subfn14_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_uart_param_query_subfn14_t;
|
|
|
|
/* subfn = PROTO_NODE_INFO_QUERY_CMD, MCU query node info */
|
|
typedef struct _ge_frame_node_info_query_subfn23_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t type;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_node_info_query_subfn23_t;
|
|
|
|
/* subfn = PROTO_NW_INFO_QUERY_CMD, MCU query network info */
|
|
typedef struct _ge_frame_nw_info_query_subfn24_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t type;
|
|
uint8_t seq;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_nw_info_query_subfn24_t;
|
|
|
|
/* subfn = PROTO_GE_EXT_WL_QUERY_CMD */
|
|
typedef struct _ge_frame_ext_wl_query_subfn15_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
uint16_t index;
|
|
uint16_t sta_cnt;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_ext_wl_query_subfn15_t;
|
|
|
|
/* subfn = PROTO_NID_QUERY_CMD */
|
|
typedef struct _ge_frame_nid_query_subfn16_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_nid_query_subfn16_t;
|
|
|
|
#if IOT_GE_AES_ENABLE
|
|
/* subfn = PROTO_AES_QUERY_CMD */
|
|
typedef struct _ge_frame_aes_query_subfn26_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_aes_query_subfn26_t;
|
|
#endif
|
|
|
|
/* subfn = PROTO_GE_GPIO_QUERY_CMD, query gpio */
|
|
typedef struct _ge_frame_gpio_query_subfn27_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
uint8_t dest_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t src_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t gpio_num;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_gpio_query_subfn27_t;
|
|
|
|
/** subfn = PROTO_LOCAL_MAC_RESP_CMD */
|
|
typedef struct _ge_frame_local_mac_resp_subfn1_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t dir;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t nw_role;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_local_mac_resp_subfn1_t;
|
|
|
|
/* subfn = PROTO_TOPO_RESP_CMD */
|
|
typedef struct _ge_frame_topo_resp_subfn5_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t type;
|
|
uint8_t seq;
|
|
uint16_t total_cnt;
|
|
uint16_t cur_cnt;
|
|
uint8_t info[0];
|
|
} ge_frame_topo_resp_subfn5_t;
|
|
|
|
/* subfn = PROTO_NET_STS_RESP_CMD, net states response to MCU */
|
|
typedef struct _ge_frame_net_stat_resp_subfn6_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t snr;
|
|
uint8_t nf;
|
|
uint8_t seq;
|
|
uint16_t total_cnt;
|
|
uint16_t cur_cnt;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t tsf;
|
|
uint8_t rsf;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_net_stat_resp_subfn6_t;
|
|
|
|
/* subfn = PROTO_WHITELIST_RESP_CMD */
|
|
typedef struct _ge_frame_wl_resp_subfn7_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t cco_flag;
|
|
uint8_t seq;
|
|
uint16_t total_cnt;
|
|
uint16_t cur_cnt;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_wl_resp_subfn7_t;
|
|
|
|
/* subfn = PROTO_AVAIL_NW_RESP_CMD */
|
|
typedef struct _ge_frame_avail_nw_resp_subfn9_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t total_cnt;
|
|
uint8_t cur_cnt;
|
|
uint8_t nid;
|
|
uint8_t snr;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_avail_nw_resp_subfn9_t;
|
|
|
|
/* subfn = PROTO_GE_UART_PARAM_RESP_CMD */
|
|
typedef struct _ge_frame_uart_param_resp_subfn14_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
uint32_t baudrate;
|
|
uint8_t parity;
|
|
uint8_t data_bit;
|
|
uint8_t stop_bit;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_uart_param_resp_subfn14_t;
|
|
|
|
/* subfn = PROTO_GE_EXT_WL_RESP_CMD */
|
|
typedef struct _ge_frame_ext_wl_resp_subfn15_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
uint16_t total;
|
|
uint16_t rpt_cnt;
|
|
uint8_t mac[0][IOT_MAC_ADDR_LEN];
|
|
} ge_frame_ext_wl_resp_subfn15_t;
|
|
|
|
/* subfn = PROTO_NID_RESP_CMD */
|
|
typedef struct _ge_frame_nid_resp_subfn16_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv[2];
|
|
uint8_t seq;
|
|
uint8_t nid;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_nid_resp_subfn16_t;
|
|
|
|
/* subfn = PROTO_MODULE_INFO_RESP_CMD */
|
|
typedef struct _ge_frame_module_info_resp_subfn18_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
/* module role, see IOT_PLC_DEV_ROLE_XXX, 1-STA, 2-PCO, 4-CCO */
|
|
uint8_t role;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
/* module state CCO is ready or STA is joined network */
|
|
uint8_t state;
|
|
/* network id */
|
|
uint8_t nid;
|
|
uint8_t cco_mac[IOT_MAC_ADDR_LEN];
|
|
/* whitelist state, 1-enable whitelist , 0-disable whitelist */
|
|
uint8_t wl_state;
|
|
/* software version */
|
|
uint32_t swver;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_module_info_resp_subfn18_t;
|
|
|
|
/* subfn = PROTO_NODE_INFO_RESP_CMD, node info response to MCU */
|
|
typedef struct _ge_frame_node_info_resp_subfn23_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv;
|
|
uint8_t type;
|
|
uint8_t seq;
|
|
uint16_t total_cnt;
|
|
uint8_t cur_cnt;
|
|
uint8_t index;
|
|
uint8_t info[0];
|
|
} ge_frame_node_info_resp_subfn23_t;
|
|
|
|
/* subfn = PROTO_NW_INFO_RESP_CMD, network info response to MCU */
|
|
typedef struct _ge_frame_nw_info_resp_subfn24_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t max_level;
|
|
/* info of each level, see iot_plc_nw_level_info_t */
|
|
uint8_t level_info[0];
|
|
} ge_frame_nw_info_resp_subfn24_t;
|
|
|
|
/** subfn = PROTO_LOCAL_IP4_RESP_CMD */
|
|
typedef struct _ge_frame_local_ip4_resp_subfn25_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t ip4_addr[IOT_IP4_ADDR_LEN];
|
|
uint8_t ip4_mask[IOT_IP4_ADDR_LEN];
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_local_ip4_resp_subfn25_t;
|
|
|
|
#if IOT_GE_AES_ENABLE
|
|
/** subfn = PROTO_AES_RESP_CMD */
|
|
typedef struct _ge_frame_aes_resp_subfn26_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
ge_aes_contxt_t aes;
|
|
uint8_t seq;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_aes_resp_subfn26_t;
|
|
#endif
|
|
|
|
/* subfn = PROTO_GE_GPIO_RESP_CMD, set gpio */
|
|
typedef struct _ge_frame_query_gpio_resp_subfn27_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t dest_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t src_mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t gpio_num;
|
|
uint8_t gpio_dir;
|
|
uint8_t pull_mode;
|
|
uint8_t value;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_query_gpio_resp_subfn27_t;
|
|
|
|
/* subfn = PROTO_SW_BT_PART_IND_CMD */
|
|
typedef struct _ge_frame_sw_bt_part_ind_subfn95_t {
|
|
ge_extend_fn_hdr_t hdr;
|
|
uint8_t resv0;
|
|
uint8_t resv1;
|
|
uint8_t seq;
|
|
uint8_t mac[IOT_MAC_ADDR_LEN];
|
|
uint8_t reason;
|
|
ge_frm_tail_t tail;
|
|
} ge_frame_sw_bt_part_ind_subfn95_t;
|
|
|
|
#pragma pack(pop)
|
|
void iot_proto_delay_time_send(iot_pkt_t *data_pkt, uint8_t *src_mac, uint8_t *dst_mac);
|
|
|
|
void iot_delay_timer_get(uint32_t *data, uint8_t time_type, uint32_t set_time);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* IOT_PROTO_GE_H */
|