【问题标题】:RS-232c Digi scale is not sending any dataRS-232c Digi 秤没有发送任何数据
【发布时间】:2019-08-01 13:17:09
【问题描述】:

我通过 Trendnet TU-S9 串行转 USB 转换器电缆将 Digi DS-781 数字秤连接到 PC。

设备管理器发现 COM 端口很好。接下来我尝试使用 node-serialport 与之通信(主要目标是获取显示在刻度屏幕上的值)。

const port = new serialport('COM3', {
  baudRate: 9600,
  parity: 'even',
  stopBits: 1,
  dataBits: 8
});

port.on('open', () => {
  console.log('Port opened');
});

port.on('data', (data) => {
  console.log(`Got data: ${data.toString()}`);
});

port.on('error', (err) => {
  console.log(`Port error: ${err.message}`);
});

port.on('close', () => {
  console.log('Port closed');
});

相应地设置了秤,因此上面显示的串行端口设置与秤匹配。

然后我运行我的节点应用程序。连接成功建立,一切似乎都正常,但是当我把东西放在秤上时,“数据”回调没有输出。秤似乎没有发送任何内容。我的期望是,只要我把东西放在秤上,它就应该将数据传输到我的节点应用程序(秤处于“标准流”模式)。

我开始怀疑在秤向我发送任何东西之前我还需要做另一个步骤(尽管秤的文档显示其他内容,可以在此处找到 https://www.marsden-weighing.co.uk/index.php/digi-ds-781-user-manual.html

【问题讨论】:

  • 尝试使用终端应用程序(例如 putty)连接到秤,看看它是否在发送任何内容。
  • 您需要按照您介绍的手册第 16 至 33 页中的说明配置设备。特别是第 20 页和第 21 页将是 RS232C 相关设置。
  • 还要考虑(手册第 20.3 段。控制代码和字符)数据由 CR 终止,文本由 LF。您可能需要一个解析器,例如 parser: serialport.parsers.readline('\n')
  • @luigif 我试过解析器。但是 .on('data') 回调不应该在有任何数据时立即亮起吗?我会试试你的腻子建议。
  • 当解析器认为接收到完整的数据块时,会触发 .on('data') 事件。不同的解析器行为不同。在您的情况下,readline 解析器应该就足够了,也许它是默认解析器,不确定。您将在文档中找到更多信息 github.com/serialport/node-serialport#parsers github.com/serialport/node-serialport/blob/master/packages/…

标签: node.js serial-port node-serialport


【解决方案1】:

我的体重秤上的设置已关闭。秤不是处于“连续流”模式,而是处于某种无效模式。

在这个特定的规模上,SPEC 10 必须是“0001”,而 SPEC 11(SPEC 10 的第 4 位,这就是规范中让我感到困惑的地方)“0000”。这使秤进入流式传输模式,现在它正在连续发送数据。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-09-24
  • 2021-10-03
  • 2021-11-24
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
相关资源
最近更新 更多