【经验】EmberZnet如何调用自定义API实现Zigbee数据上报?

2020-05-02 世强
EFR32MG,Silicon Labs EFR32MG,Silicon Labs EFR32MG,Silicon Labs EFR32MG,Silicon Labs

SILICON LABS的Zigbee设备工作时有一个非常重要的功能即状态同步,通常需要同步的数据,包括传感器的数据,球泡灯的开关/颜色状态,开关面板的开关状态等;那么这些数据时如何发送给目标设备(网关)的呢?我们可以参考《【经验】利用CLI命令创建EFR32MG的Zigbee工程绑定和上报条目》使用 CLI 来实现标准的上报流程,这中间需要执行绑定和上报配置等操作,那么有没有办法直接自己构造命令并随时上报你要的数据呢?

                

下面的函数参考 conditionreport 的处理,对自定义的数据包进行封装并发送:

extern EmberApsFrame globalApsFrame;

//code:

/**

*   General report message composition EX

*   uint8 u8AttrNums    --- need to report attr Num

*   AttrID   --- AttrID[1] = XXX; AttrID[2] = XXX;

*/

uint8_t UserReportSpecificAttributeEx(

    uint16_t

    u16ClusterID,

    uint8_t

    u8AttrNums,

    uint16_t    *u16AttrID,

    uint8_t                     u8SrcEndPoint,

    uint8_t                     u8DestEndPoint,

    uint16_t                   ManufacturerCode)

{

    uint8_t Data[50];

    uint8_t ZCL_Data[90];

    uint16_t ZclBufferLen = 0;

    EmberStatus status = EMBER_SUCCESS;

 

    globalApsFrame.clusterId = u16ClusterID;

    globalApsFrame.destinationEndpoint = u8DestEndPoint;

    globalApsFrame.sourceEndpoint = u8SrcEndPoint;

    globalApsFrame.profileId = 0x0104;//HA

    uint16_t mfgSpecificId = ManufacturerCode;

    uint8_t disableDefaultResponse = 1;

    EmberAfAttributeType type;

    uint8_t index = 0;

    uint8_t i1;

//zcl common header

    ZCL_Data[index++] = (ZCL_GLOBAL_COMMAND

                         | ZCL_FRAME_CONTROL_SERVER_TO_CLIENT

                         | (mfgSpecificId != EMBER_AF_NULL_MANUFACTURER_CODE

                            ? ZCL_MANUFACTURER_SPECIFIC_MASK

                            : 0)

                         | (disableDefaultResponse

                            ? ZCL_DISABLE_DEFAULT_RESPONSE_MASK

                            : 0));

    if (mfgSpecificId != EMBER_AF_NULL_MANUFACTURER_CODE)

    {

        ZCL_Data[index++] = (uint8_t)mfgSpecificId;

        ZCL_Data[index++] = (uint8_t)(mfgSpecificId >> 8);

    }

 

    ZCL_Data[index++] = emberAfNextSequence();

    ZCL_Data[index++] = ZCL_REPORT_ATTRIBUTES_COMMAND_ID;

    ZclBufferLen = index;

 

    for( i1=0; i1<u8AttrNums; i1++ )

    {

        status =    emAfReadAttribute(u8SrcEndPoint,

                                      (EmberAfClusterId)u16ClusterID,

                                      (EmberAfAttributeId)u16AttrID[i1],

                                      CLUSTER_MASK_SERVER,

                                      mfgSpecificId,

                                      Data,

                                      sizeof(Data),

                                      &type);

        if (status != EMBER_ZCL_STATUS_SUCCESS)

        {

            emberAfCorePrintln("ERR:APP_eUserReportSpecificAttributeEx %x", status);

            return  status;

        }

 

        ZCL_Data[ZclBufferLen] = LOW_BYTE(u16AttrID[i1]);

        ZclBufferLen += 1;

        ZCL_Data[ZclBufferLen] = HIGH_BYTE(u16AttrID[i1]);

        ZclBufferLen +=1;


        ZCL_Data[ZclBufferLen] = type;

        ZclBufferLen +=1;

        uint16_t  size = (emberAfIsThisDataTypeAStringType(type)

                          ? emberAfStringLength(Data) + 1

                          : emberAfGetDataSize(type));

 

        MEMMOVE( ZCL_Data+ZclBufferLen, Data, size);

        ZclBufferLen += size;

        MEMSET(Data, 0, 50);

    }

 

    uint8_t mode ;

    mode = EMBER_OUTGOING_DIRECT;


    status = emberAfSendUnicast(EMBER_OUTGOING_DIRECT,

                                0x0000,

                                &globalApsFrame,

                                ZclBufferLen,

                                ZCL_Data);

 

    emberAfAppPrintln("Report>>%s u16ClusterID: %04x, SeqNum: %d, status: %d\n",__FUNCTION__, u16ClusterID,ZCL_Data[3], status);

 

    return status;

}


