Zstack杂乱笔记4
来源:互联网 发布:石家庄淘宝运营培训班 编辑:程序博客网 时间:2024/05/16 18:52
在SensorDemo,想知道到底在哪调用了static int8 readTemp(void)来读取CC2530上的温度?
Zigbee网络中的三种设备是怎样组网的?组网概念?
#define SERIALAPP_MSG_RTRY_EVT 0x0001 //重发数据
#define SERIALAPP_RSP_RTRY_EVT 0x0002//重发响应信息
#define SERIALAPP_MSG_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_START在IAR ->Project->Option->C/C++ Compile->Preprocess->Defined symbols中定义。
#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事件,这个事件是在ZDApp_event_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中simpleApp例子的组网
http://blog.sina.com.cn/s/blog_933b730f01013o3x.html
Zigbee 的端口0是指的??
sapi_bindInProgress = 0xffff;绑定标志位,默认不允许绑定。
// Initialize leave control logic
什么叫离开控制初始化??
什么是节点描述符??
// 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)确定。所有的应用例子都提供独立的项目文件来编译每一种设备类型。
- Zstack杂乱笔记4
- Zstack杂乱笔记1
- Zstack杂乱笔记2
- Zstack杂乱笔记3
- 杂乱笔记
- 杂乱笔记
- 杂乱笔记
- 杂乱笔记
- 杂乱笔记
- 笔记-杂乱
- zigbee学习笔记4----初次接触zstack
- zigbee学习笔记4----初次接触zstack
- 杂乱的oracle笔记
- VC 杂乱笔记 2
- SQL杂乱笔记
- 杂乱的笔记
- Mysql杂乱笔记
- 【android笔记】杂乱
- 为什么id delegate 用的是assign
- 网络直播电视之M3U8解析篇 (下)
- Redis skip list,ziplist分析
- redis基本数据类型分析
- android打印信息
- Zstack杂乱笔记4
- git如何合并只有两个commit到一个
- itext生存pdf
- html+javascript实现文字的打字机效果
- 周鸿祎(360):商业模式不是赚钱模式
- QTP自动化测试视频教程系列第10、11集已发布
- Oracle中的job
- ubuntu12.04安装deadbeef
- linux设备驱动归纳总结(四):5.多处理器下的竞态和并发