不完全记录
本工程以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<