123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- #ifndef BINDINGTABLE_H
- #define BINDINGTABLE_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "ZComdef.h"
- #include "osal.h"
- #include "nwk.h"
- #include "AssocList.h"
- #define MAX_DEVICE_PAIRS 255
- #define DSTGROUPMODE_ADDR 0
- #define DSTGROUPMODE_GROUP 1
- typedef struct
- {
- uint16 numRecs;
- } nvBindingHdr_t;
- typedef struct
- {
-
- uint8 srcEP;
- uint8 dstGroupMode;
- uint16 dstIdx;
-
-
- uint8 dstEP;
- uint8 numClusterIds;
- uint16 clusterIdList[MAX_BINDING_CLUSTER_IDS];
-
-
-
- } BindingEntry_t;
- extern BindingEntry_t BindingTable[];
- extern void InitBindingTable( void );
- extern byte bindRemoveEntry( BindingEntry_t *pBind );
- extern byte bindIsClusterIDinList( BindingEntry_t *entry, uint16 clusterId );
- extern byte bindRemoveClusterIdFromList( BindingEntry_t *entry, uint16 clusterId );
- extern byte bindAddClusterIdToList( BindingEntry_t *entry, uint16 clusterId );
- extern BindingEntry_t *bindFindExisting( byte srcEpInt,
- zAddrType_t *dstShortAddr, byte dstEpInt );
- extern void nwk_remove_bindSrc( zAddrType_t *srcAddr, byte epInt,
- byte numClusterIds, uint16 *clusterIds );
- extern void bindRemoveDev( zAddrType_t *shortAddr);
- extern void bindRemoveSrcDev( uint8 ep );
- extern byte bindNumBoundTo( zAddrType_t *devAddr, byte devEpInt, byte srcMode );
- extern uint16 bindNumReflections( uint8 ep, uint16 clusterID );
- extern BindingEntry_t *bindFind( uint8 ep, uint16 clusterID, uint8 skipping );
- extern void nwk_HandBindingTimeout( void );
- extern byte BindInitNV( void );
- extern void BindSetDefaultNV( void );
- extern uint16 BindRestoreFromNV( void );
- extern void BindWriteNV( void );
- extern void bindUpdateAddr( uint16 oldAddr, uint16 newAddr );
- extern BindingEntry_t *bindAddEntry( byte srcEpInt,
- zAddrType_t *dstAddr, byte dstEpInt,
- byte numClusterIds, uint16 *clusterIds );
- extern uint16 bindNumOfEntries( void );
- extern void bindCapacity( uint16 *maxEntries, uint16 *usedEntries );
- extern BindingEntry_t *(*pbindAddEntry)( byte srcEpInt,
- zAddrType_t *dstAddr, byte dstEpInt,
- byte numClusterIds, uint16 *clusterIds );
- extern uint16 (*pbindNumOfEntries)( void );
- extern void (*pbindRemoveDev)( zAddrType_t *Addr );
- extern byte (*pBindInitNV)( void );
- extern void (*pBindSetDefaultNV)( void );
- extern uint16 (*pBindRestoreFromNV)( void );
- extern void (*pBindWriteNV)( void );
- extern uint8 bindingAddrMgsHelperConvert( uint16 idx, zAddrType_t *addr );
- extern uint16 bindingAddrMgsHelperConvertShort( uint16 idx );
- extern BindingEntry_t *GetBindingTableEntry( uint16 Nth );
- #ifdef __cplusplus
- }
- #endif
- #endif
|