0

我正在尝试让 python 脚本使用 pyserial 写入串行端口,使用 serialport2 写入 node.js。

我对bytes()python很困惑,不知道有人能帮帮我吗?

Python:

ser.write(bytes(chr(160))
ser.write(bytes(chr(157))

那么如何在 node.js 中执行此操作?

node.js 中使用的 serialport2 位于此处

4

2 回答 2

0

可能您String.fromCharCode(code)在 JS 中搜索将字符代码转换为字符串。

用 serialport2 试试这个:

port.write(String.fromCharCode(160, 157));
于 2013-01-15T17:48:50.140 回答
0

node-serialport2 自述文件

写(缓冲区,[回调])

将数据写入串行端口。

论据

  • buffer- 这可以是节点缓冲区对象或字符串。
  • callback(err, byteWritten)- 写入字节后调用的回调。

因此,您可以提供一个字符串对象或 Buffer 对象作为参数。一个Buffer 对象可能会做你想做的事(发送整数值):

var buffer = new Buffer([ 8, 6, 7, 5, 3, 0, 9]);

这会将缓冲区初始化为此数组的内容。请记住,数组的内容是表示字节的整数。

对于您的数据,它将是:

var buffer = new Buffer([160, 157]);

顺便说一句,您不需要在 Python 中使用 PySerial 进行任何特殊的转换。从PySerial API 文档

写(数据)

  • 参数:data– 要发送的数据。
  • 返回: 写入的字节数。
  • 引发 SerialTimeoutException:如果为端口配置了写入超时并且超过了时间。

将字符串数据写入端口。

在 2.5 版更改:在可用时接受 bytes 和 bytearray 实例(Python 2.6 和更新版本),否则接受 str 实例。

请注意“2.5 版中的更改”说明。

于 2013-01-15T17:49:08.903 回答