当前版本支持打开串口、读取、写入、刷新和关闭。
serial = device.open({ type:'serial', port:'COM3', baudRate:9600, dataBits:8, stopBits:1, parity:'none', timeout:1000 })
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| type | string | 否 | serial | 设备类型,当前只支持 serial |
| port | string | 是 | 无 | 串口名称,例如 COM3 或 /dev/ttyUSB0 |
| baudRate | int | 否 | 9600 | 波特率 |
| baud_rate | int | 否 | 9600 | baudRate 的别名 |
| dataBits | int | 否 | 8 | 数据位,支持 5、6、7、8 |
| data_bits | int | 否 | 8 | dataBits 的别名 |
| stopBits | int | 否 | 1 | 停止位,支持 1、2 |
| stop_bits | int | 否 | 1 | stopBits 的别名 |
| parity | string | 否 | none | 校验位,支持 none、odd、even |
| timeout | int | 否 | 1000 | 读取超时时间,单位毫秒 |
device.open() 返回串口设备对象。
| 方法 | 返回值 | 说明 |
|---|---|---|
| read() | string 或 Array | 读取一段数据;UTF-8 文本返回字符串,非 UTF-8 字节返回整数数组 |
| write(data) | int | 写入字符串或字节数组,返回写入字节数 |
| flush() | bool | 刷新输出缓冲,成功返回 true |
| close() | bool | 关闭串口,成功返回 true |
data = serial.read() if data { println(data) }
如果读取超时且没有数据,当前实现返回空字符串。
count = serial.write('hello') println(count)
// 写入 0x01 0x03 0x00 0x00 serial.write([1, 3, 0, 0]) serial.flush()
字节数组中的每个值必须在 0..255 范围内。
serial.close()
read() 会等待到数据到达或超时。
read() 读取到非 UTF-8 数据时返回字节数组,适合二进制协议处理。
close() 后继续 read()、write() 或 flush() 会返回已关闭错误。