fuchsia.ui.test.input

新增日期:9

通訊協定

鍵盤

fuchsia.ui.test.input/text.fidl 中定義

這項工具可將鍵盤事件插入「輸入管道」。

請視需要延長期限。

SimulateKeyEvent

透過鍵盤輸入報表模擬重要事件。

KeyboardInputReport 包含目前按下的按鍵清單。這份報表可以與先前收到的報表進行比較,藉此呈現重要/向上/遞增資料。

新增時間:16 天

要求

名稱類型
payload KeyboardSimulateKeyEventRequest

回應

<EMPTY>

SimulateUsAsciiTextEntry

模擬輸入 text 所需的按鍵動作組合,就像使用美國 QWERTY 鍵盤一樣。

US ASCII 文字會對應至對應的按鍵動作。例如,a 會對應到美國 QWERTY 鍵盤上按鍵 a 的後續版本。此外,A 會對應至按下 Shift 鍵,接著按下 a 和放開按鈕。

為方便起見,\n\t 會分別轉換為 EnterTab 金鑰。

要求

名稱類型
payload KeyboardSimulateUsAsciiTextEntryRequest

回應

<EMPTY>

KeyboardInputListener

fuchsia.ui.test.input/text.fidl 中定義

用戶端應用程式提供的工具,可向相關方 (例如測試固件) 回報文字輸入內容。

注意:回報者是這項服務的用戶端

標準用法用於測試透過 fuchsia.ui.test.input.Keyboad 插入文字,並等待受測試的用戶端回報已透過 fuchsia.ui.test.input.KeyboardInputListener 收到插入的文字。

注意:這個通訊協定是由 OOT 程式碼實作。請使用版本管理功能變更這個通訊協定。

ReportReady

通知用戶端已準備好接收文字輸入。如果用戶端需要完成設定才能繼續進行測試,請呼叫此方法,讓事件監聽器可以等到準備好繼續進行測試。

要求

<EMPTY>

回應

<EMPTY>

ReportTextInput

針對應用程式收到的一組重要事件,將產生的文字字串通知事件監聽器。

要求

名稱類型
payload KeyboardInputListenerReportTextInputRequest

MediaButtonsDevice

fuchsia.ui.test.input/media_buttons.fidl 中定義

這項工具可將媒體按鈕事件插入「輸入管道」。

請視需要延長期限。

SendButtonsState

針對裝置上所要求的按鈕,傳送按下按鈕的向量。如果傳送空白向量,系統就會放開所有按下按鈕。

新增時間:19 歲

要求

名稱類型
payload MediaButtonsDeviceSendButtonsStateRequest

回應

<EMPTY>

SimulateButtonPress

在裝置上模擬按下按鈕和放開按鈕的動作。

要求

名稱類型
payload MediaButtonsDeviceSimulateButtonPressRequest

回應

<EMPTY>

滑鼠

fuchsia.ui.test.input/mouse.fidl 中定義

將滑鼠事件插入輸入管道的工具。

請視需要延長期限。

SimulateMouseEvent

插入與指定事件相對應的輸入報表。

注意:movement 參數的範圍是 [-1000, 1000],scroll 參數的範圍則是 [-100, 100]。

要求

名稱類型
payload MouseSimulateMouseEventRequest

回應

<EMPTY>

MouseInputListener

fuchsia.ui.test.input/mouse.fidl 中定義

這項工具可讓應用程式向相關方 (例如測試韌體) 回報觸控輸入。

ReportMouseInput

回報接受測試的元件已收到預期輸入內容。

要求

名稱類型
payload MouseInputListenerReportMouseInputRequest

註冊類型

fuchsia.ui.test.input/registry.fidl 中定義的

*** 這個通訊協定不得用於實際工作環境。***

讓用戶端註冊假輸入裝置,可用來將輸入事件直接插入輸入管道。

RegisterKeyboard

讓用戶端使用對應的用戶端端到 device,插入鍵盤事件。

用戶端一次最多只能進行一個正在進行的通話。後續的呼叫必須等到確認傳回傳回為止。違反規定會使管道關閉。

