123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- #ifndef REFLECTTRACK_H
- #define REFLECTTRACK_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "ZComdef.h"
- #include "osal.h"
- #define REFTRACK_MAX_ENTRIES 5
- #define REFTRACK_MAX_SIMUL 3
- #define REFTRACK_MAX_INDIRECTS 1
- #define REFDEST_WAITING 0x00
- #define REFDEST_SENT 0x01
- #define REFDEST_APS_ACK_EXPECTED 0x02
- #define REFDEST_DELIVERED 0x04
- #define REFDEST_FAILED 0x08
- #define REFDEST_INDIRECT 0x80
- typedef struct
- {
- uint8 dstAddrMode;
- uint16 dstAddr;
- uint8 dstEP;
- uint8 handle;
- uint8 options;
- } ReflectDestRec_t;
- typedef struct
- {
- void *next;
- uint8 ID;
- uint8 srcEP;
- uint16 clusterID;
- uint8 confirmed;
- uint16 transID;
- uint8* asdu;
- uint8 numdests;
- ReflectDestRec_t dests[];
-
-
- } ReflectTracking_t;
-
- extern void reflectTrack_SetMaxEntries( uint8 newEntries );
- extern void reflectTracking_SetMaxSimultaneous( uint8 newEntries );
- extern uint8 reflectTracking_GetMaxSimultaneous( void );
- extern uint8 reflectTracking_GetMaxSimultaneousAdjusted( ReflectTracking_t *entry );
- extern void reflectTracking_SetMaxIndirect( uint8 newEntries );
- extern uint8 reflectTracking_GetMaxIndirect( void );
- extern uint8 reflectTracking_GetMaxIndirectAdjusted( ReflectTracking_t *entry );
- extern ReflectTracking_t *reflectTrack_GetNewEntry( uint8 numDests,
- uint8 asduLen );
-
- extern uint8 reflectTrack_NumEntries( void );
- extern void reflectTrack_RemoveEntry( ReflectTracking_t *entry );
- extern void reflectTrack_RemoveEntryNotify( ReflectTracking_t *entry);
- extern void reflectTrack_AddToEnd( ReflectTracking_t *entry );
- extern uint8 reflectTrack_AddNewEntry( ReflectTracking_t *newEntry );
- extern ReflectTracking_t *reflectTrack_FindEntry( byte refID );
- extern ReflectTracking_t *reflectTrack_FindHandle( byte handle );
- extern void reflectTrack_UpdateOption( ReflectTracking_t *ref, byte handle, byte option );
- extern ReflectTracking_t *reflectTrack_FindEntryStatus( uint8 endpoint, uint16 clusterID );
- extern uint8 reflectTracking_GetNumDelivered( ReflectTracking_t *entry );
- extern uint8 reflectTracking_GetNumFailed( ReflectTracking_t *entry );
- extern void reflectTracking_FillInFailed( ReflectTracking_t *entry, uint16 *list );
- #ifdef __cplusplus
- }
- #endif
- #endif
|