上述函数可以在任何时间发送 report 命令给任意设备,方便进行自定义发送。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由xiaoyangfengle提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】Zigbee网关替换操作指南之Host-NCP模式

在zigbee的网络实际应用中,可能会遇到需要替换网关,并希望网络的参数继续保持的情况。即更换了新的网关后,新的网关能够恢复之前的网络参数,网路中的其他设备不需要重新入网。本例程就基于Silicon Labs的EmberZNet 6.3版本协议栈、Zigbee 3.0、Host-NCP模式的网关,指导大家实现网关替换的功能。

设计经验    发布时间 : 2019-04-09

【经验】如何使用Simplicity Studio的Network Analyzer工具进行ZigBee抓包?

在做蓝牙、ZigBee等无线产品开发中,抓包进行数据分析是非常有效的解决问题方法。Silicon Labs的EFR32MG开发板提供PTI硬件抓包,结合Simplicity Studio的Network Analyzer软件工具可以完整抓取无线网络中数据包。本文指导大家如何使用开发板来实现PTI抓包。

设计经验    发布时间 : 2018-11-13

【经验】EmberZnet协议栈中如何关闭ZigBee工程中的APS ACK?

EmberZnet是Silicon Labs公司针对ZigBee无线技术开发的协议栈,运行与EFR32MG系列多协议无线SOC中。在ZigBee的开发中,有些用户会需要关闭APS ACK,避免APS层可能会出现的经常重传。那么如何在ZigBee工程中关闭APS ACK呢?

设计经验    发布时间 : 2020-03-07

【应用】EFR32MG系列无线SoC满足IO-Link要求,助力革新无线工厂自动化方案,实现长距离输出

芯科科技的EFR32MG13、EFR32MG21和EFR32MG24为IO-Link Wireless的快速RF通道和无线电状态切换时间、出色的无线电灵敏度和超低功耗模式提供了优质的选择。

应用方案    发布时间 : 2023-03-24

【经验】EFR32MG使用Railtest做产测功能时如何上电自动发送数据?

Railtest提供了非常完备的命令用于测试各种指标,但有些用户在实际产测时只测试部分功能,且不希望用串口CLI进行交互,实际上我们可以直接修改Railtest。本文就以EFR32MG为例针对Zigbee产品上电后默认进入18信道连续发送进行说明。

设计经验    发布时间 : 2020-11-23

RAIL - SoC Simple TRX Standards 地址过滤 DEMO

型号- EFR32MG22,EFR32MG,EFR32MG系列

开发代码  -  SILICON LABS  - v1.0 C 英文 下载

【经验】如何使用EFR32开发板的PTI抓包用户ZigBee模块

在无线应用开发中,EFR32开发板提供的是PTI硬件抓包,配合Network Analyzer软件工具,能够非常容易分析无线通讯问题。工程师自己做的无线模块,配合EFR32开发板,也可以实现PTI抓包。本文以ZigBee工程为例,指导大家如何实现EFR32开发板的PTI抓包用户ZigBee模块。

设计经验    发布时间 : 2019-10-24

【经验】基于Silicon Labs 无线SoC EFR32MG的PTI抓包工具的使用

Silicon Labs的Zigbee无线SoC EFR32MG在Zigbee的应用中占有非常多的份额,主要的优势为集成PA,最高19.5dbm的发射功率,-102.7dbm接收灵敏度,整个链路预算即122.2db,穿墙的效果非常好。全球范围内使用EFR32MG作为Zigbee网关的产品高达80%。本文讲述基于Silicon Labs 无线SoC EFR32MG的PTI抓包工具的使用方法。

