【经验】Z3GatewayHost Mqtt 如何正确处理 string 类型上报数据?
EFR32MG多协议SoC芯片是 SILICON LABS 专门针对 IOT 推出的 ZigBee 方案,高达19.5dbm的发射功率,-102.7dbm的接收灵敏度,在业界内拥有最佳的RF射频性能,具有最全的Zigbee网络协议,被广泛应用在智能家居,工业控制等行业。
在开发 Zigbee Gateway Mqtt时,Gateway 需要将所有设备上报数据给到 Server 端,在现有的 Z3HostGatewayMqtt 工程中没有正确的处理 String Characteristic 类型的数据上报。
bool emberAfReportAttributesCallback(EmberAfClusterId clusterId,
uint8_t * buffer,
uint16_t bufLen)
{
EmberEUI64 nodeEui64;
EmberNodeId nodeId = emberAfCurrentCommand()->source;
emberAfDeviceTableGetEui64FromNodeId(nodeId, nodeEui64);
uint8_t * bufferTemp;
uint8_t * bufferPtr = buffer;
uint8_t i, bufferSize;
if (bufLen == 0)
{
emberAfAppPrintln("Report attributes callback: zero length buffer");
return false;
}
// Buffer [0] is low bits, Buffer [1] is high bits, Buffer [2] is dataType,
// Buffer [3+] is data
emberAfAppPrintln("Reporting attributes for cluster: 0x%2x", clusterId);
for (i = 0; i < bufLen; )
{
// Get Length of Attribute Buffer
bufferSize = emberAfGetDataSize(
bufferPtr[ATTRIBUTE_BUFFER_REPORT_DATA_TYPE]);
//add by sven
#define ATTRIBUTE_BUFFER_REPORT_DATA_LENGTH 3
if(bufferPtr[ATTRIBUTE_BUFFER_REPORT_DATA_TYPE] == 0x42) // character string
{
bufferSize = bufferPtr[ATTRIBUTE_BUFFER_REPORT_DATA_LENGTH];
}
// Add 3 bytes for header size
bufferSize += 3;
//Copy buffer to attributeBufferI
bufferTemp = (uint8_t*)malloc(bufferSize);
memcpy(bufferTemp, bufferPtr, bufferSize);
//add by sven
if(bufferPtr[ATTRIBUTE_BUFFER_REPORT_DATA_TYPE] == 0x42) // character string
{
memcpy(bufferTemp+3, bufferPtr+ATTRIBUTE_BUFFER_REPORT_DATA_LENGTH+1, bufferPtr[ATTRIBUTE_BUFFER_REPORT_DATA_LENGTH]);
}
// Set i to point to:
// [attrLSB,attrMSB,dataT,buffer,nAttrLSB,nAttrMSB,nextDataT,nextBuffer]
// [ , , , ..n , X , , , ..n ]
bufferPtr = bufferPtr + bufferSize;
i = i + bufferSize;
//add by sven
if(bufferPtr[-bufferSize + ATTRIBUTE_BUFFER_REPORT_DATA_TYPE ] == 0x42) // character string
{
bufferPtr = bufferPtr +1;
i = i +1;
}
emberAfAppPrintln("Reported attribute: 0x%02X%02X, Type: %02X",
bufferTemp[ATTRIBUTE_BUFFER_ATTRIBUTEID_HIGH_BITS],
bufferTemp[ATTRIBUTE_BUFFER_ATTRIBUTEID_LOW_BITS],
bufferTemp[ATTRIBUTE_BUFFER_REPORT_DATA_TYPE]);
publishMqttAttributeReport(nodeEui64,
clusterId,
bufferTemp,
bufferSize);
free(bufferTemp);
}
return false;
}
修改过的处理函数增加了对 string 类型的判断及长度截取
- |
- +1 赞 0
- 收藏
- 评论 0
本文由xiaoyangfengle提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关研发服务和供应服务
相关推荐
【经验】多协议无线 SOC EFR32MG实现ZigBee的OTA操作指南
EFR32MG系列是Silicon Labs公司推出支持多协议无线 SOC,可以单芯片支持私有协议、BLE5.0、BLE MESH、ZigBee和Thread协议,并且可以单芯片支持Sub-GHz和2.4GHz的频段。由于其超低功耗、高射频性能以及高集成度等特点被广泛应用于智能家居、安防、智能工业等市场。在ZigBee的实际应用中,OTA是必不可少的功能,由于选择的型号不同,配置OT
设计经验 发布时间 : 2018-09-24
【经验】ZigBee 3.0 网络 : 使用由install code 生成的 link key 入网
在ZigBee 3.0之前,install code只用于Smart Energy网络。现在,为了提升 Zigbee 的安全性,所有的ZigBee 3.0设备都需要支持install code,但是否在网络中使用由 Trust Center 决定。本文将讲述使用 install code 的方式把 Z3 Light 加入到 Z3 Gateway 中。
设计经验 发布时间 : 2018-10-12
【经验】创建ZigBee的无线SOC网关工程操作步骤
Silicon Labs公司的EFR32MG系列是针对智能家居市场应用的多协议无线SOC,单芯片支持蓝牙、ZigBee和Thread等协议,尤其是高性价比的系列2产品MG21、MG22,在ZigBee应用方面受到广大工程师的青睐。对于新手来说,使用SOC模式网关是最简单不过,本文就指导大家创建ZigBee的SOC网关工程操作步骤。
设计经验 发布时间 : 2020-04-09
SILICON LABS ZIGBEE 无线 Gecko SoC选型表
EFR32MG无线 Gecko SoC 是在 IoT 设备上实现节能多协议连网的理想之选。芯片解决方案结合了 76.8MHz ARM和高性能 2.4GHz 无线电,旨在为 IoT连接应用提供行业领先的节无线 SoC。
产品型号
|
品类
|
Protocol Stack
|
Frequency Band @ Max TX Power(GHz@dBm)
|
Flash(kB)
|
RAM(kB)
|
GPIO(个数)
|
Operating Temperature(℃)
|
Storage Temperature(℃)
|
Pin Count
|
AVDD Supply Voltage(V)
|
EFR32MG12P433F1024GL125-C
|
Gecko Multi-Protocol Wireless SoC
|
Bluetooth LE Zigbee Thread Proprietary, Wi-SUN
|
2.4GHz @ 19dBm, Sub-GHz @ 20dBm
|
1024kB
|
256kB
|
65
|
-40℃~85℃
|
-50℃~150℃
|
BGA125
|
1.8V~3.8V
|
选型表 - SILICON LABS 立即选型
2.4GHz无线SoC MG21助力开发SONOFF微型Zigbee USB智能适配器支持路由和快充
SILICON LABS近日宣布,其EFR32MG21(MG21)2.4GHz无线SoC获SONOFF公司选用于开发新型“ZBMicro”智能开关。该产品是SONOFF最新的微型Zigbee USB智能适配器,也是智能家居技术领域的开创性产品。从作为USB设备的智能开关到作为Zigbee路由器和支持快速充电的功能,ZBMicro提供了无与伦比的用户体验,提升了现代智能家居的连接性和便利性。
原厂动态 发布时间 : 2024-08-17
芯科科技多协议无线SoC助力控客开发智能家居解决方案,为杭州亚运村打造智能舒适、便捷安全的生活体验
SILICON LABS MG21多协议无线SoC获杭州控客信息技术有限公司采用于开发全套智能家居解决方案,并提供予杭州亚运会媒体村打造智能、舒适、便捷、安全的生活体验。控客于近期采用了芯科科技MG21多协议无线片上系统(SoC)的控客智能家居解决方案于先前落地杭州亚运会媒体村,用创新性设计和高品质产品,为入住人员提供了智能、舒适、便捷、安全的生活体验。
应用方案 发布时间 : 2023-12-07
【经验】教你如何修改EFR32MG系列SOC ZigBee工程的CCA阈值
Silicon Labs公司的EFR32MG系列SOC单芯片已被广泛应用于智能家居市场产品中。对于ZigBee协议栈,无论单播还是广播,数据包在发送之前MAC层会检测CCA(Clear Channel Assessment ),如果检测到接收信号强度低于阈值,数据包就不发送。因此需要根据实际情况来设置合理的CCA阈值,本文就指导大家来设置EFR32MG系列SOC的CCA阈值。
设计经验 发布时间 : 2019-01-31
【经验】如何使用树莓派开发 ZigBee 网关?
在 Zigbee 系统中,网关是一个非常重要的设备,为了能容纳更大的网络及更复杂的应用逻辑,一个强大的主机是不可或缺的,树莓派就是这样一个强大的开发平台,非常适合用来构建 host application,这个文章将描述如何设置树莓派来开发 Silicon Lbas EmberZNet ZigBee Gateway。
设计经验 发布时间 : 2018-10-12
Silicon Labs(芯科科技) Wi-Fi 芯片和模块选型指南
目录- Wi-Fi SoC and Module Selector Guide Wi-Fi Lineup Wi-Fi Development Kits IoT Wi-Fi Technology Leader Wi-Fi Applications Company Profile
型号- SLEXP8022A,SIWX915,RS9116,WF200,SIWX917,RS9116X-DB-EVK1,RS9116X-SB-EVK1,RS9116X-SB-EVK2
【经验】多协议无线SoC EFR32MG的ZigBee开发之Token使用教程
EFR32MG系列是Silicon Labs公司针对多协议推出的无线SOC,单芯片可以支持Sub-G、蓝牙、Thread和Zigbee多种协议。Token是用来存储非易失性数据的即掉电后也能保存,本文档指导大家如何在EmberZNet PRO应用程序中自定义Token来存储非易失性数据。
设计经验 发布时间 : 2019-02-13
【经验】如何创建 Z3GatewayHost 网关?
EFR32MG多协议SoC芯片是 Silicon Labs 专门针对 IOT 推出的 ZigBee 方案,高达19.5dbm的发射功率,-102.7dbm的接收灵敏度,在业界内拥有最佳的RF射频性能,具有最全的Zigbee网络协议,被广泛应用在智能家居,工业控制等行业。在开发 Zigbee 产品时网关是重要的一个部分,本文详细介绍了创建一个 GatewayHost 的方法。
设计经验 发布时间 : 2019-01-01
芯科科技BG27/MG27 SoC系列产品荣获2023年维科杯芯片技术突破奖,专为尺寸极小的物联网设备设计
Silicon Labs的BG27蓝牙SoC以及支持Zigbee及其他专有协议的MG27 SoC系列产品获颁“维科杯OFweek 2023物联网行业创新技术产品奖-芯片技术突破奖殊荣”。
原厂动态 发布时间 : 2023-09-12
【经验】如何使用railtest测量EFR32MG Zigbee SoC性能?
许多公司正在调研或已经研发Silicon Labs的EFR32MG Zigbee SoC的Zigbee方案,那么怎么来进行EFR32MG的性能测量呢?本文介绍使用railtest固件测量EFR32MG性能指标的方法。
设计经验 发布时间 : 2020-04-02
【经验】如何在windows平台搭建Zigbee网关开发环境cygwin?
Silicon Labs 的EFR32MG多协议SoC芯片是 Silicon Labs 专门针对 IOT 推出的 ZigBee 方案,在开发 Zigbee 产品时网关是重要的一个部分,本文详细介绍了如何在Windows平台上搭建Silicon Labs提供的Zigbee网关开发环境cygwin。
设计经验 发布时间 : 2019-11-02
芯科小型、低功耗无线SoC EFR32MG22专为Zigbee Green Power优化,有助于实现能量收集参考设计
EFR32MG22(MG22)系列产品是专为Zigbee Green Power应用而优化的小型、低功耗无线SoC平台,扩展了Silicon Labs的Zigbee产品组合。MG22 SoC是使用纽扣电池或通过能量收集供电的Zigbee设备的理想选择,其目标应用包括智能家居传感器、照明控制以及楼宇和工业自动化等。
原厂动态 发布时间 : 2023-05-28
电子商城
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,858
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥10.4994
现货: 61,779
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥11.5212
现货: 59,367
现货市场
服务
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
提供蓝牙BLE芯片协议、蓝牙模块、蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论