即使 Registry 連線關閉,fuchsia.ui.test.input.Keyboard 管道仍會保持開啟狀態。

要求

名稱類型
payload RegistryRegisterKeyboardRequest

回應

<EMPTY>

RegisterMediaButtonsDevice

讓用戶端使用對應的用戶端端至 device,插入媒體按鈕事件。

用戶端一次最多只能進行一個正在進行的通話。後續的呼叫必須等到確認傳回傳回為止。違反規定會使管道關閉。

即使 Registry 連線關閉,fuchsia.ui.test.input.MediaButtonsDevice 管道仍會保持開啟狀態。

要求

名稱類型
payload RegistryRegisterMediaButtonsDeviceRequest

回應

<EMPTY>

RegisterMouse

啟用用戶端即可在 device 中,插入滑鼠事件。

用戶端一次最多只能進行一個正在進行的通話。後續的呼叫必須等到確認傳回傳回為止。違反規定會使管道關閉。

即使 Registry 連線關閉,fuchsia.ui.test.input.Mouse 管道仍會保持開啟狀態。

要求

名稱類型
payload RegistryRegisterMouseRequest

回應

<EMPTY>

RegisterTouchScreen

讓用戶端能夠使用對應的用戶端端至 device 插入觸控事件。

用戶端一次最多只能進行一個正在進行的通話。後續的呼叫必須等到確認傳回傳回為止。違反規定會使管道關閉。

即使 Registry 連線關閉,fuchsia.ui.test.input.TouchScreen 管道仍會保持開啟狀態。

要求

名稱類型
payload RegistryRegisterTouchScreenRequest

回應

<EMPTY>

TouchInputListener

fuchsia.ui.test.input/touch.fidl 中定義

這項工具可讓應用程式向相關方 (例如測試韌體) 回報觸控輸入。

ReportTouchInput

回報接受測試的元件已收到預期輸入內容。

要求

名稱類型
payload TouchInputListenerReportTouchInputRequest

TouchScreen

fuchsia.ui.test.input/touch.fidl 中定義

可將觸控事件插入輸入管道的工具。

請視需要延長期限。

SimulateMultiFingerGesture

模擬從 start_locations 開始並在 end_locations 結束的多指線性手勢,所有移動事件總數等於 move_event_count。如果引數無效,伺服器應關閉連線。

產生的指標事件串流會是:

向下 + CHANGE_1 + ... + CHANGE_n + UP,其中 n == move_event_count

插入事件時,系統之間會稍微延遲插入。

新增時間:12 張

要求

名稱類型
payload TouchScreenSimulateMultiFingerGestureRequest

回應

<EMPTY>

SimulateMultiTap

模擬多指輕觸要求的位置。

新增時間:12 張

要求

名稱類型
payload TouchScreenSimulateMultiTapRequest

回應

<EMPTY>

SimulateSwipe

模擬從 start_location 開始並在 end_location 結束的滑動,移動事件總數等於 move_event_count

產生的指標事件串流會是:

向下 + CHANGE_1 + ... + CHANGE_n + UP,其中 n == move_event_count

插入事件時不會有明確的延遲時間。換句話說,連續事件之間觀測到的延遲時間,約等於插入單一事件所需的時間。

要求

名稱類型
payload TouchScreenSimulateSwipeRequest

回應

<EMPTY>

SimulateTap

在要求的位置模擬輕觸動作。

要求

名稱類型
payload TouchScreenSimulateTapRequest

回應

<EMPTY>

SimulateTouchEvent

透過觸控輸入報表模擬觸控事件。

TouchInputReport 包含目前正在聯絡觸控介面的聯絡人清單。但可以與先前收到的報表比較,藉此呈現增加觸控事件數。

新增時間:17 天

要求

名稱類型
report fuchsia.input.report/TouchInputReport

回應

<EMPTY>

ENUMS

座標單位彈性

類型:uint32

fuchsia.ui.test.input/registry.fidl 中定義的

表示用於指定空間事件參數的單位 (除非另有註明)。

新增時間:11 張

名稱物超所值說明
0

