我是靠谱客的博主 如意紫菜,最近开发中收集的这篇文章主要介绍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~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);
}

最后

以上就是如意紫菜为你收集整理的ZigBee_端点管理_描述符的全部内容,希望文章能够帮你解决ZigBee_端点管理_描述符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部