开发环境:IAR 8.10 Z-stack 2.5
功能:协调器与终端节点组网,实现点对点通信。终端向协调器发送“D1”,协调器LED灯闪烁。
流程图:
具体代码:
- 初始化
- 端点描述符
endPointDesc_t GenericApp_epDesc;
- 任务ID,应用层的优先级
byte GenericApp_TaskID;
- 设备状态
devStates_t GenericApp_NwkState;
- 发送数据序号(计数)
byte GenericApp_TransID;
- 定义简单端点描述符
SimpleDescriptionFormat_t 是一个结构体,我们可以具体分析一下,这里是它的定义:
const SimpleDescriptionFormat_t GenericApp_SimpleDesc =
{
GENERICAPP_ENDPOINT, //端口号
GENERICAPP_PROFID, //Profile的ID
GENERICAPP_DEVICEID, //设备ID
GENERICAPP_DEVICE_VERSION, //设备版本号,只占前四位
GENERICAPP_FLAGS, //预留位,只占前四位
0, //输入命令数
(cId_t *)NULL //输入命令地址
GENERICAPP_MAX_CLUSTERS, //输入命令数
(cId_t *)GenericApp_ClusterList, //输入命令地址
};
由于在本次实验中终端节点角度(命令的一方)所以要求是输出命令
- 定义输入命令集列表
const cId_t GenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS] =
{
GENERICAPP_CLUSTERID //命令号
};
- 重新定义初始化函数
- 保存系统任务分配的ID
- 数据初始序号从0开始
- 初始化设备状态
- 填充端点描述符
- 注册端点描述符
//任务初始化函数, 系统初始化时会被调用
void