Zigbee协议简单学习

不完全记录

本工程以TI公司的CC2530芯片为例,简单记录了ZigBee协议栈下的种种,也是对目前所学课程的二次理解和输出吧。
首先是应用层的App.c文件

cId_t DNUI_SampleApp_ClusterIDS[DNUI_SAMPLEAPP_CLUSTER_NUM] = 
{
   
  DNUI_SAMPLEAPP_DATATEST_CLUSTER_ID
};
首先在AF.h文件中定义了一个cID_t即unit16的数据类型,在app.c中一开始定义了一个根据簇的编号来存放簇ID数据的一个数组。

```c
SimpleDescriptionFormat_t  DNUI_Sample_SimpleDesc = 
{
   
  DNUI_SAMPLEAPP_ENDPOINT,
  DNUI_SAMPLEAPP_PROFILE_ID,
  DNUI_SAMPLEAPP_DEVICE_ID,
  DNUI_SAMPLEAPP_DEVICE_VER,
  0,
  DNUI_SAMPLEAPP_CLUSTER_NUM,
  (cId_t*)DNUI_SampleApp_ClusterIDS,
  DNUI_SAMPLEAPP_CLUSTER_NUM,
  (cId_t*)DNUI_SampleApp_ClusterIDS
};

本段代码是根据所定义的简单描述符的格式为其中的参数赋值。
其中包括端点号、协议ID、设备ID、设备版本、“0”为一个保留选项、应用层输入簇ID的数目、指向输入簇ID列表的指针以及相应的输出簇的ID的数目、指向输出簇ID列表的指针。

void DNUI_SampleApp_Init( uint8 task_id )
{
   
  //--start--给三个重要的变量赋初值---不需要修改
  DNUI_SampleAppTaskID = task_id;
  DNUI_SampleApp_NwkState = DEV_INIT;
  DNUI_SampleApp_TransID = 0;  
  //--end--给三个重要的变量赋初值---不需要修改
  
  //--start--构造端点描述符,并注册端点--需要修改
  DNUI_SampleApp_epDesc.endPoint = DNUI_SAMPLEAPP_ENDPOINT;   
  DNUI_SampleApp_epDesc.task_id = &DNUI_SampleAppTaskID;
  DNUI_SampleApp_epDesc.latencyReq = noLatencyReqs;
  DNUI_SampleApp_epDesc.simpleDesc = (SimpleDescriptionFormat_t*)&DNUI_Sample_SimpleDesc;
  afRegister(&DNUI_SampleApp_epDesc); 
  //--end--构造端点描述符,并注册端点--需要修改
 
  //--start--做应用相关的初始化工作--需要根据应用进行添加
  Coor_Addr.addrMode = (afAddrMode_t) Addr16Bit;
  Coor_Addr.endPoint = DNUI_SAMPLEAPP_ENDPOINT;
  Coor_Addr.addr.shortAddr = 0x0;// 定义协调器的地址   
  UartInit(NULL);
  //--end--做应用相关的初始化工作--需要根据应用进行添加 
}

应用层初始化函数,给相关变量赋值并且构造端点描述符。
以下是端点描述符的具体结构:

typedef struct
{
   
  uint8 endPoint<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值