我想發送多個傳感器數據來使用node.js.我有一些發送多個流的代碼,但在命令提示符顯示消息時,所有的流都準備好了。它將發送第一個傳感器數據,其中x軸的時間戳和y軸的值,但是第二個傳感器只發送時間戳(x軸值),而不是傳感器的值。那麼誰能告訴我我犯了什麼錯誤?附上了arduino屏幕截圖的代碼。 arduino code part1 commandprompt outputArduino和Plotly
[Arduino的代碼第2部分] [3]
var serialport = require('serialport'),
plotly = require('plotly')('Maryam_19','vvvvvvvvv');
tokens = ['kfkdfkgrg', 'ggggggg'];
var portName = 'COM3';
var sp = new serialport.SerialPort(portName,{
baudRate: 9600,
dataBits: 8,
parity: 'none',
stopBits: 1,
flowControl: false,
parser: serialport.parsers.readline("\r\n")
});
// helper function to get a nicely formatted date string
function getDateString() {
var time = new Date().getTime();
// 32400000 is (GMT+9 Japan)
// for your timezone just multiply +/-GMT by 3600000
var datestr = new Date(time + 18000000).toISOString().replace(/T/, ' ').replace(/Z/, '');
return datestr;
}
// wanting to create sub-plots with two data-streams
var initdata = [
{name: 'LeftSensor', x:[], y:[], stream:{token:tokens[0], maxpoints: 1500}},
{name: 'RightSensor', x:[], y:[], stream:{token:tokens[1], maxpoints: 1500}}
];
var initlayout = {fileopt : 'new', filename : 'Connected Car 1'};
plotly.plot(initdata, initlayout, function (err, msg) {
if (err) return console.log(err)
console.log(msg);
// creating two streams
var streams = {
'LeftSensor' : plotly.stream(tokens[0], function (err, res) {
if (err) console.log(err);
console.log(err, res);
}),
'RightSensor' : plotly.stream(tokens[1], function (err, res) {
if (err) console.log(err);
console.log(err, res);
})
};
sp.on('data', function(input) {
if(isNaN(input) || input > 1023) return;
var values = input.split('\t');
// writing the leftSensor stream
var leftStreamObject = JSON.stringify({ x : getDateString(), y : values[0] });
console.log('LeftSensorObject: ' + leftStreamObject);
streams['LeftSensor'].write(leftStreamObject + '\n');
// writing the rightsensor stream
var RightStreamObject = JSON.stringify({ x : getDateString(), y : values[1] });
console.log('RightSensorObject: ' + RightStreamObject);
streams['RightSensor'].write(RightSensorObject + '\n');
});
});
第二個傳感器讀數也被實際發送,但與第一sensor..like首先它發送左邊的傳感器讀數,然後右邊傳感器的讀數,但在左傳感器標籤 – Maryam
大家好,歡迎StackOverflow上。你可以**編輯**你的文章並在串口監視器中添加一個跟蹤示例?此外,很難理解此問題中的含義:草圖中的變量未命名爲* first sensor *或* second sensor *,您是否可以編輯您的問題描述以解決此問題?最後:你能指出哪一行代碼不能產生所需的輸出嗎? –
變量'距離'顯示左側傳感器的距離,變量'距離1'顯示右側傳感器的距離。並且代碼在串行監視器上正常工作。但是當我打開命令提示符並運行我的劇情代碼發送它時,它將發送兩個傳感器的數據但不diffrentiating ..我的意思是說,它正在發送正確的傳感器的值也作爲左傳感器值。因爲我可以在圖表中看到只有一行告訴閱讀。而我應該有兩個單獨的行顯示單獨的讀數。 – Maryam