通訊協定
電池
定義於 fuchsia.hardware.power.battery/battery.fidl
電池硬體的診斷和遙測介面。
這項通訊協定僅供讀取,支援多個用戶端同時存取。
ConfigureWatch
設定這個用戶端連線的感興趣欄位和喚醒觸發條件。
驅動程式會根據硬體功能篩選要求的遮罩,並在 effective_options 中傳回有效設定。
- 部分支援的選項:如果部分要求的欄位受支援,其他欄位不受支援 (例如要求不支援主動中斷通知的被動欄位,例如
voltage_uv或current_ua),驅動程式庫會啟用支援的欄位,並在effective_options中傳回主動子集。呼叫成功 (Ok)。 - 完全不支援的選項:如果指定了非空白遮罩,但「不支援」任何要求的欄位,驅動程式庫會傳回
NOT_SUPPORTED。
如果從未呼叫 ConfigureWatch,Watch 預設會在任何支援的欄位變更時傳回。驅動程式會匯總所有用戶端的限制,決定硬體回報率。
ConfigureWatch 隨時可以呼叫,包括 Watch 待處理時。新遮罩會立即生效,並套用至該待處理呼叫。變更偵測功能會繼續與這個連線上一次傳送的狀態進行比較,因此在重新設定前變更的欄位仍可解決待處理的 Watch。
參數:
options:要求的觀看選項。interest和wake_on都是選用欄位。
傳回值:
effective_options:驅動程式庫支援並啟用的要求選項子集。
錯誤:
NOT_SUPPORTED:要求非空白選項,但驅動程式庫不支援任何要求的感興趣/喚醒欄位或定期取樣。
如果發生錯誤,連線設定會保持不變,失敗的呼叫不會部分套用。
要求
| 名稱 | 類型 |
|---|---|
options |
WatchOptions
|
回應
| 名稱 | 類型 |
|---|---|
payload |
Battery_ConfigureWatch_Result
|
GetSpec
擷取電池的靜態規格。
傳回值:
spec:電池的靜態硬體特性和驅動程式庫功能。
錯誤:
NOT_SUPPORTED:硬體不提供靜態規格。IO:與電量計硬體通訊失敗 (例如 I2C 傳輸失敗)。INTERNAL:內部驅動程式庫錯誤。
要求
<EMPTY>
回應
| 名稱 | 類型 |
|---|---|
payload |
Battery_GetSpec_Result
|
GetStatus
擷取電池狀態的即時快照。
傳回值:
status:電池指標的完整目前遙測快照。
錯誤:
IO:與電量計硬體通訊失敗 (例如 I2C 傳輸失敗)。INTERNAL:內部驅動程式庫錯誤。
要求
<EMPTY>
回應
| 名稱 | 類型 |
|---|---|
payload |
Battery_GetStatus_Result
|
智慧手錶
使用 Hanging-Get 模式變更電池狀態通知。
第一次呼叫會立即傳回完整的目前硬體狀態。後續呼叫會遭到封鎖,直到狀態變更與 ConfigureWatch 中的遮罩相符,或 max_interval 中的間隔時間已過。每次傳回的資料都包含所有目前電池欄位的完整遙測快照,而非稀疏差異。
每個連線最多只能有一個未完成的 Watch 呼叫;並行呼叫會失敗,並傳回 ALREADY_WATCHING。
參數:
lease:選用的電源租用權杖,可在伺服器處理呼叫時讓系統保持喚醒狀態。如果呼叫立即獲得回應 (首次呼叫一律如此),伺服器會將其傳回為wake_lease,除非伺服器傳回自己的喚醒租約。如果通話處於保留狀態,伺服器會中斷通話。
傳回值:
status:電池目前的完整遙測快照。wake_lease:用戶端在處理status時應持有的選用租約權杖:用戶端的lease在立即回覆時交回,或在變更觸發wake_on條件或max_interval樣本喚醒系統時,為設定wake_on_max_interval的用戶端提供喚醒租約。否則會省略。
錯誤:
ALREADY_WATCHING:這個連線已有待處理的Watch呼叫。IO:與電量計硬體通訊失敗 (例如 I2C 傳輸失敗)。INTERNAL:內部驅動程式庫錯誤。
要求
| 名稱 | 類型 |
|---|---|
lease |
fuchsia.power.system/LeaseToken
|
回應
| 名稱 | 類型 |
|---|---|
payload |
Battery_Watch_Result
|
STRUCTS
Battery_ConfigureWatch_Response
定義於 fuchsia.hardware.power.battery/battery.fidl
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
effective_options |
WatchOptions
|
無預設值 |
Battery_GetSpec_Response
定義於 fuchsia.hardware.power.battery/battery.fidl
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
spec |
Spec
|
無預設值 |
Battery_GetStatus_Response
定義於 fuchsia.hardware.power.battery/battery.fidl
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
status |
Status
|
無預設值 |
Battery_Watch_Response 資源
定義於 fuchsia.hardware.power.battery/battery.fidl
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
status |
Status
|
無預設值 | |
wake_lease |
fuchsia.power.system/LeaseToken
|
無預設值 |
列舉
錯誤彈性
類型:uint32
定義於 fuchsia.hardware.power.battery/battery.fidl
電池通訊協定傳回的錯誤。
| 名稱 | 值 | 說明 |
|---|---|---|
內部 |
1 |
驅動程式庫發生未預期的錯誤。 |
NOT_SUPPORTED |
2 |
這個硬體不支援要求的作業、欄位或模式。 |
INVALID_ARGS |
3 |
提供給方法的一或多個引數無效,或要求的值超出硬體可程式化的範圍。 |
IO |
4 |
無法與電池硬體通訊 (例如匯流排傳輸錯誤)。 |
ALREADY_WATCHING |
5 |
這個連線已有待處理的 |
HealthStatus 彈性
類型:uint32
定義於 fuchsia.hardware.power.battery/battery.fidl
電池健康度和安全狀態,包括 JEITA 溫度區域和故障情況。
每個值都會說明電池組是否可以充電,以及是否仍可為系統供電。除非另有說明,否則電池仍可供電。
| 名稱 | 值 | 說明 |
|---|---|---|
佳 |
1 |
正常作業溫度和電池健康狀態。充電和放電皆可。 |
COLD |
2 |
電池溫度低於安全充電門檻 (禁止充電)。 電池仍可供電,但可用容量和峰值電流通常會降低。 |
COOL |
3 |
電池溫度過低 (充電電流或電壓可能受限)。 電池仍可供電。 |
暖色 |
4 |
電池溫度升高 (充電電流或電壓可能受限)。 電池仍可供電。 |
HOT |
5 |
電池溫度超過安全門檻 (禁止充電)。 電池通常仍可供電,但如果溫度持續上升,硬體保護機制可能會開啟放電路徑。 |
DEAD |
6 |
電池組電壓低於運作門檻,或電池已損壞。 電池無法為系統提供可用電力。 |
OVER_VOLTAGE |
7 |
電池電壓超過硬體安全限制 (禁止充電)。 電池仍可供電,放電是預期的復原路徑。 |
UNSPECIFIED_FAILURE |
8 |
未指定的硬體或電量計安全故障。無法確定電池組是否可以充電,或是否能供電。 |
TABLES
規格
定義於 fuchsia.hardware.power.battery/battery.fidl
靜態硬體特性和驅動程式庫功能。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
design_capacity_uah |
uint32
|
選用。設計容量 (以微安培小時為單位)。如果硬體不支援,則會省略。 |
2 |
design_voltage_uv |
uint32
|
選用。標稱設計電壓,以微伏為單位。如果硬體不支援,則會省略。 |
3 |
chemistry |
string:128
|
選用。電池化學成分說明 (例如「Li-ion」、「LiFePO4」、「NiMH」)。如果硬體不明或未經程式設計,則會省略。 |
4 |
model |
string:128
|
選用。電池型號資訊字串或製造商零件編號。如果硬體不明或未經程式設計,則會省略。 |
5 |
supported_options |
WatchOptions
|
此為必要項目。這個驅動程式庫/硬體支援的興趣和喚醒選項。 驅動程式必須填入這個表格,用戶端才能知道哪些欄位支援主動變更通知。如果驅動程式庫省略這個欄位,用戶端應假設不支援主動中斷監控。
|
狀態
定義於 fuchsia.hardware.power.battery/battery.fidl
電池電量計的主要遙測快照。
所有欄位均為選填。每個傳回的 Status 都代表完整的快照,而非稀疏差異;驅動程式庫省略的欄位表示硬體電量計不支援該指標,或目前無法使用/不確定。
注意:部分欄位 (例如瞬時 voltage_uv 和 current_ua) 可能是被動測量,不會在變更時產生硬體中斷。如要瞭解哪些選項可主動觸發變更通知,請參閱 Spec.supported_options。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
present |
bool
|
電池組是否實際存在並已連接。如果為 false,表示電池已卸除/遺失。如果無法判斷是否有人在家,則會省略。 |
2 |
voltage_uv |
uint32
|
目前端電壓,以微伏為單位。如果硬體不支援或無法使用,則會省略。 |
3 |
current_ua |
int32
|
目前電流 (以微安為單位):正值 (+) 代表充電,負值 (-) 代表放電。 如果硬體不支援或無法使用,則會省略。 |
4 |
level_percent |
float32
|
充電狀態百分比,範圍為 [0.0, 100.0]。如果無法確定或硬體不支援,則會省略。 |
5 |
temp_celsius |
float32
|
內部電池溫度 (攝氏)。如果裝置不支援或無法使用溫度感應功能,則會省略。 |
6 |
remaining_capacity_uah |
uint32
|
預估剩餘可用容量,以微安小時為單位。如果無法確定或硬體不支援,則會省略。 |
7 |
full_charge_capacity_uah |
uint32
|
預估充飽電容量 (單位為微安培小時),反映電池組老化程度。如果無法確定或硬體不支援,則會省略。 |
8 |
health |
HealthStatus
|
健康狀況或安全行程狀態。 如果硬體不支援健康狀態診斷,則會省略。 |
9 |
cycle_count |
uint32
|
充放電週期總數。 如果硬體不支援經期追蹤功能,則會省略。 |
10 |
time_remaining |
zx/Duration
|
預估電池完全耗盡 (放電) 或充飽電 (充電) 的剩餘時間。如果無法確定、不支援或電池閒置,則會省略。 |
WatchOptions
定義於 fuchsia.hardware.power.battery/battery.fidl
電池狀態監控的設定選項。
interest 和 wake_on 是選用遮罩:系統會忽略 Status 資料表中的實際欄位值,僅根據欄位是否存在 (已設定與未設定) 決定遮罩。
如果沒有遮罩,代表「使用這個欄位的預設值」;如果遮罩存在但空白,則代表「沒有欄位」。這兩個預設值之所以不同,是因為安全選擇不同:interest 預設為驅動程式庫支援監控的所有項目,因此即使用戶端從未設定任何項目,仍會繼續進行,而 wake_on 預設為不監控任何項目,因為喚醒系統是用戶端必須選擇加入的成本。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
interest |
Status
|
用戶端想接收變更通知的欄位。預設為 |
2 |
wake_on |
Status
|
應主動將系統從暫停狀態喚醒的欄位。 |
3 |
max_interval |
zx/Duration
|
|
4 |
wake_on_max_interval |
bool
|
系統暫停時,到期的 |
UNIONS
Battery_ConfigureWatch_Result strict
定義於 fuchsia.hardware.power.battery/battery.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Battery_ConfigureWatch_Response
|
|
2 |
err |
Error
|
|
3 |
framework_err |
internal
|
Battery_GetSpec_Result strict
定義於 fuchsia.hardware.power.battery/battery.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Battery_GetSpec_Response
|
|
2 |
err |
Error
|
|
3 |
framework_err |
internal
|
Battery_GetStatus_Result strict
定義於 fuchsia.hardware.power.battery/battery.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Battery_GetStatus_Response
|
|
2 |
err |
Error
|
|
3 |
framework_err |
internal
|
Battery_Watch_Result strict resource
定義於 fuchsia.hardware.power.battery/battery.fidl
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
response |
Battery_Watch_Response
|
|
2 |
err |
Error
|
|
3 |
framework_err |
internal
|
服務
服務
定義於 fuchsia.hardware.power.battery/battery.fidl
| 名稱 | 類型 | 傳輸 |
|---|---|---|
| 電池 |
fuchsia.hardware.power.battery/Battery
|
版本 |