實體螢幕會對應至在 x 和 y 軸上橫跨 [-1000, 1000] 的座標空間,其中正 x 會向右延伸,正 y 向下方延伸。

範例:(預設座標空間中的 (500, -500) 會對應至實體螢幕右上方象限的中心)。

1

實體螢幕會對應至橫跨 (0, 0) - (其寬度、顯示高度) 的座標空間,其中正 x 會向右延伸,正 y 向下方延伸。

測試寫入者應使用 fuchsia.ui.display.singleton.Info 擷取螢幕的實際尺寸。

請注意,這個空間與實體螢幕的大小「和」方向一致,因此「不會」反映任何套用至場景圖的旋轉。

一般而言,測試撰寫者不應假設特定檢視畫面的邏輯座標空間與實體座標空間相符。

滑鼠按鈕彈性

類型:uint32

fuchsia.ui.test.input/mouse.fidl 中定義

識別標準滑鼠上的各種按鈕。

名稱物超所值說明
0

「滑鼠左」按鈕。

1

「右」滑鼠按鈕。

2

「第三」滑鼠按鈕。

MouseEventPhase 彈性

類型:uint32

fuchsia.ui.test.input/mouse.fidl 中定義

識別滑鼠事件的階段。

名稱物超所值說明
0

觀察器已開始追蹤滑鼠。

1

滑鼠自上次 ADD 事件以來已移動,沒有交錯的 DOWN 事件。

2

已按下一或多個滑鼠按鈕。

3

滑鼠自上次 DOWN 事件以來已移動。

4

所有按下的按鈕都已釋放。

5

滑鼠滾輪經過操縱,

資料表

KeyboardInputListenerReportTextInputRequest

定義於 fuchsia.ui.test.input/text.fidl

序數廣闊類型說明
text string[1024]

回報者收到的文字輸入內容。

non_printable fuchsia.ui.input3/NonPrintableKey

回報者收到的不可列印金鑰。

新增時間:18 歲

KeyboardSimulateKeyEventRequest

定義於 fuchsia.ui.test.input/text.fidl

序數廣闊類型說明
report fuchsia.input.report/KeyboardInputReport

KeyboardSimulateUsAsciiTextEntryRequest

定義於 fuchsia.ui.test.input/text.fidl

序數廣闊類型說明
text string[1024]

MediaButtonsDeviceSendButtonsStateRequest

fuchsia.ui.test.input/media_buttons.fidl 中定義

序數廣闊類型說明
buttons vector<fuchsia.input.report/ConsumerControlButton>[255]

接收按鈕的按鈕。

MediaButtonsDeviceSimulateButtonPressRequest

fuchsia.ui.test.input/media_buttons.fidl 中定義

序數廣闊類型說明
button fuchsia.input.report/ConsumerControlButton

接收按鈕的按鈕。

MouseInputListenerReportMouseInputRequest

fuchsia.ui.test.input/mouse.fidl 中定義

序數廣闊類型說明
local_x float64

記者座標系統中的水平座標。

local_y float64

記者座標系統中的垂直座標。

time_received zx/Time

用戶端接收到滑鼠事件的單調時間 (ns)。 請注意,使用此值時請謹慎小心。部分回報者可能不支援 NS 層級精確度,但仍回報為 ns 層級單位。

component_name string[1024]

用來區分回應和多個元件的元件名稱。

注意:這個名稱獨立於元件架構,因此回報器和事件監聽器可自由決定任意值。

buttons vector<MouseButton>[32]

回報者收到的按下按鈕。

phase MouseEventPhase

回報者收到的滑鼠事件階段。

device_pixel_ratio float64

回報者知道的裝置像素比率。

有些記者在轉換為本機座標時,可能會將此比例係數納入考量。

wheel_x_physical_pixel float64

水平滾輪捲動差異 (以實體像素為單位)。

wheel_y_physical_pixel float64

垂直滾輪捲動差異 (以實體像素為單位)。

MouseSimulateMouseEventRequest

fuchsia.ui.test.input/mouse.fidl 中定義

序數廣闊類型說明
pressed_buttons vector<MouseButton>[32]

目前按下的一組按鈕。「不可」包含重複項目。

