句柄
方法
方法参考
enable() -> Result<()> 和 disable() -> Result<()>
给该端口上电或断电。
toggle() -> Result<bool>
翻转该端口的供电状态。
返回: 端口现在已启用时为 true,现在已禁用时为 false —— 是翻转之后的状态,而不是之前的。
state() -> Result<bool>
读取该端口是否已通电。
true。
state() 需要 Box 软件 0.29.0 或更高版本。更旧的 Box 会拒绝这个动作,而该 crate 会把这个特定的拒绝转换成 Error::UnsupportedByBox,信息是 the 'state' action on /usb/command requires box software >= 0.29.0; update the box or use toggle/enable/disable。cycle() -> Result<Option<bool>>
给端口断电,等待,然后重新上电。Box 会观察设备是否重新枚举。需要 Box 软件 0.39.0 或更高版本。
cycle_with_off_time(secs) 接受 0.5 到 10 秒之间的其他数值。拿不准时,请选择更长的时间:太短的时间会让被测设备热启动,而没有真正复位。
cycle_report(off_time_secs: Option<f64>) -> Result<UsbCycleReport>
与 cycle() 相同,并且报告还会带上 Box 给出的 outcome(Box 0.49.0 或更高版本)。UsbCycleReport 有三个字段:reconnected,与 cycle() 的返回值相同;outcome;以及 Box 的 message。这个结果能把空端口和 Box 没有观察的端口区分开:
recover() -> Result<()>
在一条命令中途停止之后,给端口重新上电。在 Plugable 扩展坞上,这会给该扩展坞的每一个端口上电。
recover_report() -> Result<UsbRecoverReport>
执行与 recover() 相同的操作,并返回 Box 的报告。
只有当驱动上电的端口不止该 Net 自己的端口时(例如 Plugable 扩展坞),才会设置
ports。它需要Box 软件 0.62.0 或更高版本。较旧的 Box 不发送该列表,所以 ports 为 None。
示例
迫使被测设备重新枚举,并等它回来
受支持的硬件
说明
- 一个 Net 对应一个端口。对
usb1做断电重启不会影响该集线器的其他端口。 - 端口上的设备在总线上的
devnum会随重新枚举而改变。检查设备是否回来时,请按序列号或 vid/pid 匹配,绝不要按devnum。 - 给某个端口断电,可能会移除 Box 用于另一个 Net 的设备。挂在那个端口后面的调试探针或串口适配器会在测试中途消失。

