ZigBee_端点管理_描述符

来源:互联网 发布:世界史书推荐知乎 编辑:程序博客网 时间:2024/04/26 07:46

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~0xFFFF  uint16         AppDeviceId;                 //端点支持的设备ID号,其值为0x0000~0xFFFF  uint8          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);}
0 0
原创粉丝点击