intel/intel-iot-services-orchestration-layer

nodered里面的service返回值有误

Closed this issue · 10 comments

测试了nodered里面的tcp in和serial in,发现这两个service的输出和ui界面的text相连后,接收到的消息在ui里总是显示[object Object], 而在debug里能给出正确的接收到的结果:
debug内tcp in给出的是:
{
out1: {
"payload": "hhh\rijige\r\n",
"_msgid": "__NODERED_MSG__71ad8200_78bc_11e6_b58c_73157ad6c26f"
}
}
而debug中用户ui里的text的是:
{
text: {
"payload": "hhh\rijige\r\n",
"_msgid": "__NODERED_MSG__71ad8200_78bc_11e6_b58c_73157ad6c26f"
}
}
是不是多了个大括号?还是tcp in输出需要加另外的service把消息提取后才能传给text?

nodered的相关servcie输出的是object,
而ui text控件的输入数据应该为string.
对我们text的ui来说, 输入object, 结果就是[object Object].
你需要手动提取相关字段/或者转换为string 后再传给text

@jiangzidong 有已经给出的service做这个事情吗?

@jiangzidong 还有,用tcp out什么也发不出去是什么情况

试试nodered->template

@imcort 关于tcpout, 请描述一下你的工作流是怎么样的, 具体现象是什么

tcp out是不是也需要发送一个object而不能发string? @jiangzidong

谢谢您的答复,我不太会用template,能说一下怎样用吗? @jiangzidong

jjykh commented

image

IoT SOL提供了原生的消息提取器,具体方法是点击Edge,在属性配置面板中填写消息中的属性名称。

@jjykh 谢谢您的答复,另外请问下您的serial in和serial out能正常工作吗?用的是什么芯片?谢谢

串口的问题请见 #25
这个issue我先关了
谢谢!