fuchsia.power.systemmode

已新增:7

專家

ClientConfigurator

定義於 fuchsia.power.systemmode/systemmode.fidl

可用於更新特定 ClientType 電源設定的通訊協定。

安裝

取得指定 ClientType 的電源設定。

如果 client_type 沒有電源設定,則不會顯示傳回的值。

  • config 是傳回的用戶端專屬設定;如果 client_type 沒有現有設定,則傳回缺少值

要求

名稱類型
client_type fuchsia.power.clientlevel/ClientType

回應

名稱類型
config ClientConfig?

設定

設定指定的 ClientType 電源設定。

這個方法應搭配 GetConfig 使用,以便更新特定 ClientType 的現有電源設定,而不完全覆寫。

當特定 ClientType 的電源設定變更時,電源管理工具會根據新的設定重新評估該 ClientType 的當前功率設定。這項重新評估作業可能會將新的功率等級傳送至已連線的用戶端。

接收並驗證新設定後,呼叫會立即傳回。呼叫傳回後,系統才會套用因變更用戶端設定而套用的實際系統變更。因此,根據新系統電源模式更新用戶端時,如果發生任何錯誤,都不會傳回給呼叫端。而是「盡可能」套用用戶端更新。

如果提供的 config 無效,系統不會套用任何變更,並關閉管道。如果 ClientConfig 內含的多個 mode_match 項目重複指定 SystemMode,驗證就會失敗。

要求

名稱類型
client_type fuchsia.power.clientlevel/ClientType
config ClientConfig

回應

<空白>

要求者

定義於 fuchsia.power.systemmode/systemmode.fidl

一種通訊協定,可用來要求變更目前使用中的系統電源模式。

要求

設定或清除系統電源模式的要求。

系統會在收到、驗證及接受要求後,立即傳回呼叫。呼叫傳回後,系統才會套用因這項要求而套用的實際系統變更。因此,根據新的系統電源模式更新用戶端時,如果發生任何錯誤,都不會傳回至呼叫端。而會「盡可能」套用用戶端更新。

這個方法傳回的錯誤代表要求本身無效,並遭到拒絕。具體拒絕原因的詳細資料會顯示在錯誤值中。如果發生錯誤,管道會保持開啟狀態。

用戶端可以使用這個方法單獨設定或清除系統電源模式變化版本。例如:

// 電池低於「低」門檻 Request(LOW_BATTERY, true);

// 裝置現已插入牆上 要求(ON_AC_POWER, true);

// 電池目前超過「低」門檻 Request(LOW_BATTERY, false);

  • mode 是要設定或清除的 SystemMode
  • set 應為 true 才能要求設定 mode,設為 false 即可清除

要求

名稱類型
mode SystemMode
set bool

回應

名稱類型
payload Requester_Request_Result

結構

ClientConfig

定義於 fuchsia.power.systemmode/systemmode.fidl

定義 ClientType 的電源設定。

如果用戶端已連線到指定 ClientType,PowerManager 就會使用針對該 ClientType 設定的 ClientConfig,根據目前啟用的系統電源模式選擇適當的電源等級。 電源層級選取程序如下特定 ClientType

  1. 透過 ClientConfig.mode_matches 項目進行疊代。如果項目指定的 mode 值包含在目前啟用的系統電源模式下,系統會選取該項目中的對應 power_level,做為該用戶端目前的電源等級,並停止此用戶端的疊代。
  2. 如果 mode_matches 中沒有相符的項目,則系統會選取 default_level 做為用戶端目前的電量等級。

欄位類型說明預設
mode_matches vector<ModeMatch> 無預設
default_level uint64 無預設

模式比對

定義於 fuchsia.power.systemmode/systemmode.fidl

定義用於選取功率等級的模式比對條件。

特定 ClientType 的電源設定是由這些 ModeMatch 項目的集合組成。如果項目指定的 mode 含有目前啟用的系統電源模式,則會選取其 power_level 做為用戶端的電量。

欄位類型說明預設
mode SystemMode 無預設
power_level uint64 無預設

要求者_要求回應

定義於 fuchsia.power.systemmode/systemmode.fidl

<空白>

表情符號

ModeRequestError 彈性

類型:uint32

定義於 fuchsia.power.systemmode/systemmode.fidl

Requester.Request 傳回的可能錯誤值。

名稱說明
1

發生一般錯誤。

SystemMode 彈性

類型:uint32

定義於 fuchsia.power.systemmode/systemmode.fidl

列舉支援的系統電源模式。

系統中的電源模式並非專屬模式,在任何特定時間可能會同時啟用多個電源模式。通常可定義整個系統的低耗電狀態或電源目標,例如「省電模式」。詳情請參閱 README.md

請注意,新增變數時:請將 MAX_MODE_MATCHES_PER_CLIENT 更新為等於 SystemMode 變體的數量,以支援「最糟情況」的用戶端設定。

名稱說明

聯合國

Requester_Request_Result 嚴格

定義於 fuchsia.power.systemmode/systemmode.fidl

序數Variant類型說明
response Requester_Request_Response
err ModeRequestError

場景

名稱類型說明
MAX_MODE_MATCHES_PER_CLIENT 0 uint32

ClientConfig 可包含的 ModeMatch 項目數量上限。

這個值應設為支援「SystemMode」變體數量,因為支援「最糟情況」用戶端設定所需的項目數量 (「最糟情況」是指設定時,每個支援的電源模式都需要模式比對項目)。