📄 hh_nwk.h
字号:
#ifndef _HH_NWK_H_
#define _HH_NWK_H_
//NWK status
#define NWK_SUCCESS 0x00
#define NWK_INVALID_PARAMETER 0xc1
#define NWK_INVALID_REQUEST 0xc2
#define NWK_NOT_PERMITTED 0xc3
#define NWK_STARTUP_FAILURE 0xc4
#define NWK_ALREADY_PRESENT 0xc5
#define NWK_SYNC_FAILURE 0xc6
#define NWK_TABLE_FULL 0xc7
#define NWK_UNKNOWN_DEVICE 0xc8
#define NWK_UNSUPPORTED_ATTRIBUTE 0xc9
#define NWK_NO_NETWORKS 0xca
#define NWK_LEAVE_UNCONFIRMED 0xcb
#define NWK_MAX_FRM_CNTR 0xcc
#define NWK_NO_KEY 0xcd
#define NWK_BAD_CCM_OUTPUT 0xce
//NWK constants
#define NWK_nwkcCoordinatorCapable
#define NWK_nwkcDefaultSecurityLevel
#define NWK_nwkcDiscoveryRetryLimit 0x03
#define NWK_nwkcMaxDepth 0x0f
#define NWK_nwkcMinHeaderOverhead 0x08
#define NWK_nwkcProtocolVersion 0x01
#define NWK_nwkcRepairThreshold 0x03
#define NWK_nwkcRouteDiscoveryTime 0x2710
#define NWK_nwkcMaxBroadcastJitter 0x40
#define NWK_nwkcInitialRREQRetries 0x03
#define NWK_nwkcRREQRetries 0x02
#define NWK_nwkcRREQRetryInteval 0xfe
#define NWK_nwkcMinRREQJitter 0x01
#define NWK_nwkcMaxRREQJitter 0x40
//NWK IB attributes id
#define NWK_nwkSequenceNumber 0x81
#define NWK_nwkPassiveAckTimeout 0x82
#define NWK_nwkMaxBroadcastRetries 0x83
#define NWK_nwkMaxChildren 0x84
#define NWK_nwkMaxDepth 0x85
#define NWK_nwkMaxRouters 0x86
#define NWK_nwkNeighborTable 0x87
#define NWK_nwkNetworkBroadcastDeliveryTime 0x88
#define NWK_nwkReportConstantCost 0x89
#define NWK_nwkRouteDiscoveryRetriesPermitted 0x8a
#define NWK_nwkRouteTable 0x8b
#define NWK_nwkSymLink 0x8e
#define NWK_nwkCapabilityInformation 0x8f
#define NWK_nwkUseTreeAddrAlloc 0x90
#define NWK_nwkUseTreeRouting 0x91
#define NWK_nwkNextAddress 0x92
#define NWK_nwkAvailableAddresses 0x93
#define NWK_nwkAddressIncrement 0x94
#define NWK_nwkTransactionPersistenceTime 0x95
//Frame Control Field
#define NWK_FCF_DATA 0x0
#define NWK_FCF_COMMAND 0x1
#define NWK_FCF_PROTOCOLVERSION 0x01
#define NWK_FCF_SUPPRESSROUTEDISCOVERY 0x00
#define NWK_FCF_ENABLEROUTEDISCOVERY 0x01
#define NWK_FCF_FORCEROUTEDISCOVERY 0x02
#define NWK_FCF_SECURITY 9
#define NWK_DESTADDR_BROADCAST 0xffff
//NWK structures
// nwk frame overhead (frame control field, dest addr, src addr, radius, data sequence number)
#define NWK_aDataFrameOverheadSize (2 + 2 + 2 + 1 + 1)
#define NWK_aMaxFramePayloadSize (MAC_aMaxFramePayloadSize - NWK_aDataFrameOverheadSize - 1)
//NWD command frame
#define NWK_COMMANDFRAME_ROUTEREQUEST 0x01
#define NWK_COMMANDFRAME_ROUTEREPIY 0x02
#define NWK_COMMANDFRAME_ROUTEERROR 0x03
#define NWK_COMMANDFRAME_LEAVE 0x04
#define NWK_ROUTEERROR_NOROUTEAVAILABLE 0x00
#define NWK_ROUTEERROR_TREELINKFAILURE 0x01
#define NWK_ROUTEERROR_NONTREELINKFAILURE 0x02
#define NWK_ROUTEERROR_LOWBATTERYLEVEL 0x03
#define NWK_ROUTEERROR_NOROUTINGCAPACITY 0x04
typedef struct {
// UINT8 frameType;
// UNIT8 protocolVersion;
// UINT8 discoverRoute;
// BOOL security;
WORD frameControlField;
WORD destAddr;
WORD srcAddr;
BYTE radiusCounter;
BYTE dataSeqNumber;
UINT8 nsduLength;
BYTE nsdu[NWK_aMaxFramePayloadSize];
BOOL nsduStatus;
} NWKRxFrameInfo;
typedef struct {
// UINT8 frameType;
// UNIT8 protocolVersion;
// UINT8 discoverRoute;
// BOOL security;
WORD frameControlField;
WORD destAddr;
WORD srcAddr;
BYTE radiusCounter;
UINT8 dataSeqNumber;
UINT8 nsduLength;
BYTE nsdu[NWK_aMaxFramePayloadSize];
BOOL nsduStatus;
} NWKTxFrameInfo;
//NWK function prototypes
UINT8 NLDEDATA_request(WORD nwkFrameControlField, WORD destAddr, WORD srcAddr, BYTE radiusCounter, BYTE dataSeqNumber, UINT8 nsduLength, BYTE *nsdu, BYTE txOption);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -