Zstack 스크랩 노트 4

5413 단어 Zigbee
SensorDemo에서 CC2530의 온도를 읽으려면 static int8 readTemp(void)를 어디에서 호출했는지 알고 싶습니까?
Zigbee 네트워크의 세 가지 장치는 어떻게 네트워크를 구성합니까?그룹 네트워크 개념?
#define SERIALAPP_MSG_RTRY_EVT 0x0001//데이터 재발급 #define SERIALAPPRSP_RTRY_EVT 0x0002/응답 메시지 다시 보내기 #define SERIALAPPMSG_SEND_EVT 0x0004//데이터 전송
네트워크 디바이스 시작:
이 문장은 HOLD 가 무엇인지와 중대한 관계가 있다AUTO_START ??
#if defined( HOLD_AUTO_START )   devStates_t devState = DEV_HOLD; #else   devStates_t devState = DEV_INIT; #endif
HOLD_AUTO_START의 정의는
HOLD_AUTO_IAR ->Project->Option->C/C++ Compile->Preprocess->Defined symbols에서 정의합니다.


//ZDOInitDevice return values
#define ZDO_INITDEV_RESTORED_NETWORK_STATE      0x00
#define ZDO_INITDEV_NEW_NETWORK_STATE           0x01
#define ZDO_INITDEV_LEAVE_NOT_STARTED           0x02
//Use the following to macros to make device type decisions #define ZG_BUILD_COORDINATOR_TYPE  (ZSTACK_DEVICE_BUILD & DEVICE_BUILD_COORDINATOR) #define ZG_BUILD_RTR_TYPE          (ZSTACK_DEVICE_BUILD & (DEVICE_BUILD_COORDINATOR | DEVICE_BUILD_ROUTER)) #define ZG_BUILD_ENDDEVICE_TYPE    (ZSTACK_DEVICE_BUILD & DEVICE_BUILD_ENDDEVICE) #define ZG_BUILD_RTRONLY_TYPE      (ZSTACK_DEVICE_BUILD == DEVICE_BUILD_ROUTER) #define ZG_BUILD_JOINING_TYPE      (ZSTACK_DEVICE_BUILD & (DEVICE_BUILD_ROUTER | DEVICE_BUILD_ENDDEVICE))
ZigBee 장치의 시작, 결국 ZDO 호출StartDevice() 함수로 구현됩니다.다음은 이 함수를 어떻게 시작하는지 봅시다.ZDOInitDevice() 함수의 마지막 부분에서 다음 ZDApp 이 호출되었습니다.NetworkInit() 함수, 이 함수에서 ZDO 시작NETWORK_INIT 이벤트, 이 이벤트는 ZDAppevent_loop () 이벤트 처리 함수에서 처리됩니다.이 이벤트에서 장치 시작 함수 ZDO 호출됨StartDevice().
ZCL이란?
zigbee cluster library(ZCL) zigbee   
 ZCL              ,             ,                  、         。

//Device types definitions ( from ZGlobals.h file )
#define ZG_DEVICETYPE_COORDINATOR      0x00
#define ZG_DEVICETYPE_ROUTER           0x01
#define ZG_DEVICETYPE_ENDDEVICE        0x02
ZStack-CC2530-2.3.0-1.4.0의 단순 App 예에 대한 그룹 네트
http://blog.sina.com.cn/s/blog_933b730f01013o3x.html
Zigbee의 포트 0은??
sapi_bindInProgress = 0xffff;귀속 표지 비트, 기본적으로 귀속을 허용하지 않습니다.
//Initialize leave control logic  ZDApp_LeaveCtrlInit();//제어에서 벗어나 초기화
제어에서 벗어나 초기화라니요??
노드 설명자란??
//Node Descriptor format structure typedef struct {   uint8 LogicalType:3;   uint8 ComplexDescAvail:1;  /* AF_V1_SUPPORT - reserved bit. */  uint8 UserDescAvail:1;    /* AF_V1_SUPPORT - reserved bit. */  uint8 Reserved:3;   uint8 APSFlags:3;   uint8 FrequencyBand:5;   uint8 CapabilityFlags;   uint8 ManufacturerCode[2];   uint8 MaxBufferSize;   uint8 MaxInTransferSize[2];   uint16 ServerMask;   uint8 MaxOutTransferSize[2];   uint8 DescriptorCapability;  } NodeDescriptorFormat_t;
지금 공유기 장치가 그룹 네트워크에서의 작용을 알고 싶습니다???
/*********************************************************************
 * @fn      ZDApp_Init
 *
 * @brief   ZDApp Initialization function.
 *
 * @param   task_id - ZDApp Task ID
 *
 * @return  None
 */
void ZDApp_Init( uint8 task_id )
{
  // Save the task ID
  ZDAppTaskID = task_id;

  // Initialize the ZDO global device short address storage
  ZDAppNwkAddr.addrMode = Addr16Bit;
  ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR;
  (void)NLME_GetExtAddr();  // Load the saveExtAddr pointer.

  // Check for manual "Hold Auto Start" 
/ /     ,        SW_1    devState = DEV_HOLD
  ZDAppCheckForHoldKey();

  // Initialize ZDO items and setup the device - type of device to create.
  ZDO_Init();

  // Register the endpoint description with the AF
  // This task doesn't have a Simple description, but we still need
  // to register the endpoint.
  afRegister( (endPointDesc_t *)&ZDApp_epDesc );

#if defined( ZDO_USERDESC_RESPONSE )
  ZDApp_InitUserDesc();
#endif // ZDO_USERDESC_RESPONSE

  // Start the device?     ,                
  if ( devState != DEV_HOLD )
  {
    ZDOInitDevice( 0 );
  }
  else
  {
    ZDOInitDevice( ZDO_INIT_HOLD_NWK_START );
    // Blink LED to indicate HOLD_START
    HalLedBlink ( HAL_LED_4, 0, 50, 500 );
  }
  
  // Initialize the ZDO callback function pointers zdoCBFunc[]
  ZDApp_InitZdoCBFunc();
  
  ZDApp_RegisterCBs();
} /* ZDApp_Init() */

// Init ZDO, but hold and wait for application to start the joining or 
// forming network
#define ZDO_INIT_HOLD_NWK_START       0xFFFF  

/*********************************************************************
 * @fn          ZDO_Init
 *
 * @brief       ZDObject and ZDProfile initialization.
 *
 * @param       none
 *
 * @return      none
 */
void ZDO_Init( void )
{
  // Initialize ZD items
  #if defined ( REFLECTOR )
  ZDO_EDBind = NULL;
  #endif

  // Initialize default ZDO_UseExtendedPANID to the APS one.
  osal_cpyExtAddr( ZDO_UseExtendedPANID, AIB_apsUseExtendedPANID );

  // Setup the device - type of device to create.
  ZDODeviceSetup();
}
static void ZDODeviceSetup( void )
{
  if ( ZG_BUILD_COORDINATOR_TYPE )
  {
    NLME_CoordinatorInit();
  }

#if defined ( REFLECTOR )
  APS_ReflectorInit( (ZG_DEVICE_COORDINATOR_TYPE) ? APS_REFLECTOR_PUBLIC :  APS_REFLECTOR_PRIVATE );
#endif

  if ( ZG_BUILD_JOINING_TYPE )
  {
    NLME_DeviceJoiningInit();
  }
}

조정기, 공유기와 단말기는 도대체 어떤 관계입니까?
트리 그룹 이런 네트워크 모드와 다중 루트?
참고: Z-Stack 1.4.1의 장치 유형은 일반적으로 컴파일할 때 컴파일 옵션(ZDO COORDINATOR 및 RTR NWK)을 통해 결정됩니다.모든 응용 예는 장치 종류를 컴파일하기 위해 독립된 프로젝트 파일을 제공합니다.

좋은 웹페이지 즐겨찾기