⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zdapp.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
        FUNCTION osal_ExtAddrEqual,0202H
        ARGFRAME XSTACK, 9, STACK
        EXTERN NLME_LeaveRsp
        FUNCTION NLME_LeaveRsp,0202H
        ARGFRAME XSTACK, 12, STACK
        EXTERN NLME_GetCoordShortAddr
        FUNCTION NLME_GetCoordShortAddr,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 12, STACK
        EXTERN osal_get_timeoutEx
        FUNCTION osal_get_timeoutEx,0202H
        ARGFRAME XSTACK, 10, STACK
        EXTERN ZDP_GenericRsp
        FUNCTION ZDP_GenericRsp,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN afSetMatch
        FUNCTION afSetMatch,0202H
        ARGFRAME ISTACK, 2, STACK
        EXTERN ZDO_Config_Node_Descriptor
        EXTERN zgConfigPANID
        EXTERN zgStackProfile

// C:\Texas Instruments\ZStack-1.4.2-1.1.0\Components\stack\zdo\ZDApp.c
//    1 /*********************************************************************
//    2     Filename:       ZDApp.c
//    3     Revised:        $Date: 2007-05-31 15:56:04 -0700 (Thu, 31 May 2007) $
//    4     Revision:       $Revision: 14490 $
//    5 
//    6     Description:
//    7 
//    8       This file contains the interface to the Zigbee Device Application.
//    9       This is the Application part that the use can change. This also
//   10       contains the Task functions.
//   11 
//   12     Notes:
//   13 
//   14     Copyright (c) 2006 by Texas Instruments, Inc.
//   15     All Rights Reserved.  Permission to use, reproduce, copy, prepare
//   16     derivative works, modify, distribute, perform, display or sell this
//   17     software and/or its documentation for any purpose is prohibited
//   18     without the express written consent of Texas Instruments, Inc.
//   19 *********************************************************************/
//   20 
//   21 /*********************************************************************
//   22  * INCLUDES
//   23  */
//   24 #include "ZComDef.h"
//   25 #include "ZMac.h"
//   26 #include "OSAL.h"
//   27 #include "OSAL_Tasks.h"
//   28 #include "OSAL_PwrMgr.h"
//   29 #include "OSAL_Nv.h"
//   30 #include "AF.h"
//   31 #include "APSMEDE.h"
//   32 #include "NLMEDE.h"
//   33 #include "AddrMgr.h"
//   34 #include "ZDCache.h"
//   35 #include "ZDProfile.h"
//   36 #include "ZDObject.h"
//   37 #include "ZDConfig.h"
//   38 #include "ZDSecMgr.h"
//   39 #include "ZDApp.h"
//   40 #include "DebugTrace.h"
//   41 #include "nwk_util.h"
//   42 #include "OnBoard.h"

        ASEGN SFR_AN:DATA:NOROOT,0c9H
// unsigned char volatile __sfr WDCTL
WDCTL:
        DS 1
