节点模块XBee API无法正常工作

时间:2014-01-30 08:57:23

标签: javascript node.js raspberry-pi xbee

我目前正在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模块似乎没有其他人遇到这个问题。

1 个答案:

答案 0 :(得分:1)

事实证明这是波特率!它需要是9600(除非我改变XBee的波特率)。