⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hh_nwk.h

📁 zigbee中心节点源代码
💻 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 + -