fuchsia.usb.policy 介面提供機制,讓用戶端查詢及監控 USB 裝置和 USB 子系統的整體狀態,不受基礎硬體驅動程式庫程式實作影響。
通訊協定
設定
定義於 fuchsia.usb.policy/policy.fidl
用於查詢及動態重新設定 USB 週邊裝置功能的通訊協定。
可讓政策管理工具和系統指令列工具檢查使用中的 USB 週邊裝置設定,並在執行階段重新設定週邊裝置函式堆疊。
ConnectCable
在先前的 DisconnectCable 呼叫後,透過 USB 電源偵錯服務重新連接 Type-C 連接埠 CC 線路,並取消任何待處理的自動重新連線警報。
要求
<EMPTY>
回應
| 名稱 | 類型 |
|---|---|
payload |
Configuration_ConnectCable_Result
|
DisconnectCable
透過 USB 電源偵錯服務中斷 Type-C 連接埠 CC 線路,模擬拔除實體傳輸線。如果 duration 為正值,系統會使用永久 USB 政策服務中的硬體喚醒鬧鐘,在 duration 後安排自動重新連接 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
透過掛起 GET 要求,通知用戶端裝置狀態值已更新。第一次呼叫時,系統會立即傳回目前狀態。後續呼叫會暫停,直到有變更需要回報為止。傳回含有更新後裝置狀態的表格。
要求
<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 彈性
類型:uint32
定義於 fuchsia.usb.policy/policy.fidl
USB 函式驅動程式庫或連線的健康狀態。
| 名稱 | 值 | 說明 |
|---|---|---|
已停用 |
0 |
|
連線中斷 |
1 |
|
已連線 |
2 |
|
錯誤 |
3 |
TABLES
AdbHealth
定義於 fuchsia.usb.policy/policy.fidl
USB ADB 函式子系統的健康狀態資訊。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
status |
FunctionStatus
|
說明 ADB 功能的高階政策和設定狀態。 |
2 |
details |
string:128
|
提供其他診斷詳細資料或狀態說明。 |
3 |
online |
bool
|
指出基礎 ADB Daemon 連線和傳輸是否處於線上狀態,並與主機通訊。與 |
4 |
driver_state |
string:32
|
說明 ADB 函式驅動程式庫回報的執行階段執行狀態 (例如「kAwaitingUsbConnection」、「kOnline」、「kStoppingForReconnect」、「kStoppingForUnbind」)。 |
CdcEthernetHealth
定義於 fuchsia.usb.policy/policy.fidl
USB CDC 乙太網路功能子系統的健康狀態資訊。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
status |
FunctionStatus
|
說明 CDC 乙太網路功能的高階政策和設定狀態。 |
2 |
details |
string:128
|
提供其他診斷詳細資料或狀態說明。 |
3 |
online |
bool
|
指出基礎乙太網路介面和連結是否處於線上狀態,並準備好處理網路流量。與 |
HealthReport
定義於 fuchsia.usb.policy/policy.fidl
USB 控制器目前狀態和健康情況的快照。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
state |
fuchsia.hardware.usb.policy/DeviceState
|
說明裝置目前的狀態,如 USB 2.0 規格所定義。 |
2 |
address |
uint8
|
指派給 USB 裝置的位址。 |
3 |
cable_status |
CableStatus
|
指出是否已連接 USB 實體傳輸線 / |
4 |
adb |
AdbHealth
|
說明 ADB 函式子系統 ([AdbHealth]) 的健康狀態。 |
5 |
cdc_ethernet |
CdcEthernetHealth
|
說明 CDC 乙太網路功能子系統 ([CdcEthernetHealth]) 的健康狀態。 |
6 |
vsock |
VsockHealth
|
說明 VSOCK 函式子系統 ([VsockHealth]) 的健康狀態。 |
VsockHealth
定義於 fuchsia.usb.policy/policy.fidl
USB VSOCK 函式子系統的健康狀態資訊。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
status |
FunctionStatus
|
說明 VSOCK 函式的高階政策和設定狀態。 |
2 |
active_channels |
uint32
|
目前有效或開啟的多工 VSOCK 通訊端管道數量。如果函式驅動程式庫不支援或無法辨識,這個欄位就不會顯示 (None)。 |
3 |
details |
string:128
|
提供其他診斷詳細資料或狀態說明。 |
4 |
online |
bool
|
指出基礎 VSOCK 傳輸驅動程式庫是否已上線,並準備好處理流量。與 |
5 |
driver_state |
string:32
|
說明 VSOCK 函式驅動程式回報的執行階段執行狀態 (例如「未設定」、「執行中」)。 |
UNIONS
Configuration_ConnectCable_Result strict
定義於 fuchsia.usb.policy/policy.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Configuration_ConnectCable_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Configuration_DisconnectCable_Result strict
定義於 fuchsia.usb.policy/policy.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Configuration_DisconnectCable_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Configuration_GetConfiguration_Result strict
定義於 fuchsia.usb.policy/policy.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Configuration_GetConfiguration_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Configuration_SetConfiguration_Result strict
定義於 fuchsia.usb.policy/policy.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Configuration_SetConfiguration_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Health_GetReport_Result strict
定義於 fuchsia.usb.policy/policy.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
HealthReport
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
常數
| 名稱 | 值 | 類型 | 說明 |
|---|---|---|---|
| MAX_DETAILS_LENGTH |
128
|
uint32 |