Skip to main content
连接 Lager Box 上的 UART 串口,与设备进行串行通信。

语法

参数

选项


用法

只读模式(默认)

交互模式

获取串口信息

Net 已被另一个会话持有

一个 UART 设备同一时刻只接受一个读取方,因此对同一个 Net 的第二个会话会被拒绝:
两个 Net 可能指向同一台设备。这种情况下,错误信息会改为指出设备路径: UART device /dev/ttyUSB0 is already in use by another session 向 Box 查询谁持有什么:
持有者会占用该 Net 多久:
  • 客户端显示为 gone 的持有者,会在大约 0.1 秒内释放该 Net。如果适配器此时正在重新枚举,释放最长可能需要 60 秒。
  • 计算机进入休眠或失去网络的持有者,在大约 85 秒内仍然显示为 connected
  • reader 显示为 stopped 的持有者不会阻塞您。对该 Net 的下一条 lager uart 会重新取得它。
显示为 connected 的持有者可能属于某个人,因此在接管之前请先确认:
--force 会释放持有该 Net 的每一个会话,然后再连接。如果它确实释放了某个会话,会打印 Released the session that held 'SERIAL1';如果没有任何会话持有该 Net,则什么也不打印。被您顶替的那个会话会停止接收数据,并可能显示 Error: Read error: ... --force 只作用于您指名的那个 Net。如果错误信息指出的是设备路径,说明同一设备上的另一个 Net 持有它。请用 --sessions 找到那个 Net,然后按名称接管那个 Net。 --sessions 在以下情况会打印一条消息而不是表格:
  • No UART sessions are active on this box. 没有会话持有任何 Net。
  • This box does not report UART sessions; update it with lager update. 该 Box 版本低于 0.46.0,请运行 lager update。在这样的 Box 上, --force 不起作用,并且不会给出警告。
--force 无法清除这个错误: UART device /dev/ttyUSB0 is already in use (locked by another session or the lager uart CLI)。此时是另一个进程持有该端口,例如一个打开了 UART Net 的 lager python 脚本。请先停止那个进程。
与每一条 lager uart 命令一样,--sessions--force 都会获取 Box 锁。如果另一位用户持有 Box 锁,它们会失败并报出 Error: Box 'my-lager-box' is locked by <holder>
如果 Box 没有在 15 秒内启动该会话,命令会打印 Error: the box did not start the UART session within 15s 并以 1 退出。

串口配置

波特率

常见波特率:
  • 9600(许多设备的默认值)
  • 19200
  • 38400
  • 57600
  • 115200(嵌入式开发中常用)
  • 230400
  • 460800
  • 921600

数据格式

流控

各种流控类型不能组合使用。

行结束符

--opost 在输出时自动转换行结束符。

受支持的 USB 串口适配器

以下 USB 转串口适配器会被自动检测并支持: 这些适配器会被 lager instruments 自动识别,并可以配置为 UART Net。

设备路径支持

UART Net 可以用两种方式指向设备: USB 序列号(推荐):
直接设备路径(备选):如果适配器没有序列号,请按它的设备路径保存一个 Net。最后一个参数是您自选的标签。之后按名称连接该 Net。 lager uart 不接受用设备路径代替 Net 名称。

示例


WebSocket 连接

uart 命令使用 WebSocket 进行通信:
  • 提供实时的双向数据
  • 同时支持只读模式和交互模式
  • 如果 USB 适配器重新枚举,Box 会在最长 60 秒内重新打开它,会话继续保持。等待期间 CLI 会打印 [UART device disconnected - reconnecting...]
  • CLI 不会重新连接到 Box。如果与 Box 的连接断开,会话就结束了,请重新运行该命令。

故障排除

找不到设备

权限被拒绝

没有输出

  • 检查波特率是否与设备一致
  • 确认 TX/RX 接线
  • 尝试用交互模式测试输入
  • 检查流控设置

说明

  • 交互模式需要 TTY 终端
  • USB 序列号在显示时会被截断
  • 默认 Net 可以用 lager defaults add --uart-net 设置
  • 适配器重新枚举时,Box 会在最长 60 秒内重新打开它

参见