【发布时间】:2014-02-22 11:24:47
【问题描述】:
我目前正在使用Raspberry Pi 上的Node.js,并通过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 模块似乎没有其他人有这个问题。
【问题讨论】:
-
虽然这是一个编程问题,但如果您在机器人堆栈交换中提出这个问题,您会发现更多帮助:robotics.stackexchange.com
-
在机器人技术堆栈交换方面没有得到很多意见
-
我注意到您使用了 XBee 的单数形式 2 次。你有 2 个 XBee 收音机对吗?您需要一个发送,另一个接收。
-
@krowe 最终是的,但目前我只是试图向连接的 xBee 发送本地 AT 命令,甚至没有成功。
-
您使用的是 X-CTU 吗?如果不是,我强烈建议您抓住它以进行设置。我按照本教程弄清楚了:ladyada.net/make/xbee/configure.html
标签: javascript node.js raspberry-pi xbee