//   43 #include "ZGlobals.h"
//   44 
//   45 #if   ( SECURE != 0  )
//   46   #include "ssp.h"
//   47 #endif
//   48 
//   49 #if defined( MT_ZDO_FUNC )
//   50   #include "MT_ZDO.h"
//   51 #endif
//   52 
//   53 /* HAL */
//   54 #include "hal_led.h"
//   55 #include "hal_lcd.h"
//   56 #include "hal_key.h"
//   57 
//   58 #if defined( MT_MAC_FUNC ) || defined( MT_MAC_CB_FUNC )
//   59   #error "ERROR! MT_MAC functionalities should be disabled on ZDO devices"
//   60 #endif
//   61 /*********************************************************************
//   62  * MACROS
//   63  */
//   64 
//   65 /*********************************************************************
//   66  * CONSTANTS
//   67  */
//   68 #if !defined( NWK_START_DELAY )
//   69   #define NWK_START_DELAY             100   // in milliseconds
//   70 #endif
//   71 
//   72 #if !defined( EXTENDED_JOINING_RANDOM_MASK )
//   73   #define EXTENDED_JOINING_RANDOM_MASK 0x007F
//   74 #endif
//   75 
//   76 #if !defined( BEACON_REQUEST_DELAY )
//   77   #define BEACON_REQUEST_DELAY        100   // in milliseconds
//   78 #endif
//   79 
//   80 #if !defined( BEACON_REQ_DELAY_MASK )
//   81   #define BEACON_REQ_DELAY_MASK       0x007F
//   82 #endif
//   83 
//   84 #if defined (AUTO_SOFT_START)
//   85   #define MAX_RESUME_RETRY            3
//   86   #define NUM_DISC_ATTEMPTS           3
//   87 #else
//   88   #define MAX_RESUME_RETRY            1
//   89 #endif
//   90 
//   91 #define MAX_DEVICE_UNAUTH_TIMEOUT   5000  // 5 seconds
//   92 
//   93 // Beacon Order Settings (see NLMEDE.h)
//   94 #define DEFAULT_BEACON_ORDER        BEACON_ORDER_NO_BEACONS
//   95 #define DEFAULT_SUPERFRAME_ORDER    DEFAULT_BEACON_ORDER
//   96 
//   97 #if ( SECURE != 0 )
//   98   #if !defined( MAX_NWK_FRAMECOUNTER_CHANGES )
//   99     // The number of times the frame counter can change before
//  100     // saving to NV
//  101     #define MAX_NWK_FRAMECOUNTER_CHANGES    1000
//  102   #endif
//  103 #endif
//  104 
//  105 // Leave control bits
//  106 #define ZDAPP_LEAVE_CTRL_INIT 0
//  107 #define ZDAPP_LEAVE_CTRL_SET  1
//  108 #define ZDAPP_LEAVE_CTRL_RA   2
//  109 
//  110 // Standard time to update NWK NV data
//  111 #define ZDAPP_UPDATE_NWK_NV_TIME 100
//  112 
//  113 // Address Manager Stub Implementation
//  114 #define ZDApp_NwkWriteNVRequest AddrMgrWriteNVRequest
//  115 
//  116 /*********************************************************************
//  117  * TYPEDEFS
//  118  */
//  119 
//  120 /*********************************************************************
//  121  * GLOBAL VARIABLES
//  122  */
//  123 
//  124 #if defined( LCD_SUPPORTED )
//  125   byte MatchRsps = 0;
//  126 #endif
//  127 

        RSEG XDATA_I:XDATA:NOROOT(0)
//  128 byte zdoDiscCounter = 1;
zdoDiscCounter:
        DS 1
        REQUIRE `?<Initializer for zdoDiscCounter>`
        REQUIRE __INIT_XDATA_I
//  129 

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  130 zAddrType_t ZDAppNwkAddr;
ZDAppNwkAddr:
        DS 9
//  131 
//  132 #if defined ( ZDO_MGMT_NWKDISC_RESPONSE )
//  133   byte zdappMgmtNwkDiscRspTransSeq;
//  134   byte zdappMgmtNwkDiscReqInProgress = FALSE;
//  135   zAddrType_t zdappMgmtNwkDiscRspAddr;
//  136   byte zdappMgmtNwkDiscStartIndex;
//  137   byte zdappMgmtSavedNwkState;
//  138 #endif
//  139 
//  140 #if ( SECURE != 0 )
//  141   uint16 nwkFrameCounterChanges = 0;
//  142 #endif
//  143 
//  144 #if defined ( SOFT_START )
//  145   static uint8 softStartAllowCoord = TRUE;
//  146 #endif
//  147 

        RSEG XDATA_I:XDATA:NOROOT(0)
//  148 uint8 continueJoining = TRUE;
continueJoining:
        DS 1
        REQUIRE `?<Initializer for continueJoining>`
        REQUIRE __INIT_XDATA_I
//  149 

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  150 byte  _tmpRejoinState;
_tmpRejoinState:
        DS 1
