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

📄 zdobject.h

📁 Zigbee2006入门(源代码+文档讲解+系统推荐)
💻 H
字号:
#ifndef ZDOBJECT_H
#define ZDOBJECT_H

/*********************************************************************
    Filename:       ZDObject.h
    Revised:        $Date: 2006-09-22 13:22:02 -0700 (Fri, 22 Sep 2006) $
    Revision:       $Revision: 12074 $
    Description:

      This file contains the interface to the Zigbee Device Object.

    Notes:

    Copyright (c) 2006 by Texas Instruments, Inc.
    All Rights Reserved.  Permission to use, reproduce, copy, prepare
    derivative works, modify, distribute, perform, display or sell this
    software and/or its documentation for any purpose is prohibited
    without the express written consent of Texas Instruments, Inc.
*********************************************************************/

#ifdef __cplusplus
extern "C"
{
#endif

/*********************************************************************
 * INCLUDES
 */
#include "NLMEDE.h"
#include "ZDApp.h"
#include "ZDCache.h"

/*********************************************************************
 * CONSTANTS
 */
#define ZDO_MAX_LQI_ITEMS       3
#define ZDO_MAX_NWKDISC_ITEMS   5
#define ZDO_MAX_RTG_ITEMS       10
#define ZDO_MAX_BIND_ITEMS      3

/*********************************************************************
 * TYPEDEFS
 */
typedef enum
{
  MODE_JOIN,
  MODE_RESUME,
//MODE_SOFT,      // Not supported yet
  MODE_HARD,
  MODE_REJOIN
} devStartModes_t;

/*********************************************************************
 * MACROS
 */

/*********************************************************************
 * GLOBAL VARIABLES
 */

/*********************************************************************
 * FUNCTIONS - API
 */

/*
 * ZDO_Init - ZDObject and ZDApp Initialization.
 */
extern void ZDO_Init( void );

/*
 * ZDO_StartDevice - Start the device in a network
 */
extern void ZDO_StartDevice( byte logicalType, devStartModes_t startMode,
                             byte beaconOrder, byte superframeOrder );

/*
 * ZDO_UpdateNwkStatus - Update nwk state in the apps
 */
extern void ZDO_UpdateNwkStatus( devStates_t state );

/*
 * ZDO_DoEndDeviceBind - Perform the End Device Bind
 */
extern void ZDO_DoEndDeviceBind( ZDEndDeviceBind_t *bindReq );

/*
 * ZDO_MatchEndDeviceBind - Match End Device Bind Requests
 */
extern void ZDO_MatchEndDeviceBind( ZDEndDeviceBind_t *bindReq );

/*********************************************************************
 * Call Back Functions from ZDProfile  - API
 */

extern byte ZDO_AnyClusterMatches(
                              byte ACnt, uint16 *AList, byte BCnt, uint16 *BList );

/*
 * ZDO_ProcessNodeDescReq - Process the Node_Desc_req message.
 */
extern void ZDO_ProcessNodeDescReq(
                             byte seq, zAddrType_t *src, byte *aoi, byte sty );

/*
 * ZDO_ProcessPowerDescReq - Process the Power_Desc_req message.
 */
extern void ZDO_ProcessPowerDescReq(
                             byte seq, zAddrType_t *src, byte *aoi, byte sty );

/*
 * ZDO_ProcessSimpleDescReq - Process the Simple_Desc_req message
 */
extern void ZDO_ProcessSimpleDescReq(
                             byte seq, zAddrType_t *src, byte *msg, byte sty );

/*
 * ZDO_ProcessActiveEPReq - Process the Active_EP_req message
 */
extern void ZDO_ProcessActiveEPReq(
                             byte seq, zAddrType_t *src, byte *msg, byte sty );

/*
 * ZDO_ProcessMatchDescReq - Process the Match_Desc_req message
 */
extern void ZDO_ProcessMatchDescReq(
                             byte seq, zAddrType_t *src, byte *msg, byte sty );

/*
 * ZDO_ProcessEndDeviceBindReq - Process the End_Device_Bind_req message
 */
extern void ZDO_ProcessEndDeviceBindReq( byte TransSeq, zAddrType_t *SrcAddr, byte *msg,
                              byte SecurityUse );

/*
 * ZDO_ProcessBindUnBindReq - Process the Bind_req and Unbind_req messages
 */
extern void ZDO_ProcessBindUnbindReq( byte TransSeq, zAddrType_t *SrcAddr, uint16 ClusterID,
                                     byte *msg, byte SecurityUse );

/*
 * ZDO_ProcessAddrRsp - Process the NWK_addr_rsp or IEEE_addr_rsp message.
 */
extern void ZDO_ProcessAddrRsp( zAddrType_t *src, uint16 cId, byte *msg, byte msgLen );

/*
 * ZDO_ProcessNodeDescRsp - Process the Node_Desc_rsp message
 */
extern void ZDO_ProcessNodeDescRsp( zAddrType_t *SrcAddress, byte *msg );

/*
 * ZDO_ProcessPowerDescRsp - Process the Power_Desc_rsp message
 */
extern void ZDO_ProcessPowerDescRsp( zAddrType_t *SrcAddr, byte *msg );

/*
 * ZDO_ProcessSimpleDescRsp - Process the Simple_Desc_rsp message
 */
extern void ZDO_ProcessSimpleDescRsp( zAddrType_t *SrcAddr, byte *msg );

/*
 * ZDO_ProcessEPListRsp - Process the Active_EP_rsp or
 *                          Match_Desc_rsp message
 */
extern void ZDO_ProcessEPListRsp( zAddrType_t *SrcAddr,
                                   uint16 ClusterID, byte *msg );

/*
 * ZDO_ProcessBindUnbindRsp - Process the End_Device_Bind_rsp, Bind_rsp,r
 *                          or Unbind_rsp message
 */
extern void ZDO_ProcessBindUnbindRsp( zAddrType_t *SrcAddr,
                              uint16 ClusterID, byte Status, uint8 TransSeq );
/*
 * ZDO_ProcessServerDiscRsp - Process the Server_Discovery_rsp message.
 */
#if defined ( ZDO_SERVERDISC_REQUEST )
void ZDO_ProcessServerDiscRsp(zAddrType_t *srcAddr,byte *msg, byte SecurityUse);
#endif

/*
 * ZDO_ProcessServerDiscReq - Process the Server_Discovery_req message.
 */
#if defined ( ZDO_SERVERDISC_RESPONSE )
void ZDO_ProcessServerDiscReq( byte transID, zAddrType_t *srcAddr, byte *msg,
                               byte SecurityUse );
#endif

/*********************************************************************
 * Call Back Functions from APS  - API
 */

/*
 * ZDO_EndDeviceTimeoutCB - Called when the binding timer expires
 */
extern void ZDO_EndDeviceTimeoutCB( void );

/*********************************************************************
 * Optional Management Messages
 */

#if defined ( ZDO_MGMT_NWKDISC_REQUEST )
  /*
   * ZDO_ProcessMgmtNwkDiscReq - Called to parse the incoming
   * Management Network Discover Response
   */
  extern void ZDO_ProcessMgmNwkDiscRsp( zAddrType_t *SrcAddr,
                                            byte *msg, byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_NWKDISC_RESPONSE )
  /*
   * ZDO_ProcessMgmtNwkDiscReq - Called to parse the incoming
   * Management LQI Request
   */
  extern void ZDO_ProcessMgmtNwkDiscReq( byte TransSeq, zAddrType_t *SrcAddr,
                                         byte *msg, byte SecurityUse );

  /*
   * ZDO_FinishProcessingMgmtNwkDiscReq - Called to parse the incoming
   * Management LQI Request
   */
  extern void ZDO_FinishProcessingMgmtNwkDiscReq(byte ResultCount,
                                             networkDesc_t *NetworkList );
#endif

#if defined ( ZDO_MGMT_LQI_REQUEST )
  /*
   * ZDO_ProcessMgmtLqiRsp - This function handles parsing the incoming
   * Management LQI response and then generates a callback to the
   * ZD application.
   */
  extern void ZDO_ProcessMgmtLqiRsp( zAddrType_t *SrcAddr,
                                     byte *msg, byte SecurityUse );
#endif

#if defined( ZDO_MGMT_LQI_RESPONSE )
  /*
   * ZDO_ProcessMgmtLqiReq - Called to parse the incoming
   * Management LQI Request
   */
  extern void ZDO_ProcessMgmtLqiReq( byte TransSeq, zAddrType_t *SrcAddr, byte StartIndex,
                                     byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_RTG_REQUEST )
  /*
   * ZDO_ProcessMgmtRtgRsp - This function handles parsing the incoming
   * Management Routing response and then generates a callback to the
   * ZD application.
   */
  extern void ZDO_ProcessMgmtRtgRsp( zAddrType_t *SrcAddr,
                                          byte *msg, byte SecurityUse );
#endif

#if defined( ZDO_MGMT_RTG_RESPONSE )
  /*
   * ZDO_ProcessMgmtRtgReq - Called to parse the incoming
   * Management Routing Request
   */
  extern void ZDO_ProcessMgmtRtgReq( byte TransSeq, zAddrType_t *SrcAddr,
                                    byte StartIndex, byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_BIND_RESPONSE )
  extern void ZDO_ProcessMgmtBindReq( byte TransSeq, zAddrType_t *SrcAddr, byte StartIndex,
                                      byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_BIND_REQUEST )
  extern void ZDO_ProcessMgmtBindRsp( zAddrType_t *SrcAddr, byte *msg,
                                            byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_JOINDIRECT_RESPONSE ) && defined ( RTR_NWK )
  extern void ZDO_ProcessMgmtDirectJoinReq( byte TransSeq, zAddrType_t *SrcAddr, byte *msg,
                                          byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_JOINDIRECT_REQUEST )
  extern void ZDO_ProcessMgmtDirectJoinRsp( zAddrType_t *SrcAddr, byte Status,
                                          byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_LEAVE_RESPONSE )
  extern void ZDO_ProcessMgmtLeaveReq( byte TransSeq, zAddrType_t *SrcAddr, byte *msg,
                                       byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_PERMIT_JOIN_REQUEST )
  extern void ZDO_ProcessMgmtPermitJoinRsp( zAddrType_t *SrcAddr, byte Status,
                                            byte SecurityUse);
#endif

#if defined ( ZDO_MGMT_PERMIT_JOIN_RESPONSE )
  extern void ZDO_ProcessMgmtPermitJoinReq( byte TransSeq, zAddrType_t *SrcAddr, byte *msg,
                                       byte SecurityUse );
#endif

#if defined ( ZDO_MGMT_LEAVE_REQUEST )
  extern void ZDO_ProcessMgmtLeaveRsp( zAddrType_t *SrcAddr, byte Status,
                                       byte SecurityUse );
#endif

#if defined ( ZDO_USERDESC_REQUEST )
  extern void ZDO_ProcessUserDescRsp( zAddrType_t *SrcAddr, byte *msg,
                                      byte SecurityUse );
#endif

#if defined ( ZDO_USERDESC_RESPONSE )
  extern void ZDO_ProcessUserDescReq( byte TransSeq, zAddrType_t *SrcAddr, byte *msg,
                                      byte SecurityUse );
#endif

#if defined ( ZDO_USERDESCSET_REQUEST )
  extern void ZDO_ProcessUserDescConf( zAddrType_t *SrcAddr, byte *msg,
                                       byte SecurityUse );
#endif

#if defined ( ZDO_USERDESCSET_RESPONSE )
  extern void ZDO_ProcessUserDescSet( byte TransSeq, zAddrType_t *SrcAddr, byte *msg,
                                      byte SecurityUse );
#endif

#if defined ( ZDO_ENDDEVICE_ANNCE )
void ZDO_ProcessEndDeviceAnnce( byte TransSeq, zAddrType_t *SrcAddr, byte *msg,
                                byte SecurityUse );
#endif

#if defined ( ZDO_SIMPLEDESC_REQUEST ) || \
                                (defined( ZDO_CACHE ) && ( CACHE_DEV_MAX > 0 ))
void ZDO_BuildSimpleDescBuf( byte *buf, SimpleDescriptionFormat_t *desc );

uint8 ZDO_ParseSimpleDescBuf( byte *buf, SimpleDescriptionFormat_t *desc );
#endif

/*********************************************************************
*********************************************************************/

#ifdef __cplusplus
}
#endif

#endif /* ZDOBJECT_H */

⌨️ 快捷键说明

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