Zstack home 1.2.2a兼容对接ZHA标准设备和2.5.1a私有设备

版权声明:本文原创,未经许可,不可转载。 https://blog.csdn.net/qq_24550925/article/details/80758136
前言
  • 写不归路前,先鸣谢各位大哥:专哥,龙哥,怪兽哥,临哥,安联德哥等各位zigbee的带头大哥,带我走上了zigbee的不归路。
  • 我尽量不插入图片,无线的这个论坛有限制,游客看不了。

基础
  • 协议栈版本:zstack home 1.2.2a
  • SoC方案:CC2530F256
  • 标准对接产品:小米的门磁(很多小大哥说小米的不标准,大家理解不同,小米门磁搞的是开关,说标准也是标准,说不标准也行,不逼逼)
  • 非标对接产品:自己做的,基于zstack2.5.1a开发的私有协议产品。



疑问
  • 我打算在1.2.2a上面注册一个任务,专门处理2.5.1a的非标准产品,我的理解是可行的。
  • 新任务中注册新的端点号,因为标准的产品厂家用的是1,我自己的用的是8,这种方向对不对?
  • 新任务的无线收发是跳过ZCL的,需要在1.2.2a中有特殊处理吗?还是直接注册新的事件函数就行了?

疑问解答
  • 疑问1:方法不对的,因为非标的数据会通过ZCL上报。
  • 疑问2:方法也是不靠谱的,因为endpoint最好相同,否则会出现绑定等大坑。
  • 疑问3:无线的接收不方便跳过ZCL,无线的发送方便跳过,直接AF。不用注册新事件,直接在ZCL事件中阻止非标zigbee产品的上报。


具体实施步骤:

第一步:通信基础:端点号相同+簇包含+Profile ID相同
1.将自己做的2.5.1a的非标准的产品端点号改成和标准的一样,我这里都是1。
#define SAMPLEAPP_ENDPOINT               1       //2.5.1a的SampleApp.h里面
#define SAMPLELIGHT_ENDPOINT            1      //标准的我的是在zcl_samplelight.h里面

2.将2.5.1a里面用到的输入和输出簇,添加到标准的里面去,切记取值不要和标准的相同。
const cId_t zclSampleLight_InClusterList[] =
{
  ZCL_CLUSTER_ID_GEN_BASIC,
  ZCL_CLUSTER_ID_GEN_POWER_CFG,
  ZCL_CLUSTER_ID_GEN_IDENTIFY,
  ZCL_CLUSTER_ID_GEN_GROUPS,
  ZCL_CLUSTER_ID_GEN_SCENES,
  ZCL_CLUSTER_ID_GEN_ON_OFF,
  ZCL_CLUSTER_ID_GEN_ALARMS,
  ZCL_CLUSTER_ID_SS_IAS_ZONE,
   SAMPLEAPP_PERIODIC_CLUSTERID, 
  SAMPLEAPP_FLASH_CLUSTERID,
  SAMPLEAPP_P2P_CLUSTERID  
};

const cId_t zclSampleLight_OutClusterList[] =
{
  ZCL_CLUSTER_ID_GEN_BASIC,
  ZCL_CLUSTER_ID_GEN_POWER_CFG,
  ZCL_CLUSTER_ID_GEN_IDENTIFY,
  ZCL_CLUSTER_ID_GEN_GROUPS,
  ZCL_CLUSTER_ID_GEN_SCENES,
  ZCL_CLUSTER_ID_GEN_ON_OFF,
  ZCL_CLUSTER_ID_GEN_ALARMS,
  ZCL_CLUSTER_ID_SS_IAS_ZONE,
   SAMPLEAPP_PERIODIC_CLUSTERID, 
  SAMPLEAPP_FLASH_CLUSTERID,
  SAMPLEAPP_P2P_CLUSTERID  
};


3.非标的profile ID修改成标准的0x0104。
#define SAMPLEAPP_PROFID             0x0104     //2.5.1a的SampleApp.h里面

注:
  • 完成上面三条后就能接收到数据了,但是数据被ZCL搞去了,出现“ZCL瞎鸡巴解析”,因为你毕竟是自定义的,ZCL并不知道,他还是按照ZCL格式解析,就他妈乱了。
  • 整个zigbee的入网流程不需要做任何改动,因为ZCL是应用层的规范。


第二步:自定义协议禁止ZCL解析,完成自定义解析。

待续。。。。



结束
很多初学者问,学习zigbee找谁帮忙,请在论坛发帖留言 有问题请加QQ群671139854,里面装逼的zigbee大佬太多,只要能接受大佬的怼,就能解决一切zigbee杂症。



争取早日走完这条不归路。












猜你喜欢

转载自blog.csdn.net/qq_24550925/article/details/80758136