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

相关推荐
南境十里·墨染春水几秒前
C++ 笔记:std::bind 函数模板详解
前端·c++·笔记
l1t1 分钟前
DeepSeek 总结的pgEdge for Postgres 的 MCP 服务器
服务器·数据库·postgresql·mcp
happymaker06262 分钟前
请求头 & 文件下载 & JSP 内置对象实战
java·前端·servlet
skywalk81632 分钟前
Kotti Next的tinyfrontend前端生成和测试(使用WorkBuddy)
前端
m0_647057962 分钟前
【无标题】
前端·人工智能
EmbeddedCore2 分钟前
从零设计一套轻量、安全、可商用的物联网设备自定义通信协议
物联网·安全
北城笑笑3 分钟前
Frontend 与 FPGA 深度融合实战解析:从技术协同到多场景落地( 前端和现场可编程门阵列 )
前端·websocket·3d·vue·fpga
文静小土豆5 分钟前
CPU 飙高 ≠ 服务器真的卡?
运维·服务器
gfdhy5 分钟前
【Linux服务器】基础服务实战部署|Nginx+MySQL+PHP+WordPress,让服务器真正可用
linux·服务器·mysql·nginx·php·毕设
Cosmoshhhyyy5 分钟前
《Effective Java》解读第46条:优先选择Stream中无副作用的函数
java·windows·python