华为IoTDA解码插件报告错误:The decoding result is empty.data

前面的博文讲过,在使用Neuron上传数据到华为IoTDA的时候没有使用华为的物模型进行解析,因为两者的数据格式不同。具体的说Neuron上传的格式是

复制代码
{
    "node": "RS485", 
    "group": "Data", 
    "timestamp": 1721737594934, 
    "values": 
        {
            "湿度": 56.8, 
            "温度": 28.3
        }, 
    "errors": {}, 
    "metas": {}
}

而华为要求的格式是这样的:

复制代码
{
	"services": [
		{
			"serviceId": "温湿度",
			"properties": {
				"温度": 20,
				"湿度": 4
			},
			"event_time": "20230321T081126Z" 
		}
	]
}

而在Neuron中并没有配置编码插件的地方。

今天在华为云的IoT平台上发现一个可以配置编解码插件的地方。

于是就想能不能用这个插件机制将收到的MQTT载荷转换为物模型的格式。用JavaScript写了解码函数,实际测试了一下,发现报告错误。从消息跟踪中可以看到错误信息。

错误的详情是这样的。

从中可以看出,我的想法不可行。因为MQTT的载荷类型为二进制数据时,华为的平台才调用decode函数,否则就不调用。所以上传的数据为JSON格式时就无法进行转换。

现在看来只有一个解决办法,就是写一个Neuron插件,在其中修改neu_json_encode_read_resp1函数(定义在main/src/parser/neu_json_rw.c中),实现对华为物模型的支持。

相关推荐
hunterandroid2 分钟前
Fragment 事务与状态丢失:从崩溃现场到稳定治理
前端
清风programmer2 分钟前
H5与小程序通信
前端·vue.js·uni-app
不知疲倦的仄仄4 分钟前
MySQL/Read View快照/MVCC/串行化
java·数据库·mysql
奶糖 肥晨8 分钟前
mac系统中Java项目环境配置与问题解决全记录|环境准备篇:JDK与Maven安装配置
java·macos·maven
不一样的少年_10 分钟前
原来 AI Agent 的核心循环这么简单:手搓一个 Agent Loop
前端·后端·agent
爱写代码的阿森13 分钟前
鸿蒙三方库 | harmony-utils之ArrayUtil集合过滤排序与分块详解
华为·harmonyos·鸿蒙·huawei
不言鹅喻14 分钟前
HarmonyOS ArkTS 实战:实现一个掷骰子模拟器
华为·harmonyos
向夏威夷 梦断明暄20 分钟前
C# 弃元模式:从语法糖到性能利器的深度解析
服务器·数据库·c#
SimonKing33 分钟前
OpenCode 桌面版这 10 天偷偷迭代了 5 个版本,你还在用旧版吗?
java·后端·程序员
爱勇宝34 分钟前
你以为自己性格不好,其实只是被环境反复训练
前端·后端·程序员