华为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中),实现对华为物模型的支持。

相关推荐
Hilaku4 分钟前
为什么我劝应届生不要去创业公司写前端?
前端·javascript·程序员
郑州光合科技余经理7 分钟前
出海外卖平台:支付对接为什么要和下单收款分开
android·java·开发语言·前端·后端·php·ai编程
我是人✓14 分钟前
Spring框架的事务管理
java·后端·spring
Huangjin007_14 分钟前
【Linux 系统篇(二十八)】文件(五):Ext 系列文件系统(下):Ext2块组结构,inode与文件寻址原理
linux·运维·服务器
data analyse 45622 分钟前
前端自建访问统计,访客标识怎么设计才稳?Cookie、本地存储与设备指纹的取舍
前端·数据分析
2501_9197490322 分钟前
华为鸿蒙免费日记本—小羊日记
华为·harmonyos·鸿蒙
终端安全笔记27 分钟前
配置锁状态那一栏查的是什么:报告里几项各自指向什么风险
android·前端·安全·ios
javachen__27 分钟前
JsonView:一套VO实现多角色字段返回
java·linux·服务器
恋猫de小郭36 分钟前
Kotlin Toolchain 0.13,JetBrains 推荐 KMP 都切换到到全新工具链
android·前端·flutter
m0_7381858242 分钟前
Flutter 鸿蒙化实战:rive 适配 OpenHarmony,Rive 动画
flutter·华为·harmonyos·鸿蒙