fuchsia.usb.policy

fuchsia.usb.policy 接口为客户端提供了查询和监控 USB 设备和 USB 子系统整体状态的机制,而无需依赖底层硬件驱动程序实现。

Added: HEAD

协议

配置

在 fuchsia.usb.policy/policy.fidl 中定义

用于查询和动态重新配置 USB 外围设备功能的协议。

使政策管理中心和系统命令行工具能够在运行时检查活跃的 USB 外围设备配置并重新配置外围设备功能堆栈。

ConnectCable

在之前调用 DisconnectCable 后,通过 USB 电源调试服务重新连接 Type-C 端口 CC 线,并取消所有待处理的自动重新连接警报。

请求

<EMPTY>

响应

名称类型
payload Configuration_ConnectCable_Result

DisconnectCable

通过 USB 电源调试服务断开 C 型端口 CC 线路,以模拟物理线缆拔出。如果 duration 为正数,则在 duration 后使用永久性 usb-policy 服务中的硬件唤醒闹钟安排自动 Type-C 线缆重新连接,这样即使在 USB 链路断开时调用的 CLI 会话终止,重新连接仍会完成。

请求

名称类型
duration zx/Duration

响应

名称类型
payload Configuration_DisconnectCable_Result

GetConfiguration

检索当前 USB 设备描述符和活跃配置描述符。

错误

  • ZX_ERR_NOT_SUPPORTED:目标硬件不支持外围设备功能查询。

请求

<EMPTY>

响应

名称类型
payload Configuration_GetConfiguration_Result

SetConfiguration

设置并激活新的 USB 外围设备功能配置。

在初始化和绑定新指定的功能之前,系统会先拆解之前的外围设备功能堆栈。外围控制器和底层函数驱动程序注册完毕并准备就绪后,调用即完成。

错误

  • ZX_ERR_INVALID_ARGS:配置参数无效。
  • ZX_ERR_ALREADY_BOUND:现有外围设备配置已锁定或正在进行转换。
  • ZX_ERR_NOT_SUPPORTED:无法同时支持所请求的功能组合。

请求

名称类型
device_desc fuchsia.hardware.usb.peripheral/DeviceDescriptor
config_descriptors vector<fuchsia.hardware.usb.peripheral/ConfigurationDescriptor>:5

响应

名称类型
payload Configuration_SetConfiguration_Result

健康

在 fuchsia.usb.policy/policy.fidl 中定义

用于从 USB 系统检索诊断和健康信息的协议。

GetReport

返回当前 USB 运行状况和设备状态的快照。

请求

<EMPTY>

响应

名称类型
payload Health_GetReport_Result

PolicyProvider

在 fuchsia.usb.policy/policy.fidl 中定义

用于监控 USB 设备状态动态变化的接口。

WatchDeviceState

通过挂起获取操作,将更新后的设备状态值通知客户端。 首次调用此方法时,它会立即返回当前状态。后续调用将挂起,直到有更改要报告。返回一个包含更新后的设备状态的表。

请求

<EMPTY>

响应

名称类型
payload fuchsia.hardware.usb.policy/DeviceStateWatcher_WatchDeviceState_Result

STRUCTS

Configuration_ConnectCable_Response

在 fuchsia.usb.policy/policy.fidl 中定义

<EMPTY>

Configuration_DisconnectCable_Response

在 fuchsia.usb.policy/policy.fidl 中定义

<EMPTY>

Configuration_GetConfiguration_Response

在 fuchsia.usb.policy/policy.fidl 中定义

字段类型说明默认
device_desc fuchsia.hardware.usb.peripheral/DeviceDescriptor 无默认应用
config_descriptors vector<fuchsia.hardware.usb.peripheral/ConfigurationDescriptor>:5 无默认应用

Configuration_SetConfiguration_Response

在 fuchsia.usb.policy/policy.fidl 中定义

<EMPTY>

枚举

CableStatus flexible

类型:uint32

在 fuchsia.usb.policy/policy.fidl 中定义

USB 线物理连接的状态。

名称值说明
0
1

FunctionStatus flexible

类型:uint32

