近几年物联网技术得到了快速发展,与之相关的RFID,无线传感网络等技术也得到快速发展,在无线网络里zigbee是重要的组成部分,但是由于zigbee的协议栈是半开源的所以使用有一些难点,还有就是zigbee网络组建,绑定时的数据传来传去的,很麻烦!今天我们就讲一个,简单的zigbee点对点的通信例子;其实我们只需要关系这几个数据就可以了;节点描述符endPointDesc_t,簇描述符cId_t,简单设备描述符SimpleDescriptionFormat_t;
看这几个变量的初始化,
const cId_t GenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS] =
{
GENERICAPP_CLUSTERID
};
endPointDesc_t GenericApp_epDesc;
GenericApp_epDesc.endPoint = GENERICAPP_ENDPOINT; //10
GenericApp_epDesc.task_id = &GenericApp_TaskID;
GenericApp_epDesc.simpleDesc =(SimpleDescriptionFormat_t *)&GenericApp_SimpleDesc;
GenericApp_epDesc.latencyReq = noLatencyReqs;
初始化的宏都是协议栈早已定义好的。
然后afRegister(&GenericApp_epDesc);注册节点就可以了。
后发送数据
afAddrType_t GenericApp_DstAddr;
GenericApp_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
GenericApp_DstAddr.endPoint = GENERICAPP_ENDPOINT;
GenericApp_DstAddr.addr.shortAddr = 0x0000;
if ( AF_DataRequest( &GenericApp_DstAddr, &GenericApp_epDesc,
GENERICAPP_CLUSTERID,
(byte)osal_strlen( theMessageData ) + 1,
(byte *)&theMessageData,
&GenericApp_TransID,
AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )