语法
全局选项
参数
命令
cycle 选项
用法
列出 USB Net
不带 Net 名称调用时,列出 Box 上的全部 USB Net:控制 USB 端口的供电
对设备断电再上电
cycle 切断电源、等待,然后恢复供电。之后它最多等待 5 秒,等设备重新出现:
cycle 如何判断设备已经回来,取决于集线器:
- Acroname 和 YKUSH 集线器: Box 在切断电源之前读取一次内核 USB 拓扑,在端口断电期间再读一次。离开总线的设备必须重新回到总线上。
- Plugable 扩展坞: Box 监视集线器为该端口报告的连接状态。
在 Plugable 扩展坞上,只要集线器报告设备重新连接,
cycle 就会返回,这只需要几百毫秒。Linux 在那一刻并没有完成重新枚举:设备节点或
/dev/ttyUSB* 可能仍然不存在,立即读取 /sys 也仍会得到断电前的值。在 Acroname 和 YKUSH 集线器上,cycle 在设备重新回到内核 USB 拓扑时才返回。在任何集线器上,请在下一步打开设备之前先等待设备节点出现。
cycle 返回并不表示设备已经就绪。disable/sleep/enable,原因如下:
- 它在每条失败路径上都会恢复供电,因此中途失败的命令不会把端口留在断电状态。
- 它会报告设备是否真的回来了,您不必猜测。
- 在 Plugable 扩展坞上,它在整个过程中持有该集线器,因此在端口断电期间没有别的东西能切换它。在 Acroname 和 YKUSH 集线器上,它会打开集线器两次,断电期间其他进程仍可能切换该端口。
--off-time 默认为 1 秒,明显高于在真实硬件上测到的最慢冷启动时间。
断电时间过短才是真正要紧的失败方式:设备的电源轨没有完全放电,于是设备是热启动的,但看起来却像是被复位过。对于体电容较大的设备,请调高断电时间。低于 0.5 秒或高于 10 秒的值会被拒绝。
恢复被留在断电状态的端口
如果某条命令在把端口断电之后、恢复供电之前被中断,recover 可以恢复供电:
recover 会重新为它的每个端口供电。您通常在”有东西没电了但不清楚是哪个”时用到 recover。
读取端口状态(只读)
state 报告某个端口当前是打开还是关闭,并不改变它。该值是从集线器硬件实时读取的,因此它总是反映真实的端口状态 —— 不做任何缓存或存储:
toggle 的只读对应命令:用 state 查看端口,用 toggle 翻转它(toggle 也会报告翻转后的状态)。
toggle 会报告翻转后的状态,这样您就能知道它翻到了哪一边:enable 和 disable 则明确确认所做的操作(USB port 'USB1' enabled)。示例
受支持的硬件
Plugable 扩展坞上哪些端口可以切换供电、哪些不可以,请参阅
受支持的仪器。
说明
- Net 名称(例如
USB1、CAM_USB)指的是您实验台上配置的 USB 端口 - 命令区分大小写,请用小写输入(
enable,不是ENABLE) - 适合在测试过程中对 USB 设备断电再上电
- USB 集线器必须连接到 Box 并配置为仪器
- 默认 Net 可以用
lager defaults add --usb-net设置 - 用
lager nets add <name> usb <channel> <address>创建 USB Net