movement_x int64

相對 X 位置位移。

movement_y int64

相對 Y 位置位移。

scroll_v_detent int64

垂直捲動的相對垂直捲動偏移。

scroll_h_detent int64

相對水平捲動位移位移。

scroll_v_physical_pixel float64

按實體像素推薦的垂直捲動移位,計算方式為加速器、露點 / 毫米和像素比例等。

scroll_h_physical_pixel float64

按實體像素建議的水平捲動移位,可以採用加速器、露點 / 毫米和像素比例等值進行計算。

RegistryRegisterKeyboardRequest 資源

定義於 fuchsia.ui.test.input/registry.fidl

序數廣闊類型說明
device server_end<Keyboard>

RegistryRegisterMediaButtonsDeviceRequest 資源

定義於 fuchsia.ui.test.input/registry.fidl

序數廣闊類型說明
device server_end<MediaButtonsDevice>

RegistryRegisterMouseRequest 資源

定義於 fuchsia.ui.test.input/registry.fidl

序數廣闊類型說明
device server_end<Mouse>

RegistryRegisterTouchScreenRequest 資源

定義於 fuchsia.ui.test.input/registry.fidl

序數廣闊類型說明
device server_end<TouchScreen>
coordinate_unit CoordinateUnit

指出用於描述觸控事件的座標空間。

新增時間:11 張

TouchInputListenerReportTouchInputRequest

fuchsia.ui.test.input/touch.fidl 定義

序數廣闊類型說明
local_x float64

記者座標系統中的水平座標。

local_y float64

記者的座標系統中垂直座標。

time_received zx/Time

回報者收到指標資料的單調時間 (ns)。 請注意,使用此值時請謹慎小心。部分回報者可能不支援 NS 層級精確度,但仍回報為 ns 層級單位。

device_pixel_ratio float64

回報器回報的實際像素數量,按邏輯像素。

component_name string[1024]

用來區分回應和多個元件的元件名稱。

注意:這個名稱獨立於元件架構,因此回報器和事件監聽器可自由決定任意值。

phase fuchsia.ui.pointer/EventPhase

觸控事件階段。

新增時間:12 張
pointer_id uint32

指標_id 可用於在多點觸控中識別手指。每指都會以個別呼叫 ReportTouchInput() 傳送,而受呼叫者必須負責視需要組合手指

新增時間:12 張

TouchScreenSimulateMultiFingerGestureRequest

fuchsia.ui.test.input/touch.fidl 定義

序數廣闊類型說明
start_locations [10]

手勢的起始位置 (位於註冊期間指定的座標單位)。

end_locations [10]

手勢的終點 (以註冊期間指定的座標單位為準)。

move_event_count uint32

雙指撥動事件數。

finger_count uint32

由於 array<fuchsia.math.Vec, MAX_FINGERS> 是固定長度,因此我們使用這個欄位瞭解手勢的手指數。

新增時間:18 歲

TouchScreenSimulateMultiTapRequest

fuchsia.ui.test.input/touch.fidl 定義

序數廣闊類型說明
tap_locations vector<fuchsia.math/Vec>[10]

輕觸事件的位置,位於註冊期間指定的座標單位。

TouchScreenSimulateSwipeRequest

fuchsia.ui.test.input/touch.fidl 定義

序數廣闊類型說明
start_location fuchsia.math/Vec

滑動的起始位置 (位於註冊期間指定的座標單位)。

end_location fuchsia.math/Vec

滑動的結束位置 (位於註冊期間指定的座標單位)。

move_event_count uint32

滑動中的移動事件數量。

TouchScreenSimulateTapRequest

fuchsia.ui.test.input/touch.fidl 定義

序數廣闊類型說明
tap_location fuchsia.math/Vec

輕觸事件的位置,位於註冊期間指定的座標單位。

業者

名稱物超所值類型說明
MAX_FINGERS 10 uint8
新增時間:12 張
MOUSE_MAX_NUM_BUTTONS 32 uint32

以硬式編碼方式設定滑鼠上限。日後如果因為按鈕多出更多按鈕,這應該就會增加。