我目前正在Node.js上使用Raspberry Pi并通过USB端口连接了一系列1 XBee无线电。为了与Node.js集成,我使用的是xbee-api模块。
虽然从笔记本电脑向XBee发出命令(引脚更改等)没有任何问题,但我无法通过xbee-api中的API模式发出任何命令。
这是我的测试代码(大部分是从xbee-api主页复制的):
var util = require('util');
var SerialPort = require('serialport').SerialPort;
var xbee_api = require('xbee-api');
var C = xbee_api.constants;
var xbeeAPI = new xbee_api.XBeeAPI({
api_mode: 1
});
var serialport = new SerialPort("/dev/ttyUSB0", {
baudrate: 57600,
parser: xbeeAPI.rawParser()
});
serialport.on("open", function() {
console.log("open");
var frame_obj = { // AT Request to be sent to
type: C.FRAME_TYPE.AT_COMMAND,
command: "D0",
commandParameter: [0x05],
};
serialport.write(xbeeAPI.buildFrame(frame_obj));
});
// All frames parsed by the XBee will be emitted here
xbeeAPI.on("frame_object", function(frame) {
console.log(">>", frame);
});
我得到响应“打开”,但没有任何迹象表明该命令正在发送。上面的命令是一个本地命令,用于将引脚D0更改为高电平,但引脚值实际上没有改变。
我已将XBee收音机重置为默认值,然后将其从笔记本电脑(+++,ATAP 1,ATWR)置于API模式。
非常令人费解,因为xbee-api Node.js模块似乎没有其他人遇到这个问题。
答案 0 :(得分:1)
事实证明这是波特率!它需要是9600(除非我改变XBee的波特率)。