在 fuchsia.usb.policy/policy.fidl 中定义

USB 功能驱动程序或连接的健康状态。

名称值说明
0
1
2
3

TABLES

AdbHealth

在 fuchsia.usb.policy/policy.fidl 中定义

USB ADB 功能子系统的健康信息。

序数字段类型说明
status FunctionStatus

描述 ADB 功能的高级政策和配置状态。

details string:128

提供额外的诊断详细信息或状态说明。

online bool

指示底层 ADB 守护程序连接和传输是否处于活跃在线状态并与主机通信。与 status == CONNECTED(表示 USB 外围设备功能描述符已配置并绑定)不同,online 表示端到端 ADB 传输处于活跃状态。

driver_state string:32

描述 ADB 函数驱动程序报告的运行时执行状态(例如“kAwaitingUsbConnection”“kOnline”“kStoppingForReconnect”“kStoppingForUnbind”)。

CdcEthernetHealth

在 fuchsia.usb.policy/policy.fidl 中定义

USB CDC 以太网功能子系统的健康信息。

序数字段类型说明
status FunctionStatus

描述 CDC 以太网功能的高级政策和配置状态。

details string:128

提供额外的诊断详细信息或状态说明。

online bool

指示底层以太网网络接口和链路是否处于活跃在线状态,并已准备好处理网络流量。与 status == CONNECTED(表示 USB CDC 接口已在总线上配置)不同,online 表示链路状态为“已启动”。

HealthReport

在 fuchsia.usb.policy/policy.fidl 中定义

USB 控制器当前状态和运行状况的快照。

序数字段类型说明
state fuchsia.hardware.usb.policy/DeviceState

描述 USB 2.0 规范定义的设备当前状态。

address uint8

分配给 USB 设备的地址。

cable_status CableStatus

指明是否连接了 USB 物理线缆 / VBUS ([CableStatus])。

adb AdbHealth

描述 ADB 功能子系统 ([AdbHealth]) 的健康状态。

cdc_ethernet CdcEthernetHealth

描述 CDC 以太网功能子系统的健康状态 ([CdcEthernetHealth])。

vsock VsockHealth

描述 VSOCK 功能子系统的健康状态 ([VsockHealth])。

VsockHealth

在 fuchsia.usb.policy/policy.fidl 中定义

USB VSOCK 功能子系统的健康信息。

序数字段类型说明
status FunctionStatus

描述 VSOCK 功能的高级政策和配置状态。

active_channels uint32

当前活跃或打开的多路复用 VSOCK 套接字通道的数量。如果未知或函数驱动程序不支持,则此字段不存在(无)。

details string:128

提供额外的诊断详细信息或状态说明。

online bool

指示底层 VSOCK 传输驱动程序是否处于活跃在线状态并准备好接收流量。 与 status == CONNECTED(表示 USB 功能已在总线上配置)相反,online 表示 VSOCK 服务已绑定并准备好接受连接。

driver_state string:32

描述 VSOCK 函数驱动程序报告的运行时执行状态(例如“未配置”“正在运行”)。

UNIONS

Configuration_ConnectCable_Result strict

在 fuchsia.usb.policy/policy.fidl 中定义

序数变体类型说明
response Configuration_ConnectCable_Response
err zx/Status
framework_err internal

Configuration_DisconnectCable_Result strict

在 fuchsia.usb.policy/policy.fidl 中定义

序数变体类型说明
response Configuration_DisconnectCable_Response
err zx/Status
framework_err internal

Configuration_GetConfiguration_Result strict

在 fuchsia.usb.policy/policy.fidl 中定义

序数变体类型说明
response Configuration_GetConfiguration_Response
err zx/Status
framework_err internal

Configuration_SetConfiguration_Result strict

在 fuchsia.usb.policy/policy.fidl 中定义

序数变体类型说明
response Configuration_SetConfiguration_Response
err zx/Status
framework_err internal

Health_GetReport_Result strict

在 fuchsia.usb.policy/policy.fidl 中定义

序数变体类型说明
response HealthReport
err zx/Status
framework_err internal

常量

名称值类型说明
MAX_DETAILS_LENGTH 128 uint32