123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657 |
- #ifndef ZMAC_H
- #define ZMAC_H
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #include "ZComDef.h"
- #include "zmac_internal.h"
- #ifndef ZMAC_MAX_BEACON_PAYLOAD_LEN
- #define ZMAC_MAX_BEACON_PAYLOAD_LEN (7 + Z_EXTADDR_LEN)
- #endif
- #if defined( MAC_API_H )
- #define ZMAC_CHAN_MASK ( \
- MAC_CHAN_11_MASK | \
- MAC_CHAN_12_MASK | \
- MAC_CHAN_13_MASK | \
- MAC_CHAN_14_MASK | \
- MAC_CHAN_15_MASK | \
- MAC_CHAN_16_MASK | \
- MAC_CHAN_17_MASK | \
- MAC_CHAN_18_MASK | \
- MAC_CHAN_19_MASK | \
- MAC_CHAN_20_MASK | \
- MAC_CHAN_21_MASK | \
- MAC_CHAN_22_MASK | \
- MAC_CHAN_23_MASK | \
- MAC_CHAN_24_MASK | \
- MAC_CHAN_25_MASK | \
- MAC_CHAN_26_MASK | \
- MAC_CHAN_27_MASK | \
- MAC_CHAN_28_MASK )
- #else
- #define ZMAC_CHAN_MASK 0x07FFF800
- #endif
- #if !defined( LQI_CORR_MIN )
- #define LQI_CORR_MIN 50
- #endif
- #if !defined( LQI_CORR_MAX )
- #define LQI_CORR_MAX 110
- #endif
- typedef struct
- {
- uint8 Event;
- uint8 Status;
- } ZMacEventHdr_t;
- typedef struct
- {
- uint8 KeySource[ZMAC_KEY_SOURCE_MAX_LEN];
- uint8 SecurityLevel;
- uint8 KeyIdMode;
- uint8 KeyIndex;
- }ZMacSec_t;
- typedef struct
- {
- zAddrType_t CoordAddress;
- uint16 CoordPANId;
- uint16 SuperframeSpec;
- uint8 LogicalChannel;
- uint8 ChannelPage;
- uint8 GTSPermit;
- uint8 LinkQuality;
- uint32 TimeStamp;
- uint8 SecurityFailure;
- ZMacSec_t Sec;
- } ZMacPanDesc_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- zAddrType_t SrcAddress;
- zAddrType_t DstAddress;
- uint16 PANId;
- uint8 Reason;
- ZMacSec_t Sec;
- } ZMacCommStatusInd_t;
- typedef struct
- {
- uint8 LogicalChannel;
- uint8 ChannelPage;
- uint8 TrackBeacon;
- }ZMacSyncReq_t;
- typedef struct
- {
- zAddrType_t DstAddr;
- uint16 DstPANId;
- uint8 SrcAddrMode;
- uint8 Handle;
- uint8 TxOptions;
- uint8 Channel;
- uint8 Power;
- ZMacSec_t Sec;
- uint8 msduLength;
- uint8 *msdu;
- } ZMacDataReq_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- uint8 msduHandle;
- ZMacDataReq_t *pDataReq;
- uint32 Timestamp;
- uint16 Timestamp2;
- uint8 retries;
- uint8 mpduLinkQuality;
- uint8 correlation;
- int8 rssi;
- } ZMacDataCnf_t;
- typedef struct
- {
- uint8 LogicalChannel;
- uint8 ChannelPage;
- zAddrType_t CoordAddress;
- uint16 CoordPANId;
- uint8 CapabilityFlags;
- ZMacSec_t Sec;
- } ZMacAssociateReq_t;
- typedef struct
- {
- ZLongAddr_t DeviceAddress;
- uint16 AssocShortAddress;
- uint8 Status;
- ZMacSec_t Sec;
- } ZMacAssociateRsp_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- ZLongAddr_t DeviceAddress;
- uint8 CapabilityFlags;
- ZMacSec_t Sec;
- } ZMacAssociateInd_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- uint16 AssocShortAddress;
- ZMacSec_t Sec;
- } ZMacAssociateCnf_t;
- typedef struct
- {
- zAddrType_t DeviceAddress;
- uint16 DevicePanId;
- uint8 DisassociateReason;
- uint8 TxIndirect;
- ZMacSec_t Sec;
- } ZMacDisassociateReq_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- } ZMacRxEnableCnf_t;
- typedef struct
- {
- uint32 ScanChannels;
- uint8 ScanType;
- uint8 ScanDuration;
- uint8 ChannelPage;
- uint8 MaxResults;
- ZMacSec_t Sec;
- union
- {
- uint8 *pEnergyDetect;
- ZMacPanDesc_t *pPanDescriptor;
- }Result;
- } ZMacScanReq_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- uint8 ScanType;
- uint8 ChannelPage;
- uint32 UnscannedChannels;
- uint8 ResultListSize;
- union
- {
- uint8 *pEnergyDetect;
- ZMacPanDesc_t *pPanDescriptor;
- }Result;
- } ZMacScanCnf_t;
- typedef struct
- {
- uint32 StartTime;
- uint16 PANID;
- uint8 LogicalChannel;
- uint8 ChannelPage;
- uint8 BeaconOrder;
- uint8 SuperframeOrder;
- uint8 PANCoordinator;
- uint8 BatteryLifeExt;
- uint8 CoordRealignment;
- ZMacSec_t RealignSec;
- ZMacSec_t BeaconSec;
- } ZMacStartReq_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- } ZMacStartCnf_t;
- typedef struct
- {
- zAddrType_t CoordAddress;
- uint16 CoordPanId;
- ZMacSec_t Sec;
- } ZMacPollReq_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- } ZMacPollCnf_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- uint16 srcShortAddr;
- uint16 srcPanId;
- } ZMacPollInd_t;
- typedef struct
- {
- ZLongAddr_t OrphanAddress;
- uint16 ShortAddress;
- uint8 AssociatedMember;
- ZMacSec_t Sec;
- } ZMacOrphanRsp_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- ZLongAddr_t OrphanAddress;
- ZMacSec_t Sec;
- } ZMacOrphanInd_t;
- #if defined (MT_MAC_FUNC) || defined (MT_MAC_CB_FUNC)
- typedef struct
- {
- ZMacEventHdr_t hdr;
- uint16 PANId;
- uint8 LogicalChannel;
- uint8 ChannelPage;
- ZMacSec_t Sec;
- } ZMacSyncLossInd_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- ZMacSec_t Sec;
- zAddrType_t SrcAddr;
- zAddrType_t DstAddr;
- uint32 Timestamp;
- uint16 Timestamp2;
- uint16 SrcPANId;
- uint16 DstPANId;
- uint8 mpduLinkQuality;
- uint8 Correlation;
- uint8 Rssi;
- uint8 Dsn;
- uint8 msduLength;
- uint8 *msdu;
- } ZMacDataInd_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- ZLongAddr_t DeviceAddress;
- uint8 DisassociateReason;
- ZMacSec_t Sec;
- } ZMacDisassociateInd_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- zAddrType_t DeviceAddress;
- uint16 panID;
- } ZMacDisassociateCnf_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- uint8 BSN;
- ZMacPanDesc_t *pPanDesc;
- uint8 PendAddrSpec;
- uint8 *AddrList;
- uint8 sduLength;
- uint8 *sdu;
- } ZMacBeaconNotifyInd_t;
- typedef struct
- {
- ZMacEventHdr_t hdr;
- uint8 msduHandle;
- } ZMacPurgeCnf_t;
- #endif
- typedef enum
- {
- TX_PWR_MINUS_22 = -22,
- TX_PWR_MINUS_21,
- TX_PWR_MINUS_20,
- TX_PWR_MINUS_19,
- TX_PWR_MINUS_18,
- TX_PWR_MINUS_17,
- TX_PWR_MINUS_16,
- TX_PWR_MINUS_15,
- TX_PWR_MINUS_14,
- TX_PWR_MINUS_13,
- TX_PWR_MINUS_12,
- TX_PWR_MINUS_11,
- TX_PWR_MINUS_10,
- TX_PWR_MINUS_9,
- TX_PWR_MINUS_8,
- TX_PWR_MINUS_7,
- TX_PWR_MINUS_6,
- TX_PWR_MINUS_5,
- TX_PWR_MINUS_4,
- TX_PWR_MINUS_3,
- TX_PWR_MINUS_2,
- TX_PWR_MINUS_1,
- TX_PWR_ZERO,
- TX_PWR_PLUS_1,
- TX_PWR_PLUS_2,
- TX_PWR_PLUS_3,
- TX_PWR_PLUS_4,
- TX_PWR_PLUS_5,
- TX_PWR_PLUS_6,
- TX_PWR_PLUS_7,
- TX_PWR_PLUS_8,
- TX_PWR_PLUS_9,
- TX_PWR_PLUS_10,
- TX_PWR_PLUS_11,
- TX_PWR_PLUS_12,
- TX_PWR_PLUS_13,
- TX_PWR_PLUS_14,
- TX_PWR_PLUS_15,
- TX_PWR_PLUS_16,
- TX_PWR_PLUS_17,
- TX_PWR_PLUS_18,
- TX_PWR_PLUS_19
- } ZMacTransmitPower_t;
- typedef struct
- {
- byte protocolID;
- byte stackProfile;
- byte protocolVersion;
- byte reserved;
- byte routerCapacity;
- byte deviceDepth;
- byte deviceCapacity;
- byte extendedPANID[Z_EXTADDR_LEN];
- byte txOffset[3];
- byte updateId;
- } beaconPayload_t;
- typedef uint8 (*applySecCB_t)( uint8 len, uint8 *msdu );
- typedef enum
- {
- LQI_ADJ_OFF = 0,
- LQI_ADJ_MODE1,
- LQI_ADJ_MODE2,
- LQI_ADJ_GET = 0xFF
- } ZMacLqiAdjust_t;
- #define NWK_CMD_ID_LEN sizeof( byte )
-
- extern ZMacStatus_t ZMacInit( void );
-
- extern ZMacStatus_t ZMacDataReq( ZMacDataReq_t *param );
-
- extern uint8 ZMacDataReqSec( ZMacDataReq_t *pData, applySecCB_t secCB );
-
- extern ZMacStatus_t ZMacAssociateReq( ZMacAssociateReq_t *param );
-
- extern ZMacStatus_t ZMacAssociateRsp( ZMacAssociateRsp_t *param );
-
- extern ZMacStatus_t ZMacDisassociateReq( ZMacDisassociateReq_t *param );
-
- extern byte ZMacUpdate( void );
-
- extern ZMacStatus_t ZMacGetReq( ZMacAttributes_t attr, byte *value );
-
- extern ZMacStatus_t ZMacOrphanRsp( ZMacOrphanRsp_t *param );
-
- extern ZMacStatus_t ZMacPollReq( ZMacPollReq_t *param );
-
- extern ZMacStatus_t ZMacReset( byte SetDefaultPIB );
-
- extern ZMacStatus_t ZMacScanReq( ZMacScanReq_t *param );
-
- extern ZMacStatus_t ZMacSetReq( ZMacAttributes_t attr, byte *value );
- #ifdef MAC_SECURITY
-
- extern ZMacStatus_t ZMacSecurityGetReq( ZMacAttributes_t attr, byte *value );
-
- extern ZMacStatus_t ZMacSecuritySetReq( ZMacAttributes_t attr, byte *value );
- #endif
-
-
- extern ZMacStatus_t ZMacStartReq( ZMacStartReq_t *param );
-
- extern ZMacStatus_t ZMacSyncReq( ZMacSyncReq_t *param );
-
- extern ZMacStatus_t ZMacCleanReq( void );
-
- extern ZMacStatus_t ZMacPurgeReq( byte msduHandle );
-
- extern ZMacStatus_t ZMacSrcMatchEnable (uint8 addrType, uint8 numEntries);
-
- extern ZMacStatus_t ZMacSrcMatchAddEntry (zAddrType_t *addr, uint16 panID);
-
- extern ZMacStatus_t ZMacSrcMatchDeleteEntry (zAddrType_t *addr, uint16 panID);
-
- extern ZMacStatus_t ZMacSrcMatchAckAllPending (uint8 option);
-
- extern ZMacStatus_t ZMacSrcMatchCheckAllPending (void);
-
- extern void ZMacPwrOnReq ( void );
-
- extern uint8 ZMac_PwrMode(void);
-
- extern ZMacStatus_t ZMacSetTransmitPower( ZMacTransmitPower_t level );
-
- extern void ZMacSendNoData( uint16 DstAddr, uint16 DstPANId );
-
- extern uint8 (*pZMac_AppCallback)( uint8 *msgPtr );
-
- extern uint8 ZMacStateIdle( void );
-
- extern ZMacLqiAdjust_t ZMacLqiAdjustMode( ZMacLqiAdjust_t mode );
- #ifdef __cplusplus
- }
- #endif
- #endif
|