【问题标题】:Node module XBee API not working [closed]节点模块 XBee API 不工作 [关闭]
【发布时间】: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


【解决方案1】:

原来是波特率!它必须是 9600(除非我更改了 XBee 的波特率)。

【讨论】:

  • 不是真的,对你来说确实如此,因为你还没有使用 X-CTU 来配置你的 XBee。 9600 波特只是默认出厂波特率(也是支持的最慢的)。
猜你喜欢
  • 2020-01-21
  • 2020-04-18
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
相关资源
最近更新 更多