设计经验    发布时间 : 2019-01-18

【经验】在芯科的SSv5中使用MG系列芯片创建Bluetooth-SoC Empty工程

当我们拿到一个Silicon Labs EFR32MG系列蓝牙SoC芯片,想要创建一个Bluetooth-SoC Empty的工程,而打开simplicity studio v5却无从下手。

设计经验    发布时间 : 2023-02-26

开发必备:超全的ZigBee技术规范,参考设计,开发资料,一站式下载集合!

Silicon Labs的EFR32MG系列无线SOC为ZigBee产品开发提供了多种产品组合, EFR32MG13系列产品Flash 512KB和RAM 64KB最适用于需要OTA的产品;EFR32MG21系列适用于性价比高的产品。本文整理一份超全的设计开发资料,一站式提供给ZigBee开发人员下载。【世强硬创沙龙2019】

设计经验    发布时间 : 2018-11-21

【经验】Z3GatewayHost运行出错问题分析

使用Silicon Labs的多协议无线SOC EFR32MG开发过ZigBee的Host-NCP网关的工程师,可能大都遇到过Z3GatewayHost运行出错的问题,本文就和大家分析Z3GatewayHost运行出错的可能性,希望对于解决此类问题能有帮助。

设计经验    发布时间 : 2020-11-05

【应用】芯科科技SOC EFR32MG助力WorthCloud全面强化Zigbee智能家居体验

WorthCloud智能家居一体化服务的加持,可以使设备商将更多的精力投入到终端设备的研发设计,加之Silicon Labs的SOC EFR32MG系列产品的助力,使WorthCloud的客户可以最大限度降低硬件开发的技术难度和研发成本。

应用方案    发布时间 : 2021-12-21

【经验】替换ZigBee网关后,路由节点无法和新网关通信详解

Silicon Labs公司的EFR32MG系列产品由于其高集成度、高射频性能以及超低的功耗特性,受到广大的工程师青睐,用于ZigBee产品的开发。Silicon Labs的网关支持替换后恢复网络功能,详细操作可以参考:Zigbee信任中心替换之Host-NCP模式。最近有工程师反映按照文章操作后,替换新的网关可以恢复之前网络参数,但是网络中的路由节点无法和新网关通信,本文向大家分析此问题的解决。

设计经验    发布时间 : 2019-06-25

【经验】多协议无线SoC EFR32MG的ZigBee开发之Token概念解析

EFR32MG系列是Silicon Labs公司针对多协议推出的无线SOC,单芯片可以支持Sub-G、蓝牙、Thread和Zigbee多种协议。在EFR32MG芯片中没有eeprom,Silicon Labs提供了使用flash模拟eeprom(simulated eeprom)的用法,用来存储非易失性数据,所以实际上它们是直接存储在flash上。而这些数据的写入和访问就是通过token来实现的。

设计经验    发布时间 : 2019-02-12

应用笔记或设计指南  -  SILICON LABS  - Rev. 0.4  - 2020/12/11 PDF 英文 下载

展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:Mighty Gecko Multi-Protocol Wireless SoC

价格:¥27.0929

现货: 90,767

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥8.1764

现货: 104,128

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.9143

现货: 95,058

品牌:SILICON LABS

品类:Wireless SoC

价格:¥31.7756

现货: 88,300

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.5305

现货: 80,817

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.9026

现货: 76,305

品牌:SILICON LABS

品类:Wireless SoC

价格:¥35.3989

现货: 75,007

品牌:SILICON LABS

品类:8位MCU

价格:¥5.8534

现货: 73,121

品牌:SILICON LABS

品类:Wireless SoC

价格:¥19.9760

现货: 72,809

品牌:SILICON LABS

品类:Transceiver

价格:¥15.8878

现货: 64,259

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:Switch Hall Effect Magnetic Position Sensor

价格:¥2.2924

现货:126,000

品牌:SILICON LABS

品类:Light Sensor

价格:¥20.3400

现货:28,003

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.7900

现货:3,451

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.1400

现货:1,455

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥11.1200

现货:1,201

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥16.8500

现货:550

品牌:SILICON LABS

品类:8位MCU

价格:¥56.0000

现货:550

品牌:SILICON LABS

品类:8位MCU

价格:¥5.1900

现货:396

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面