ZigBee_端点管理_描述符
ZigBee网络中的所有设备都有一些描述符,用来描述设备类型和应用方式。描述符的定义和创建配置项在文件ZDOCConfig.h和ZDOConfig.c中完成。
IEEE地址,设备地址,全球唯一
每个节点都具有物理地址(长地址、MAC)和网络地址(短地址),每个节点都有241个端点
如果设备之间需要绑定,/必须在网络层注册一个或多个端点来进行数据的发送和接受以及绑定表的建立。
#define GENERICAPP_ENDPOINT 10 //定义端点
GenericApp_epDesc.endPoint = GENERICAPP_ENDPOINT; //初始化端点
端点描述符:
typedef struct
{uint8 endPoint; //端点号 1~240 用来接收数据uint8 *task_id; //消息传递的目的地SimpleDescriptionFormat_t *simpleDesc; //指向端点简单描述符afNetworkLatencyReq_t latencyReq; //必须用noLatencyReqs来填充
} endPointDesc_t; //端点描述符
简单描述符:
typedef struct
{uint8 EndPoint; //1~240 用来接受和发送数据uint16 AppProfId; //定义了端点支持的Proile ID 其值为0x0000~0xFFFFuint16 AppDeviceId; //端点支持的设备ID号,其值为0x0000~0xFFFFuint8 AppDevV //端点上执行的设备描述版本:由用户定义uint8 Reserved:4; // AF_V1_SUPPORT uses for AppFlags:4. 保留uint8 AppNumInClusters; //端点支持的输入簇个数cId_t *pAppInClusterList; //指向输入簇列表的指针uint8 AppNumOutClusters; //端点支持的输出簇个数cId_t *pAppOutClusterList; //指向输出簇列表的指针
} SimpleDescriptionFormat_t; //简单描述符
收发双方的输入/输出簇:
const cId_t GenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS] =
{GENERICAPP_CLUSTERID
};
端点配置后必须注册,在AP层:
afStatus_t afRegister( endPointDesc_t *epDesc )
{if (afFindEndPointDescList(epDesc->endPoint)) //寻找重复的端点。 {return afStatus_INVALID_PARAMETER;}return ((NULL == afRegisterExtended(epDesc, NULL)) ? afStatus_MEM_FAIL : afStatus_SUCCESS);
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
