123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423 |
- /**************************************************************************************************
- Filename: ZComDef.h
- Revised: $Date: 2012-01-12 17:54:52 -0800 (Thu, 12 Jan 2012) $
- Revision: $Revision: 28926 $
- Description: Type definitions and macros.
- Copyright 2004-2011 Texas Instruments Incorporated. All rights reserved.
- IMPORTANT: Your use of this Software is limited to those specific rights
- granted under the terms of a software license agreement between the user
- who downloaded the software, his/her employer (which must be your employer)
- and Texas Instruments Incorporated (the "License"). You may not use this
- Software unless you agree to abide by the terms of the License. The License
- limits your use, and you acknowledge, that the Software may not be modified,
- copied or distributed unless embedded on a Texas Instruments microcontroller
- or used solely and exclusively in conjunction with a Texas Instruments radio
- frequency transceiver, which is integrated into your product. Other than for
- the foregoing purpose, you may not use, reproduce, copy, prepare derivative
- works of, modify, distribute, perform, display or sell this Software and/or
- its documentation for any purpose.
- YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
- PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
- INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
- NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
- TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
- NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
- LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
- INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
- OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
- OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
- (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
- Should you have any questions regarding your right to use this Software,
- contact Texas Instruments Incorporated at www.TI.com.
- **************************************************************************************************/
- #ifndef ZCOMDEF_H
- #define ZCOMDEF_H
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- /*********************************************************************
- * INCLUDES
- */
- #include "comdef.h"
- #include "saddr.h"
- /*********************************************************************
- * CONSTANTS
- */
- #define osal_cpyExtAddr(a, b) sAddrExtCpy((a), (const uint8 *)(b))
- #define osal_ExtAddrEqual(a, b) sAddrExtCmp((const uint8 *)(a), (const uint8 *)(b))
- #define osal_copyAddress(a, b) sAddrCpy( (sAddr_t *)(a), (const sAddr_t *)(b) )
- /*********************************************************************
- * CONSTANTS
- */
- // Build Device Types - Used during compilation
- // These are the types of devices to build
- // Bit masked into ZSTACK_DEVICE_BUILD
- #define DEVICE_BUILD_COORDINATOR 0x01
- #define DEVICE_BUILD_ROUTER 0x02
- #define DEVICE_BUILD_ENDDEVICE 0x04
- /*** Return Values ***/
- #define ZSUCCESS SUCCESS
- /*** Component IDs ***/
- #define COMPID_OSAL 0
- #define COMPID_MTEL 1
- #define COMPID_MTSPCI 2
- #define COMPID_NWK 3
- #define COMPID_NWKIF 4
- #define COMPID_MACCB 5
- #define COMPID_MAC 6
- #define COMPID_APP 7
- #define COMPID_TEST 8
- #define COMPID_RTG 9
- #define COMPID_DATA 11
- /* Temp CompIDs for testing */
- #define COMPID_TEST_NWK_STARTUP 20
- #define COMPID_TEST_SCAN_CONFIRM 21
- #define COMPID_TEST_ASSOC_CONFIRM 22
- #define COMPID_TEST_REMOTE_DATA_CONFIRM 23
- // OSAL NV item IDs
- #define ZCD_NV_EXTADDR 0x0001
- #define ZCD_NV_BOOTCOUNTER 0x0002
- #define ZCD_NV_STARTUP_OPTION 0x0003
- #define ZCD_NV_START_DELAY 0x0004
- // NWK Layer NV item IDs
- #define ZCD_NV_NIB 0x0021
- #define ZCD_NV_DEVICE_LIST 0x0022
- #define ZCD_NV_ADDRMGR 0x0023
- #define ZCD_NV_POLL_RATE 0x0024
- #define ZCD_NV_QUEUED_POLL_RATE 0x0025
- #define ZCD_NV_RESPONSE_POLL_RATE 0x0026
- #define ZCD_NV_REJOIN_POLL_RATE 0x0027
- #define ZCD_NV_DATA_RETRIES 0x0028
- #define ZCD_NV_POLL_FAILURE_RETRIES 0x0029
- #define ZCD_NV_STACK_PROFILE 0x002A
- #define ZCD_NV_INDIRECT_MSG_TIMEOUT 0x002B
- #define ZCD_NV_ROUTE_EXPIRY_TIME 0x002C
- #define ZCD_NV_EXTENDED_PAN_ID 0x002D
- #define ZCD_NV_BCAST_RETRIES 0x002E
- #define ZCD_NV_PASSIVE_ACK_TIMEOUT 0x002F
- #define ZCD_NV_BCAST_DELIVERY_TIME 0x0030
- #define ZCD_NV_NWK_MODE 0x0031
- #define ZCD_NV_CONCENTRATOR_ENABLE 0x0032
- #define ZCD_NV_CONCENTRATOR_DISCOVERY 0x0033
- #define ZCD_NV_CONCENTRATOR_RADIUS 0x0034
- #define ZCD_NV_CONCENTRATOR_RC 0x0036
- #define ZCD_NV_NWK_MGR_MODE 0x0037
- #define ZCD_NV_SRC_RTG_EXPIRY_TIME 0x0038
- #define ZCD_NV_ROUTE_DISCOVERY_TIME 0x0039
- #define ZCD_NV_NWK_ACTIVE_KEY_INFO 0x003A
- #define ZCD_NV_NWK_ALTERN_KEY_INFO 0x003B
- #define ZCD_NV_ROUTER_OFF_ASSOC_CLEANUP 0x003C
- // APS Layer NV item IDs
- #define ZCD_NV_BINDING_TABLE 0x0041
- #define ZCD_NV_GROUP_TABLE 0x0042
- #define ZCD_NV_APS_FRAME_RETRIES 0x0043
- #define ZCD_NV_APS_ACK_WAIT_DURATION 0x0044
- #define ZCD_NV_APS_ACK_WAIT_MULTIPLIER 0x0045
- #define ZCD_NV_BINDING_TIME 0x0046
- #define ZCD_NV_APS_USE_EXT_PANID 0x0047
- #define ZCD_NV_APS_USE_INSECURE_JOIN 0x0048
- #define ZCD_NV_APS_NONMEMBER_RADIUS 0x004B // Multicast non_member radius
- #define ZCD_NV_APS_LINK_KEY_TABLE 0x004C
- // Security NV Item IDs
- #define ZCD_NV_SECURITY_LEVEL 0x0061
- #define ZCD_NV_PRECFGKEY 0x0062
- #define ZCD_NV_PRECFGKEYS_ENABLE 0x0063
- #define ZCD_NV_SECURITY_MODE 0x0064
- #define ZCD_NV_SECURE_PERMIT_JOIN 0x0065
- #define ZCD_NV_IMPLICIT_CERTIFICATE 0x0069
- #define ZCD_NV_DEVICE_PRIVATE_KEY 0x006A
- #define ZCD_NV_CA_PUBLIC_KEY 0x006B
- #define ZCD_NV_USE_DEFAULT_TCLK 0x006D
- #define ZCD_NV_TRUSTCENTER_ADDR 0x006E
- #define ZCD_NV_RNG_COUNTER 0x006F
- #define ZCD_NV_RANDOM_SEED 0x0070
- // ZDO NV Item IDs
- #define ZCD_NV_USERDESC 0x0081
- #define ZCD_NV_NWKKEY 0x0082
- #define ZCD_NV_PANID 0x0083
- #define ZCD_NV_CHANLIST 0x0084
- #define ZCD_NV_LEAVE_CTRL 0x0085
- #define ZCD_NV_SCAN_DURATION 0x0086
- #define ZCD_NV_LOGICAL_TYPE 0x0087
- #define ZCD_NV_NWKMGR_MIN_TX 0x0088
- #define ZCD_NV_NWKMGR_ADDR 0x0089
- #define ZCD_NV_ZDO_DIRECT_CB 0x008F
- // ZCL NV item IDs
- #define ZCD_NV_SCENE_TABLE 0x0091
- // Non-standard NV item IDs
- #define ZCD_NV_SAPI_ENDPOINT 0x00A1
- // NV Items Reserved for Commissioning Cluster Startup Attribute Set (SAS):
- // 0x00B1 - 0x00BF: Parameters related to APS and NWK layers
- // 0x00C1 - 0x00CF: Parameters related to Security
- // 0x00D1 - 0x00DF: Current key parameters
- #define ZCD_NV_SAS_SHORT_ADDR 0x00B1
- #define ZCD_NV_SAS_EXT_PANID 0x00B2
- #define ZCD_NV_SAS_PANID 0x00B3
- #define ZCD_NV_SAS_CHANNEL_MASK 0x00B4
- #define ZCD_NV_SAS_PROTOCOL_VER 0x00B5
- #define ZCD_NV_SAS_STACK_PROFILE 0x00B6
- #define ZCD_NV_SAS_STARTUP_CTRL 0x00B7
- #define ZCD_NV_SAS_TC_ADDR 0x00C1
- #define ZCD_NV_SAS_TC_MASTER_KEY 0x00C2
- #define ZCD_NV_SAS_NWK_KEY 0x00C3
- #define ZCD_NV_SAS_USE_INSEC_JOIN 0x00C4
- #define ZCD_NV_SAS_PRECFG_LINK_KEY 0x00C5
- #define ZCD_NV_SAS_NWK_KEY_SEQ_NUM 0x00C6
- #define ZCD_NV_SAS_NWK_KEY_TYPE 0x00C7
- #define ZCD_NV_SAS_NWK_MGR_ADDR 0x00C8
- #define ZCD_NV_SAS_CURR_TC_MASTER_KEY 0x00D1
- #define ZCD_NV_SAS_CURR_NWK_KEY 0x00D2
- #define ZCD_NV_SAS_CURR_PRECFG_LINK_KEY 0x00D3
- // NV Items Reserved for Trust Center Link Key Table entries
- // 0x0101 - 0x01FF
- #define ZCD_NV_TCLK_TABLE_START 0x0101
- #define ZCD_NV_TCLK_TABLE_END 0x01FF
- // NV Items Reserved for APS Link Key Table entries
- // 0x0201 - 0x02FF
- #define ZCD_NV_APS_LINK_KEY_DATA_START 0x0201 // APS key data
- #define ZCD_NV_APS_LINK_KEY_DATA_END 0x02FF
- // NV Items Reserved for Master Key Table entries
- // 0x0301 - 0x03FF
- #define ZCD_NV_MASTER_KEY_DATA_START 0x0301 // Master key data
- #define ZCD_NV_MASTER_KEY_DATA_END 0x03FF
- // NV Items Reserved for applications (user applications)
- // 0x0401 – 0x0FFF
- // ZCD_NV_STARTUP_OPTION values
- // These are bit weighted - you can OR these together.
- // Setting one of these bits will set their associated NV items
- // to code initialized values.
- #define ZCD_STARTOPT_DEFAULT_CONFIG_STATE 0x01
- #define ZCD_STARTOPT_DEFAULT_NETWORK_STATE 0x02
- #define ZCD_STARTOPT_AUTO_START 0x04
- #define ZCD_STARTOPT_CLEAR_CONFIG ZCD_STARTOPT_DEFAULT_CONFIG_STATE
- #define ZCD_STARTOPT_CLEAR_STATE ZCD_STARTOPT_DEFAULT_NETWORK_STATE
- #define ZCL_KE_IMPLICIT_CERTIFICATE_LEN 48
- #define ZCL_KE_CA_PUBLIC_KEY_LEN 22
- #define ZCL_KE_DEVICE_PRIVATE_KEY_LEN 21
- /*********************************************************************
- * TYPEDEFS
- */
- /*** Data Types ***/
- typedef uint8 byte;
- typedef uint16 UINT16;
- typedef int16 INT16;
- enum
- {
- AddrNotPresent = 0,
- AddrGroup = 1,
- Addr16Bit = 2,
- Addr64Bit = 3,
- AddrBroadcast = 15
- };
- #define Z_EXTADDR_LEN 8
- typedef byte ZLongAddr_t[Z_EXTADDR_LEN];
- typedef struct
- {
- union
- {
- uint16 shortAddr;
- ZLongAddr_t extAddr;
- } addr;
- byte addrMode;
- } zAddrType_t;
- // Redefined Generic Status Return Values for code backwards compatibility
- #define ZSuccess SUCCESS
- #define ZFailure FAILURE
- #define ZInvalidParameter INVALIDPARAMETER
- // ZStack status values must start at 0x10, after the generic status values (defined in comdef.h)
- #define ZMemError 0x10
- #define ZBufferFull 0x11
- #define ZUnsupportedMode 0x12
- #define ZMacMemError 0x13
- #define ZSapiInProgress 0x20
- #define ZSapiTimeout 0x21
- #define ZSapiInit 0x22
- #define ZNotAuthorized 0x7E
- #define ZMalformedCmd 0x80
- #define ZUnsupClusterCmd 0x81
- // OTA Status values
- #define ZOtaAbort 0x95
- #define ZOtaImageInvalid 0x96
- #define ZOtaWaitForData 0x97
- #define ZOtaNoImageAvailable 0x98
- #define ZOtaRequireMoreImage 0x99
- // APS status values
- #define ZApsFail 0xb1
- #define ZApsTableFull 0xb2
- #define ZApsIllegalRequest 0xb3
- #define ZApsInvalidBinding 0xb4
- #define ZApsUnsupportedAttrib 0xb5
- #define ZApsNotSupported 0xb6
- #define ZApsNoAck 0xb7
- #define ZApsDuplicateEntry 0xb8
- #define ZApsNoBoundDevice 0xb9
- #define ZApsNotAllowed 0xba
- #define ZApsNotAuthenticated 0xbb
-
- // Security status values
- #define ZSecNoKey 0xa1
- #define ZSecOldFrmCount 0xa2
- #define ZSecMaxFrmCount 0xa3
- #define ZSecCcmFail 0xa4
- // NWK status values
- #define ZNwkInvalidParam 0xc1
- #define ZNwkInvalidRequest 0xc2
- #define ZNwkNotPermitted 0xc3
- #define ZNwkStartupFailure 0xc4
- #define ZNwkAlreadyPresent 0xc5
- #define ZNwkSyncFailure 0xc6
- #define ZNwkTableFull 0xc7
- #define ZNwkUnknownDevice 0xc8
- #define ZNwkUnsupportedAttribute 0xc9
- #define ZNwkNoNetworks 0xca
- #define ZNwkLeaveUnconfirmed 0xcb
- #define ZNwkNoAck 0xcc // not in spec
- #define ZNwkNoRoute 0xcd
- // MAC status values
- #define ZMacSuccess 0x00
- #define ZMacBeaconLoss 0xe0
- #define ZMacChannelAccessFailure 0xe1
- #define ZMacDenied 0xe2
- #define ZMacDisableTrxFailure 0xe3
- #define ZMacFailedSecurityCheck 0xe4
- #define ZMacFrameTooLong 0xe5
- #define ZMacInvalidGTS 0xe6
- #define ZMacInvalidHandle 0xe7
- #define ZMacInvalidParameter 0xe8
- #define ZMacNoACK 0xe9
- #define ZMacNoBeacon 0xea
- #define ZMacNoData 0xeb
- #define ZMacNoShortAddr 0xec
- #define ZMacOutOfCap 0xed
- #define ZMacPANIDConflict 0xee
- #define ZMacRealignment 0xef
- #define ZMacTransactionExpired 0xf0
- #define ZMacTransactionOverFlow 0xf1
- #define ZMacTxActive 0xf2
- #define ZMacUnAvailableKey 0xf3
- #define ZMacUnsupportedAttribute 0xf4
- #define ZMacUnsupported 0xf5
- #define ZMacSrcMatchInvalidIndex 0xff
- typedef Status_t ZStatus_t;
- typedef struct
- {
- uint8 txCounter; // Counter of transmission success/failures
- uint8 txCost; // Average of sending rssi values if link staus is enabled
- // i.e. NWK_LINK_STATUS_PERIOD is defined as non zero
- uint8 rxLqi; // average of received rssi values
- // needs to be converted to link cost (1-7) before used
- uint8 inKeySeqNum; // security key sequence number
- uint32 inFrmCntr; // security frame counter..
- uint16 txFailure; // higher values indicate more failures
- } linkInfo_t;
- /*********************************************************************
- * Global System Messages
- */
- #define SPI_INCOMING_ZTOOL_PORT 0x21 // Raw data from ZTool Port (not implemented)
- #define SPI_INCOMING_ZAPP_DATA 0x22 // Raw data from the ZAPP port (see serialApp.c)
- #define MT_SYS_APP_MSG 0x23 // Raw data from an MT Sys message
- #define MT_SYS_APP_RSP_MSG 0x24 // Raw data output for an MT Sys message
- #define MT_SYS_OTA_MSG 0x25 // Raw data output for an MT OTA Rsp
- #define AF_DATA_CONFIRM_CMD 0xFD // Data confirmation
- #define AF_INCOMING_MSG_CMD 0x1A // Incoming MSG type message
- #define AF_INCOMING_KVP_CMD 0x1B // Incoming KVP type message
- #define AF_INCOMING_GRP_KVP_CMD 0x1C // Incoming Group KVP type message
- //#define KEY_CHANGE 0xC0 // Key Events
- #define ZDO_NEW_DSTADDR 0xD0 // ZDO has received a new DstAddr for this app
- #define ZDO_STATE_CHANGE 0xD1 // ZDO has changed the device's network state
- #define ZDO_MATCH_DESC_RSP_SENT 0xD2 // ZDO match descriptor response was sent
- #define ZDO_CB_MSG 0xD3 // ZDO incoming message callback
- #define ZDO_NETWORK_REPORT 0xD4 // ZDO received a Network Report message
- #define ZDO_NETWORK_UPDATE 0xD5 // ZDO received a Network Update message
- #define ZDO_ADDR_CHANGE_IND 0xD6 // ZDO was informed of device address change
- #define NM_CHANNEL_INTERFERE 0x31 // NwkMgr received a Channel Interference message
- #define NM_ED_SCAN_CONFIRM 0x32 // NwkMgr received an ED Scan Confirm message
- #define SAPS_CHANNEL_CHANGE 0x33 // Stub APS has changed the device's channel
- #define ZCL_INCOMING_MSG 0x34 // Incoming ZCL foundation message
- #define ZCL_KEY_ESTABLISH_IND 0x35 // ZCL Key Establishment Completion Indication
- #define ZCL_OTA_CALLBACK_IND 0x36 // ZCL OTA Completion Indication
- // OSAL System Message IDs/Events Reserved for applications (user applications)
- // 0xE0 – 0xFC
- /*********************************************************************
- * GLOBAL VARIABLES
- */
- /*********************************************************************
- * FUNCTIONS
- */
- /*********************************************************************
- *********************************************************************/
- #ifdef __cplusplus
- }
- #endif
- #endif /* ZCOMDEF_H */
|