zdo.h

Go to the documentation of this file.
00001 /************************************************************************/
00017 #ifndef _ZDO_H
00018 #define _ZDO_H
00019 
00020 #include <macAddr.h>
00021 #include <appFramework.h>
00022 #include <aps.h>
00023 #include <configServer.h>
00024 
00025 // \cond internal
00026 #define ZDP_REQUEST_MASK  0x7FFF
00027 #define ZDP_RESPONSE_MASK 0x8000
00028 
00029 #ifdef _SECURITY_
00030 #define PRECONFIGURED_NETWORK_KEY 0
00031 #define PRECONFIGURED_TRUST_CENTER_LINK_KEY 1
00032 #define PRECONFIGURED_TRUST_CENTER_MASTER_KEY 2
00033 #define NOT_PRECONFIGURED 3
00034 
00035 #ifndef ZDO_SECURITY_STATUS
00036 #define ZDO_SECURITY_STATUS NOT_PRECONFIGURED
00037 #endif //ZDO_SECURITY_STATUS
00038 
00039 
00040 #define ZDO_NONE_SECURITY_MODE     0
00041 #define ZDO_STANDARD_SECURITY_MODE 1
00042 #define ZDO_HIGH_SECURITY_MODE     2
00043 #endif//_SECURITY_
00044 
00045 #define MAX_REQUESTED_CLUSTER_NUMBER 9
00046 #define MAX_ACTIVE_EP_NUMBER 3
00047 
00048 #define ZDP_NEIGBOR_TABLE_LIST_SIZE  3
00049 #define ZDP_ADDR_LIST_SIZE  10
00050 // \endcond
00051 /********************************************************************************/
00054 typedef enum
00055 {
00056   LEAVED_BY_PARENT,
00057   LINK_FAIL,
00058   LEAVE_REQ
00059 } NetLostReason_t;
00060 
00064 typedef enum
00065 {
00067   ZDO_SUCCESS_STATUS                = 0x00,
00069   ZDO_INVALID_PARAMETERS_STATUS     = 0x01,
00071   ZDO_NOT_PERMITTED_STATUS          = 0x03,
00073   ZDO_BUSY_STATUS                   = 0x04,
00075   ZDO_NO_NETWORKS_STATUS            = 0x05,
00077   ZDO_EXTPANID_ALREADY_EXIST_STATUS = 0x06,
00079   ZDO_FAIL_STATUS                   = 0x07,
00080   ZDO_AUTHENTICATION_SUCCESS_STATUS = 0x08,
00081   ZDO_AUTHENTICATION_FAIL_STATUS    = 0x09,
00082   ZDO_SECURITY_SUCCESS_STATUS       = 0x0A,
00083   ZDO_SECURITY_FAIL_STATUS          = 0x0B,
00084   ZDO_SECURITY_NOT_SUPPORTED_STATUS = 0x0C,
00085   ZDO_CMD_COMPLETED_STATUS          = 0x0D,
00087   ZDO_INVALID_REQUEST_STATUS        = 0x80,
00089   ZDO_DEVICE_NOT_FOUND_STATUS       = 0x81,
00091   ZDO_INVALID_EP_STATUS             = 0x82,
00093   ZDO_NOT_ACTIVE_STATUS             = 0x83,
00095   ZDO_NOT_SUPPORTED_STATUS          = 0x84,
00097   ZDO_TIMEOUT_STATUS                = 0x85,
00099   ZDO_NO_MATCH_STATUS               = 0x86,
00101   ZDO_NO_ENTRY_STATUS               = 0x88,
00103   ZDO_NO_DESCRIPTOR_STATUS          = 0x89,
00105   ZDO_INSUFFICIENT_SPACE_STATUS     = 0x8A,
00106   ZDO_RESPONSE_WAIT_TIMEOUT_STATUS  = 0x8B,
00108   ZDO_TABLE_FULL_STATUS             = 0x8C,
00110   ZDO_NOT_AUTHORIZED_STATUS         = 0x8D,
00112   ZDO_NWK_UPDATE_STATUS             = 0x8E,
00114   ZDO_NETWORK_STARTED_STATUS        = 0x8F,
00116   ZDO_NETWORK_LOST_STATUS           = 0x90,
00118   ZDO_NETWORK_LEFT_STATUS           = 0x91,
00120   ZDO_CHILD_JOINED_STATUS           = 0x92,
00122   ZDO_CHILD_REMOVED_STATUS          = 0x93,
00124   ZDO_USER_DESCRIPTOR_UPDATE_STATUS = 0x94,
00126   ZDO_STATIC_ADDRESS_CONFLICT_STATUS = 0x95
00127 } ZDO_Status_t;
00128 
00129 /********************************************************************************/
00132 enum
00133 {
00134   SINGLE_RESPONSE_REQUESTTYPE   = 0x00,
00135   EXTENDED_RESPONSE_REQUESTTYPE = 0x01
00136 };
00137 
00143 enum
00144 {
00145 // Device and Service Discovery commands
00146   NWK_ADDR_CLID                = 0x0000,
00147   IEEE_ADDR_CLID               = 0x0001,
00148   NODE_DESCRIPTOR_CLID         = 0x0002,
00149   POWER_DESCRIPTOR_CLID        = 0x0003,
00150   SIMPLE_DESCRIPTOR_CLID       = 0x0004,
00151   ACTIVE_ENDPOINTS_CLID        = 0x0005,
00152   MATCH_DESCRIPTOR_CLID        = 0x0006,
00153   COMPLEX_DESCRIPTOR_CLID      = 0x0010,
00154   USER_DESCRIPTOR_CLID         = 0x0011,
00155   DISCOVERY_CASH_CLID          = 0x0012,
00156   DEVICE_ANNCE_CLID            = 0x0013,
00157   USER_DESC_CONF_CLID          = 0x0014,
00158   SYSTEM_SERVER_DISCOVERY_CLID = 0x0015,
00159   DISCOVERY_STORE_CLID         = 0x0016,
00160   NODE_DESC_STORE_CLID         = 0x0017,
00161   POWER_DESC_STORE_CLID        = 0x0018,
00162   ACTIVE_EP_STORE_CLID         = 0x0019,
00163   SIMPLE_DESC_STORE_CLID       = 0x001A,
00164   REMOVE_NODE_CACHE_CLID       = 0x001B,
00165   FIND_NODE_CACHE_CLID         = 0x001C,
00166   EXTENDED_SIMPLE_DESC_CLID    = 0x001D,
00167   EXTENDED_ACTIVE_EP_CLID      = 0x001E,
00168 // Bind client manager commands
00169   END_DEVICE_BIND_CLID         = 0x0020,
00170   BIND_CLID                    = 0x0021,
00171   UNBIND_CLID                  = 0x0022,
00172   BIND_REGISTER_CLID           = 0x0023,
00173   REPLACE_DEVICE_CLID          = 0x0024,
00174   STORE_BCKUP_BIND_ENTRY_CLID  = 0x0025,
00175   REMOVE_BCKUP_BIND_ENTRY_CLID = 0x0026,
00176   BACKUP_BIND_TABLE_CLID       = 0x0027,
00177   RECOVER_BIND_TABLE_CLID      = 0x0028,
00178   BACKUP_SOURCE_BIND_CLID      = 0x0029,
00179   RECOVER_SOURCE_BIND_CLID     = 0x002A,
00180 // Network Management Client Services commands
00181   MGMT_NWK_DISC_CLID           = 0x0030,
00182   MGMT_LQI_CLID                = 0x0031,
00183   MGMT_RTG_CLID                = 0x0032,
00184   MGMT_BIND_CLID               = 0x0033,
00185   MGMT_LEAVE_CLID              = 0x0034,
00186   MGMT_DIRECT_JOIN_CLID        = 0x0035,
00187   MGMT_PERMIT_JOINING_CLID     = 0x0036,
00188   MGMT_CACHE_CLID              = 0x0037,
00189   MGMT_NWK_UPDATE_CLID         = 0x0038 
00190 };
00191 
00192 /********************************************************************************/
00195 typedef enum
00196 {
00197   SHORT_ADDR_MODE, 
00198   EXT_ADDR_MODE 
00199 } AddrMode_t;
00200 
00201 #define  ZDO_MGMT_ED_SCAN_DUR_0  0x00     
00202 #define  ZDO_MGMT_ED_SCAN_DUR_1  0x01     
00203 #define  ZDO_MGMT_ED_SCAN_DUR_2  0x02     
00204 #define  ZDO_MGMT_ED_SCAN_DUR_3  0x03     
00205 #define  ZDO_MGMT_ED_SCAN_DUR_4  0x04     
00206 #define  ZDO_MGMT_ED_SCAN_DUR_5  0x05     
00207 #define  ZDO_MGMT_CHANNEL_CHANGE  0xFE    
00208 #define  ZDO_MGMT_NWK_PARAMS_CHANGE  0xFF 
00209 
00210 /********************************************************************************/
00213 typedef struct
00214 {
00215   ShortAddr_t shortAddr; 
00216   ExtAddr_t   extAddr; 
00217 } NodeAddr_t;
00218 
00219 /********************************************************************************/
00222 typedef struct
00223 {
00224   uint8_t       activeChannel; 
00225   ShortAddr_t   shortAddr;     
00226   PanId_t       PANId;         
00227   uint64_t      extPANId;      
00228   ShortAddr_t   parentAddr;    
00229   ZDO_Status_t  status;        
00230 } ZDO_StartNetworkConf_t;
00231 
00232 /********************************************************************************/
00235 typedef struct
00236 {
00237   ZDO_StartNetworkConf_t confParams;  
00238   void (*ZDO_StartNetworkConf)(ZDO_StartNetworkConf_t *conf); 
00239 } ZDO_StartNetworkReq_t;
00240 
00241 /********************************************************************************/
00244 typedef struct
00245 {
00246   ZDO_Status_t  status; 
00247 } ZDO_ResetNetworkConf_t;
00248 
00249 /********************************************************************************/
00252 typedef struct
00253 {
00254   ZDO_ResetNetworkConf_t confParams; 
00255   void (*ZDO_ResetNetworkConf)(ZDO_ResetNetworkConf_t *conf); 
00256 } ZDO_ResetNetworkReq_t;
00257 
00258 /********************************************************************************/
00265 BEGIN_PACK
00266 typedef struct PACK
00267 {
00268   uint32_t        scannedChannels; 
00269   uint16_t        totalTransmissions; 
00270   uint16_t        transmissionsFailures; 
00271   uint8_t         scannedChannelsListCount; 
00272   uint8_t         energyValues[32]; 
00275 } EDScan_t;
00276 END_PACK
00277 
00278 /********************************************************************************/
00282 typedef struct
00283 {
00284   ShortAddr_t parentShortAddr; 
00285   PanId_t     panId; 
00286   uint8_t     currentChannel; 
00287   ShortAddr_t shortAddr; 
00288 } NetworkInf_t;
00289 
00290 /********************************************************************************/
00293 BEGIN_PACK
00294 typedef struct PACK
00295 {
00309   uint8_t status;
00310   union PACK
00311   {
00313     ShortAddr_t  conflictAddress;
00315     EDScan_t     scanResult;
00317     NetworkInf_t nwkUpdateInf;
00319     NodeAddr_t   childAddr;
00320   };
00321 } ZDO_MgmtNwkUpdateNotf_t;
00322 END_PACK
00323 
00324 /********************************************************************************/
00327 BEGIN_PACK
00328 typedef struct PACK
00329 {
00330   uint8_t   neighborTableEntries;
00331   uint8_t   startIndex;
00332   uint8_t   neighborTableListCount;
00333   struct PACK
00334   {
00335     ExtPanId_t       extPanId;
00336     ExtAddr_t        extAddr;
00337     ShortAddr_t      networkAddr;
00338     uint8_t          deviceType : 2;
00339     uint8_t          rxOnWhenIdle : 2;
00340     uint8_t          relationship : 3;
00341     uint8_t          reserved1 : 1;
00342     uint8_t          permitJoining : 2;
00343     uint8_t          reserved2 : 6;
00344     uint8_t          depth;
00345     uint8_t          lqi;
00346   } neighborTableList[ZDP_NEIGBOR_TABLE_LIST_SIZE];
00347 } ZDO_MgmtLqiResp_t;
00348 END_PACK
00349 
00350 /********************************************************************************/
00353 typedef struct
00354 {
00355   uint8_t   startIndex;
00356 } ZDO_MgmtLqiReq_t;
00357 
00358 /********************************************************************************/
00361 typedef struct
00362 {
00365   ZDO_Status_t status;
00366 } ZDO_SleepConf_t;
00367 
00368 /********************************************************************************/
00371 typedef struct
00372 {
00373   ZDO_SleepConf_t confirm; 
00374   void (*ZDO_SleepConf)(ZDO_SleepConf_t *conf); 
00375 } ZDO_SleepReq_t;
00376 
00377 /********************************************************************************/
00380 typedef struct
00381 {
00382   ZDO_Status_t status; 
00383 } ZDO_WakeUpConf_t;
00384 
00385 /********************************************************************************/
00388 typedef struct
00389 {
00390   ZDO_WakeUpConf_t confirm; 
00391   void (*ZDO_WakeUpConf)(ZDO_WakeUpConf_t *conf); 
00392 } ZDO_WakeUpReq_t;
00393 
00394 /********************************************************************************/
00400 BEGIN_PACK
00401 typedef struct PACK
00402 {
00404   ExtAddr_t ieeeAddrOfInterest;
00409   uint8_t   reqType;
00415   uint8_t   startIndex;
00416 } ZDO_NwkAddrReq_t;
00417 
00418 /********************************************************************************/
00423 typedef struct PACK
00424 {
00426   ShortAddr_t nwkAddrOfInterest;
00431   uint8_t reqType;
00437   uint8_t startIndex;
00438 } ZDO_IeeeAddrReq_t;
00439 
00440 /********************************************************************************/
00446 typedef struct PACK
00447 {
00448   ShortAddr_t nwkAddrOfInterest; 
00449 } ZDO_NodeDescReq_t;
00450 
00451 /********************************************************************************/
00457 typedef struct PACK
00458 {
00459   ShortAddr_t nwkAddrOfInterest; 
00460 } ZDO_PowerDescReq_t;
00461 
00462 /********************************************************************************/
00468 typedef struct PACK
00469 {
00470   ShortAddr_t nwkAddrOfInterest; 
00471 } ZDO_ActiveEPReq_t;
00472 
00473 /********************************************************************************/
00479 typedef struct PACK
00480 {
00481   ShortAddr_t nwkAddrOfInterest; 
00482 } ZDO_ComplexDescReq_t;
00483 
00484 /********************************************************************************/
00490 typedef struct PACK
00491 {
00492   ShortAddr_t nwkAddrOfInterest; 
00493 } ZDO_UserDescReq_t;
00494 
00495 /********************************************************************************/
00501 typedef struct PACK
00502 {
00503   ShortAddr_t nwkAddrOfInterest; 
00504   UserDescriptor_t userDescriptor; 
00505 } ZDO_UserDescSetReq_t;
00506 
00507 /********************************************************************************/
00513 typedef struct PACK
00514 {
00515   ShortAddr_t nwkAddrOfInterest; 
00516   Endpoint_t  endpoint; 
00517 } ZDO_SimpleDescReq_t;
00518 
00519 /********************************************************************************/
00529 typedef struct PACK
00530 {
00531   ShortAddr_t nwkAddrLocal; 
00532   ExtAddr_t   ieeeAddrLocal; 
00533   uint8_t     macCapability; 
00534 } ZDO_DeviceAnnceReq_t;
00535 
00536 /********************************************************************************/
00542 typedef struct PACK
00543 {
00544   uint16_t serverMask; 
00545 } ZDO_SystemServerDiscoveryReq_t;
00546 
00547 #ifdef _BINDING_
00548 typedef struct PACK
00549 {
00550   ShortAddr_t nwkAddrOfInterest;
00551   ProfileId_t profileId;
00552   uint8_t     numInClusters;
00553   ClusterId_t inClusterList[MAX_REQUESTED_CLUSTER_NUMBER];
00554   uint8_t     numOutClusters;
00555   ClusterId_t outClusterList[MAX_REQUESTED_CLUSTER_NUMBER];
00556 } ZDO_MatchDescReq_t;
00557 #endif // _BINDING_
00558 
00559 /********************************************************************************/
00566 typedef struct PACK
00567 {
00568   ExtAddr_t deviceAddr; 
00569   uint8_t   reserved : 6; 
00570 
00575   uint8_t   removeChildren : 1;
00581   uint8_t   rejoin : 1;
00582 } ZDO_MgmtLeaveReq_t;
00583 
00584 /********************************************************************************/
00588 typedef struct PACK
00589 {
00595   uint8_t permitDuration;
00602   uint8_t tcSignificance;
00603 } ZDO_MgmtPermitJoiningReq_t;
00604 
00605 /********************************************************************************/
00611 typedef struct PACK
00612 {
00616   uint32_t    scanChannels;
00625   uint8_t     scanDuration;
00626   union PACK
00627   {
00633     uint8_t     scanCount;
00640     uint8_t     nwkUpdateId;
00641   };
00645   ShortAddr_t nwkManagerAddr;
00646 } ZDO_MgmtNwkUpdateReq_t;
00647 
00648 /********************************************************************************/
00654 typedef struct PACK
00655 {
00657   ExtAddr_t   ieeeAddrRemote;
00659   ShortAddr_t nwkAddrRemote;
00667   uint8_t     numAssocDev;
00673   uint8_t     startIndex;
00684   ShortAddr_t nwkAddrAssocDevList[ZDP_ADDR_LIST_SIZE];
00685 } ZDO_NwkAddrResp_t;
00686 
00687 /********************************************************************************/
00693 typedef struct PACK
00694 {
00696   ExtAddr_t   ieeeAddrRemote;
00698   ShortAddr_t nwkAddrRemote;
00706   uint8_t     numAssocDev;
00713   uint8_t     startIndex;
00722   ShortAddr_t nwkAddrAssocDevList[ZDP_ADDR_LIST_SIZE];
00723 } ZDO_IeeeAddrResp_t;
00724 
00725 /********************************************************************************/
00730 typedef struct PACK
00731 {
00732   ShortAddr_t      nwkAddrOfInterest; 
00733   NodeDescriptor_t nodeDescriptor; 
00734 } ZDO_NodeDescResp_t;
00735 
00736 /********************************************************************************/
00741 typedef struct PACK
00742 {
00743   ShortAddr_t       nwkAddrOfInterest; 
00744   PowerDescriptor_t powerDescriptor; 
00745 } ZDO_PowerDescResp_t;
00746 
00747 /********************************************************************************/
00752 typedef struct PACK
00753 {
00754   ShortAddr_t      nwkAddrOfInterest; 
00755 } ZDO_ComplexDescResp_t;
00756 
00757 /********************************************************************************/
00762 typedef struct PACK
00763 {
00764   ShortAddr_t      nwkAddrOfInterest; 
00765   UserDescriptor_t  userDescriptor; 
00766 } ZDO_UserDescResp_t;
00767 
00768 /********************************************************************************/
00773 typedef struct PACK
00774 {
00775   ShortAddr_t      nwkAddrOfInterest; 
00776 } ZDO_UserDescConfResp_t;
00777 
00778 /********************************************************************************/
00783 typedef struct PACK
00784 {
00785   ShortAddr_t nwkAddrOfInterest; 
00786   uint8_t     activeEPCount; 
00787   uint8_t     activeEPList[MAX_ACTIVE_EP_NUMBER];
00788 } ZDO_ActiveEPResp_t;
00789 
00790 /********************************************************************************/
00794 typedef struct PACK
00795 {
00799   Endpoint_t   endpoint;
00803   ProfileId_t  AppProfileId;
00807   uint16_t     AppDeviceId;
00810   uint8_t      AppDeviceVersion : 4;
00811   uint8_t      Reserved         : 4;
00816   uint8_t      AppInClustersCount;
00823   ClusterId_t  AppInClustersList[MAX_REQUESTED_CLUSTER_NUMBER];
00828   uint8_t      AppOutClustersCount;
00835   ClusterId_t  AppOutClustersList[MAX_REQUESTED_CLUSTER_NUMBER];
00836 
00837 } ZdpSimpleDescriptor_t;
00838 
00839 /********************************************************************************/
00844 typedef struct PACK
00845 {
00846   ShortAddr_t           nwkAddrOfInterest; 
00847   uint8_t               length; 
00848   ZdpSimpleDescriptor_t simpleDescriptor; 
00849 } ZDO_SimpleDescResp_t;
00850 
00851 /********************************************************************************/
00863 typedef struct PACK
00864 {
00865   uint16_t      serverMask; 
00866 } ZDO_SystemServerDiscoveryResp_t;
00867 
00868 #ifdef _BINDING_
00869 typedef struct PACK
00870 {
00871   ShortAddr_t nwkAddrOfInterest;
00872   uint8_t     matchLength;
00873   uint8_t     matchList[MAX_REQUESTED_CLUSTER_NUMBER];
00874 } ZDO_MatchDescResp_t;
00875 #endif // _BINDING_
00876 
00877 /********************************************************************************/
00880 typedef struct PACK
00881 {
00882   uint8_t seqNum; 
00883   // user part
00884   uint8_t status; 
00885   union PACK
00886   {
00887     ZDO_NwkAddrResp_t               nwkAddrResp; 
00888     ZDO_IeeeAddrResp_t              ieeeAddrResp; 
00889     ZDO_NodeDescResp_t              nodeDescResp; 
00890     ZDO_PowerDescResp_t             powerDescResp; 
00891     ZDO_SimpleDescResp_t            simpleDescResp; 
00892     ZDO_ComplexDescResp_t           complexDescResp; 
00893     ZDO_UserDescResp_t              userDescResp; 
00894     ZDO_ActiveEPResp_t              activeEPResp; 
00895     ZDO_UserDescConfResp_t          userDescConfResp; 
00896     ZDO_SystemServerDiscoveryResp_t systemServerDiscoveryResp; 
00897 #ifdef _BINDING_
00898     ZDO_MatchDescResp_t             matchDescResp; 
00899 #endif // _BINDING_
00900     ZDO_MgmtNwkUpdateNotf_t         mgmtNwkUpdateNotf; 
00901     ZDO_MgmtLqiResp_t               mgmtLqiResp; 
00902   };
00903 } ZDO_ZdpRespFrame_t;
00904 
00905 /********************************************************************************/
00908 typedef struct PACK
00909 {
00910   uint8_t seqNum; 
00911   // user part
00912   union PACK
00913   {
00914     ZDO_NwkAddrReq_t               nwkAddrReq; 
00915     ZDO_IeeeAddrReq_t              ieeeAddrReq; 
00916     ZDO_NodeDescReq_t              nodeDescReq; 
00917     ZDO_PowerDescReq_t             powerDescReq; 
00918     ZDO_SimpleDescReq_t            simpleDescReq; 
00919     ZDO_DeviceAnnceReq_t           deviceAnnce; 
00920     ZDO_ActiveEPReq_t              activeEPReq; 
00921     ZDO_ComplexDescReq_t           complexDescReq; 
00922     ZDO_UserDescReq_t              userDescReq; 
00923     ZDO_UserDescSetReq_t           userDescSetReq; 
00924     ZDO_SystemServerDiscoveryReq_t systemServerDiscoveryReq; 
00925 #ifdef _BINDING_
00926     ZDO_MatchDescReq_t             matchDescReq; 
00927 #endif // _BINDING_
00928     ZDO_MgmtLeaveReq_t             mgmtLeaveReq; 
00929     ZDO_MgmtPermitJoiningReq_t     mgmtPermitJoiningReq; 
00930     ZDO_MgmtNwkUpdateReq_t         mgmtNwkUpdateReq; 
00931     ZDO_MgmtNwkUpdateNotf_t        mgmtNwkUpdateNotf; 
00932     ZDO_MgmtLqiReq_t               mgmtLqiReq; 
00933   };
00934 } ZDO_ZdpReqFrame_t;
00935 
00936 /********************************************************************************/
00939 typedef struct PACK
00940 {
00941   // reserved
00942   uint8_t       header[APS_ASDU_OFFSET];
00943   union PACK
00944   {
00945     ZDO_ZdpRespFrame_t respPayload;
00946     ZDO_ZdpReqFrame_t  reqPayload;
00947   };
00948 } ZDO_ZdpFrame_t;
00949 END_PACK
00950 
00951 /********************************************************************************/
00954 typedef struct
00955 {
00956   AddrMode_t     srcAddrMode; 
00957   union
00958   {
00959     ShortAddr_t  srcNwkAddr; 
00960     ExtAddr_t    srcExtAddr; 
00961   };
00962   ZDO_ZdpRespFrame_t respPayload; 
00963 } ZDO_ZdpResp_t;
00964 
00965 /********************************************************************************/
00968 typedef struct
00969 {
00970   // Service fields
00971   struct
00972   {
00973     void *next;
00974   } service;
00975 
00976   // Address fields
00977   uint16_t   reqCluster; 
00978   AddrMode_t dstAddrMode; 
00979   union
00980   {
00981     ShortAddr_t  dstNwkAddr; 
00982     ExtAddr_t    dstExtAddr;
00983   };
00984   // ZDP frame for sending out
00985   ZDO_ZdpFrame_t req; 
00986   //Callback and Response
00987   void (*ZDO_ZdpResp)(ZDO_ZdpResp_t *zdpResp); 
00988   ZDO_ZdpResp_t resp; 
00989 } ZDO_ZdpReq_t;
00990 
00991 /********************************************************************************/
00994 typedef struct
00995 {
00996   ShortAddr_t  nodeAddr; 
00997   uint8_t      lqi; 
00999   int8_t      rssi; 
01003 } ZDO_GetLqiRssi_t;
01004 
01005 /********************************************************************************/
01008 typedef struct
01009 {
01010   uint8_t childrenCount; 
01011   NodeAddr_t *childrenTable; 
01012 } ZDO_GetChildrenAddr_t;
01013 
01014 /********************************************************************************/
01017 typedef struct
01018 {
01019   ZDO_Status_t status; 
01020 } ZDO_SetTxPowerConf_t;
01021 
01022 /********************************************************************************/
01025 typedef struct
01026 {
01027   uint8_t txPower; 
01030   void (* ZDO_SetTxPowerConf)(ZDO_SetTxPowerConf_t *conf); 
01031   ZDO_SetTxPowerConf_t confirm; 
01032 } ZDO_SetTxPowerReq_t;
01033 
01034 /********************************************************************************/
01037 typedef enum
01038 {
01039   ZDO_IN_NETWORK_STATUS, 
01040   ZDO_OUT_NETWORK_STATUS 
01041 } ZDO_NwkStatus_t;
01042 
01043 /********************************************************************************/
01046 typedef struct
01047 {
01048   uint8_t routersAmount; 
01049   uint8_t childrenAmount; 
01050 } ZDO_GetNeibAmount_t;
01051 
01052 /********************************************************************************/
01055 typedef struct
01056 {
01057   ShortAddr_t           shortAddr; 
01058   ExtAddr_t             extAddr; 
01059   DeviceType_t          deviceType; 
01060   uint8_t               lqi; 
01061   int8_t                rssi; 
01062   bool                  rxOnWhenIdle; 
01063   Relationship_t        relationship; 
01064   ExtPanId_t            extPanId; 
01065   uint8_t               logicalChannel; 
01066   uint8_t               depth; 
01067   bool                  permitJoining; 
01068   bool                  potentialParent; 
01069 } ZDO_Neib_t;
01070 
01071 #ifdef _SECURITY_
01072 #ifdef _HIGH_SECURITY_
01073 typedef struct
01074 {
01075   ZDO_Status_t status;
01076 } ZDO_EndToEndAppKeyConf_t;
01077 
01078 typedef struct
01079 {
01080   ExtAddr_t deviceAddr;
01081   void (*ZDO_EndToEndAppKeyConf)(ZDO_EndToEndAppKeyConf_t *conf);
01082   ZDO_EndToEndAppKeyConf_t confirm;
01083 } ZDO_EndToEndAppKeyReq_t;
01084 #endif // _HIGH_SECURITY_
01085 #endif // _SECURITY_
01086 
01087 /************************************************************************************
01088   Primitives declarations.
01089  ***********************************************************************************/
01090 
01091 /*********************************************************************************/
01098 void ZDO_StartNetworkReq(ZDO_StartNetworkReq_t *startingParams);
01099 
01100 /**********************************************************************************/
01107 void ZDO_ResetNetworkReq(ZDO_ResetNetworkReq_t *resetParams);
01108 
01109 /**********************************************************************************/
01117 void ZDO_MgmtNwkUpdateNotf(ZDO_MgmtNwkUpdateNotf_t * nwkParams);
01118 
01119 /*************************************************************************************/
01127 void ZDO_SleepReq(ZDO_SleepReq_t *req);
01128 
01129 /**************************************************************************************/
01137 void ZDO_SleepInd(void);
01138 
01139 /*************************************************************************************/
01146 void ZDO_SleepResp(void);
01147 
01148 /*************************************************************************************/
01154 void ZDO_WakeUpInd(void);
01155 
01156 /*************************************************************************************/
01164 void ZDO_WakeUpReq(ZDO_WakeUpReq_t *req);
01165 
01166 /*************************************************************************************/
01173 void ZDO_ZdpReq(ZDO_ZdpReq_t *zdpReq);
01174 
01175 /*************************************************************************************/
01184 void ZDO_GetLqiRssi(ZDO_GetLqiRssi_t *lqiRssi);
01185 
01186 /*************************************************************************************/
01193 void ZDO_GetParentAddr(NodeAddr_t *parentAddr);
01194 
01195 /*************************************************************************************/
01202 void ZDO_GetChildrenAddr(ZDO_GetChildrenAddr_t *childrenAddr);
01203 
01204 /*************************************************************************************/
01211 void ZDO_SetTxPowerReq(ZDO_SetTxPowerReq_t *req);
01212 
01213 /*************************************************************************************/
01220 ZDO_NwkStatus_t ZDO_GetNwkStatus();
01221 
01222 /*************************************************************************************/
01227 void ZDO_GetNeibAmount(ZDO_GetNeibAmount_t *amount);
01228 
01229 /*************************************************************************************/
01234 void ZDO_GetNeibTable(ZDO_Neib_t *table);
01235 
01236 /*************************************************************************************/
01243 ZDO_Status_t  ZDO_StartSyncReq(void);
01244 
01245 /*************************************************************************************/
01252 ZDO_Status_t  ZDO_StopSyncReq(void);
01253 
01254 #endif  /* _ZDO_H */
01255 

Generated on Mon Feb 16 17:53:40 2009 for BitCloud Stack Documentation by  doxygen 1.5.1-p1