我正在尝试让 python 脚本使用 pyserial 写入串行端口,使用 serialport2 写入 node.js。
我对bytes()
python很困惑,不知道有人能帮帮我吗?
Python:
ser.write(bytes(chr(160))
ser.write(bytes(chr(157))
那么如何在 node.js 中执行此操作?
node.js 中使用的 serialport2 位于此处。
我正在尝试让 python 脚本使用 pyserial 写入串行端口,使用 serialport2 写入 node.js。
我对bytes()
python很困惑,不知道有人能帮帮我吗?
Python:
ser.write(bytes(chr(160))
ser.write(bytes(chr(157))
那么如何在 node.js 中执行此操作?
node.js 中使用的 serialport2 位于此处。
可能您String.fromCharCode(code)
在 JS 中搜索将字符代码转换为字符串。
用 serialport2 试试这个:
port.write(String.fromCharCode(160, 157));
写(缓冲区,[回调])
将数据写入串行端口。
论据
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 版中的更改”说明。