//  151 
//  152 /*********************************************************************
//  153  * EXTERNAL VARIABLES
//  154  */
//  155 
//  156 /*********************************************************************
//  157  * EXTERNAL FUNCTIONS
//  158  */
//  159 
//  160 /*********************************************************************
//  161  * LOCAL FUNCTIONS
//  162  */
//  163 
//  164 void ZDApp_NetworkStartEvt( void );
//  165 void ZDApp_DeviceAuthEvt( void );
//  166 void ZDApp_SaveNetworkStateEvt( void );
//  167 
//  168 uint8 ZDApp_ReadNetworkRestoreState( void );
//  169 uint8 ZDApp_RestoreNetworkState( void );
//  170 void ZDAppDetermineDeviceType( void );
//  171 void ZDAppSetupProtoVersion( void );
//  172 void ZDApp_InitUserDesc( void );
//  173 void ZDAppCheckForHoldKey( void );
//  174 void ZDApp_ProcessOSALMsg( osal_event_hdr_t *msgPtr );
//  175 void ZDApp_ProcessNetworkJoin( void );
//  176 void ZDApp_SetCoordAddress( byte endPoint, byte dstEP );
//  177 void ZDApp_SendNewDstAddr( byte dstEP, zAddrType_t *dstAddr,
//  178                cId_t clusterID, byte removeFlag, byte task_id, byte endpoint );
//  179 
//  180 #if ( SECURE != 0 )
//  181   void ZDApp_SaveNwkKey( void );
//  182   byte ZDApp_RestoreNwkKey( void );
//  183 #endif
//  184 
//  185 void ZDApp_SendMsg( byte taskID, byte cmd, byte len, byte *buf );
//  186 
//  187 #if defined ( ZDO_BIND_UNBIND_RESPONSE ) && !defined ( REFLECTOR )
//  188   extern void ZDApp_AppBindReq( byte TransSeq, zAddrType_t *SrcAddr, byte *SrcAddress,
//  189                       byte SrcEndPoint, cId_t ClusterID, byte *DstAddress,
//  190                       byte DstEndPoint, byte SecurityUse, uint8 Type );
//  191 #endif
//  192 
//  193 void ZDApp_ResetTimerStart( uint16 delay );
//  194 void ZDApp_ResetTimerCancel( void );
//  195 void ZDApp_LeaveCtrlInit( void );
//  196 void ZDApp_LeaveCtrlSet( uint8 ra );
//  197 uint8 ZDApp_LeaveCtrlBypass( void );
//  198 void ZDApp_LeaveCtrlStartup( devStates_t* state, uint16* startDelay );
//  199 void ZDApp_LeaveReset( uint8 ra );
//  200 void ZDApp_LeaveUpdate( uint16 nwkAddr, uint8* extAddr,
//  201                         uint8 removeChildren );
//  202 void ZDApp_NodeProfileSync( ZDO_NetworkDiscoveryCfm_t* cfm );
//  203 
//  204 /*********************************************************************
//  205  * LOCAL VARIABLES
//  206  */
//  207 

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  208 byte ZDAppTaskID;
ZDAppTaskID:
        DS 1

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  209 byte nwkStatus;
nwkStatus:
        DS 1

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  210 endPointDesc_t *ZDApp_AutoFindMode_epDesc = (endPointDesc_t *)NULL;
ZDApp_AutoFindMode_epDesc:
        DS 2

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  211 uint8 ZDApp_LeaveCtrl;
ZDApp_LeaveCtrl:
        DS 1
//  212 
//  213 #if defined( HOLD_AUTO_START )
//  214   devStates_t devState = DEV_HOLD;
//  215 #else

        RSEG XDATA_I:XDATA:NOROOT(0)
//  216   devStates_t devState = DEV_INIT;
devState:
        DS 1
        REQUIRE `?<Initializer for devState>`
        REQUIRE __INIT_XDATA_I
//  217 #endif
//  218 
//  219 #if defined( ZDO_COORDINATOR ) && !defined( SOFT_START )
//  220   // Set the default to coodinator

        RSEG XDATA_I:XDATA:NOROOT(0)
//  221   devStartModes_t devStartMode = MODE_HARD;
devStartMode:
        DS 1
        REQUIRE `?<Initializer for devStartMode>`
        REQUIRE __INIT_XDATA_I
//  222 #else
//  223   devStartModes_t devStartMode = MODE_JOIN;     // Assume joining
//  224   //devStartModes_t devStartMode = MODE_RESUME; // if already "directly joined"
//  225                         // to parent. Set to make the device do an Orphan scan.
//  226 #endif
//  227 
//  228 #if defined ( ZDO_IEEEADDR_REQUEST )

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  229   static byte ZDApp_IEEEAddrRsp_TaskID = 0;  // Initialized to NO TASK
??ZDApp_IEEEAddrRsp_TaskID:
        DS 1
//  230 #endif
//  231 
//  232 #if defined ( ZDO_NWKADDR_REQUEST )

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  233   static byte ZDApp_NwkAddrRsp_TaskID = 0;  // Initialized to NO TASK
??ZDApp_NwkAddrRsp_TaskID:
        DS 1
//  234 #endif
//  235 

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  236 static byte ZDApp_MatchDescRsp_TaskID = 0;  // Initialized to NO TASK
??ZDApp_MatchDescRsp_TaskID:
        DS 1

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  237 static byte ZDApp_EndDeviceAnnounce_TaskID = 0;  // Initialized to NO TASK
??ZDApp_EndDeviceAnnounce_TaskID:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -