Node-Red 多个输出到 CSV
Node-Red Multiple outputs into CSV
我尝试将多个 Modbus 变量存储在本地磁盘上。
我的函数脚本如下:
var msgPortBus,msgStbdBus;
if (msg.topic === 'BusVolts') {
msgPortBus = { payload: msg.payload.Port.Bus.Volts, };
msgStbdBus = { payload: msg.payload.STBD.Bus.Volts, };
}
msg.payload = [msgPortBus,msgStbdBus]
return msg;
我假设错误出在上面某处的代码中....两个 Modbus 节点的主题是 'BusVolts'。
我对一个输入使用了以下代码,它为我提供了我的时间戳,然后是我希望从一个输入获得的数据,但我不确定如何区分不同的有效负载。
msg.payload = new Date().toString() +
"," + msg.payload;
return msg;
提前致谢。
编辑:错误是 "Type Error: Cannot read property 'Bus' of undefined"
问题是您假设当函数节点 运行s 它将看到一个组合的 msg
对象,其中包含来自两个 modbus 节点的信息。事实并非如此。
功能节点将 运行 分别针对来自 modbus 节点的每个输出消息,因此一次只会填充 msg.payload.Port.Bus.Volts
或 msg.payload.STBD.Bus.Volts
之一。
如果你想在将多个节点的输出输入到函数节点之前组合它,你将需要查看将数据存储在上下文中或使用 Join 节点将输出一起批处理到一个数组中,然后再处理它.
我尝试将多个 Modbus 变量存储在本地磁盘上。
我的函数脚本如下:
var msgPortBus,msgStbdBus;
if (msg.topic === 'BusVolts') {
msgPortBus = { payload: msg.payload.Port.Bus.Volts, };
msgStbdBus = { payload: msg.payload.STBD.Bus.Volts, };
}
msg.payload = [msgPortBus,msgStbdBus]
return msg;
我假设错误出在上面某处的代码中....两个 Modbus 节点的主题是 'BusVolts'。
我对一个输入使用了以下代码,它为我提供了我的时间戳,然后是我希望从一个输入获得的数据,但我不确定如何区分不同的有效负载。
msg.payload = new Date().toString() +
"," + msg.payload;
return msg;
提前致谢。
编辑:错误是 "Type Error: Cannot read property 'Bus' of undefined"
问题是您假设当函数节点 运行s 它将看到一个组合的 msg
对象,其中包含来自两个 modbus 节点的信息。事实并非如此。
功能节点将 运行 分别针对来自 modbus 节点的每个输出消息,因此一次只会填充 msg.payload.Port.Bus.Volts
或 msg.payload.STBD.Bus.Volts
之一。
如果你想在将多个节点的输出输入到函数节点之前组合它,你将需要查看将数据存储在上下文中或使用 Join 节点将输出一起批处理到一个数组中,然后再处理它.