45 #include "transceiver.h"
52 #define NWK_BUFFERS_AMOUNT (3)
56 #define NWK_MAX_ENDPOINTS_AMOUNT (0xF)
62 #define NWK_DUPLICATE_REJECTION_TABLE_SIZE (10)
68 #define NWK_DUPLICATE_REJECTION_TTL (50)
71 #define NWK_DUPLICATES_REJECTION_TIMER_INTERVAL (20)
75 #define NWK_ROUTE_TABLE_SIZE (10)
81 #define NWK_ACK_WAIT_TIME (50)
84 #ifndef NWK_SLEEPING_NODE
85 #define NWK_SLEEPING_NODE (0)
90 #ifndef NWK_ENABLE_ROUTING
91 #define NWK_ENABLE_ROUTING (1)
95 #define NWK_NFCTL_MASK (0x07)
99 #define NWK_ENDPOINT_ID_LW_COMMAND (0x0)
103 #define NWK_HEADER_SIZE (9 + 7 + 2)
107 #define NWK_MAX_PAYLOAD_SIZE (MAX_FRAME_SIZE - NWK_HEADER_SIZE)
109 #define NWK_NO_TASK_ID (255)
113 #define USE_RX_AACK (1)
118 typedef enum SHORTENUM
120 NWK_OPT_ACK_REQUEST = 0x01,
121 NWK_OPT_ENABLE_SECURITY = 0x02,
123 NWK_OPT_LINK_LOCAL = 0x04,
125 NWK_OPT_BROADCAST_PAN_ID = 0x08,
129 typedef enum SHORTENUM
133 NWK_IND_OPT_ACK_REQUEST = NWK_OPT_ACK_REQUEST,
136 NWK_IND_OPT_SECURED = NWK_OPT_ENABLE_SECURITY,
140 NWK_IND_OPT_LINK_LOCAL = NWK_OPT_LINK_LOCAL,
143 NWK_IND_OPT_BROADCAST_PAN_ID = NWK_OPT_BROADCAST_PAN_ID,
146 NWK_IND_OPT_BROADCAST = 0x10,
150 NWK_IND_OPT_LOCAL = 0x20,
154 typedef enum SHORTENUM
161 NWK_OUT_OF_MEMORY_STATUS,
166 NWK_PHY_CHANNEL_ACCESS_FAILURE_STATUS,
168 NWK_PHY_NO_ACK_STATUS,
174 typedef struct NWK_DataReq_tag
182 void (*confirm)(
struct NWK_DataReq_tag *);
223 uint8_t lw_payload[NWK_MAX_PAYLOAD_SIZE];
228 typedef enum SHORTENUM
234 NWK_TASK_ACK_PENDING,
263 void lw_mesh_init(uint16_t pan_id, uint16_t short_addr, uint8_t channel);
268 void lw_mesh_task_handler();
279 void lw_mesh_open_endpoint(uint8_t endpoint_id,
282 void lw_mesh_set_ack_control(uint8_t control);
286 uint8_t lqi, uint8_t rssi);
291 void lw_ack_received(uint8_t lw_seq, uint8_t lw_cmd_ctrl_message);
NWK_FrameFormat_t * frame
structure for task list to propagate NWK_DataReq_t and NWK_DataInd_t to lw_mesh_task_handler ...
structure for sending frames
structure for receiving frames