通訊協定
鍵盤
在 fuchsia.ui.test.input/text.fidl 中定義
這項工具可將鍵盤事件插入「輸入管道」。
請視需要延長期限。
SimulateKeyEvent
透過鍵盤輸入報表模擬重要事件。
KeyboardInputReport 包含目前按下的按鍵清單。這份報表可以與先前收到的報表進行比較,藉此呈現重要/向上/遞增資料。
要求
名稱 | 類型 |
---|---|
payload |
KeyboardSimulateKeyEventRequest
|
回應
<EMPTY>
SimulateUsAsciiTextEntry
模擬輸入 text
所需的按鍵動作組合,就像使用美國 QWERTY 鍵盤一樣。
US ASCII 文字會對應至對應的按鍵動作。例如,a
會對應到美國 QWERTY 鍵盤上按鍵 a
的後續版本。此外,A
會對應至按下 Shift
鍵,接著按下 a
和放開按鈕。
為方便起見,\n
和 \t
會分別轉換為 Enter
和 Tab
金鑰。
要求
名稱 | 類型 |
---|---|
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
針對裝置上所要求的按鈕,傳送按下按鈕的向量。如果傳送空白向量,系統就會放開所有按下按鈕。
要求
名稱 | 類型 |
---|---|
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
插入事件時,系統之間會稍微延遲插入。
要求
名稱 | 類型 |
---|---|
payload |
TouchScreenSimulateMultiFingerGestureRequest
|
回應
<EMPTY>
SimulateMultiTap
模擬多指輕觸要求的位置。
要求
名稱 | 類型 |
---|---|
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 包含目前正在聯絡觸控介面的聯絡人清單。但可以與先前收到的報表比較,藉此呈現增加觸控事件數。
要求
名稱 | 類型 |
---|---|
report |
fuchsia.input.report/TouchInputReport
|
回應
<EMPTY>
ENUMS
座標單位彈性
類型:uint32
在 fuchsia.ui.test.input/registry.fidl 中定義的
表示用於指定空間事件參數的單位 (除非另有註明)。
名稱 | 物超所值 | 說明 |
---|---|---|
預設 |
0 |
實體螢幕會對應至在 x 和 y 軸上橫跨 [-1000, 1000] 的座標空間,其中正 x 會向右延伸,正 y 向下方延伸。 範例:(預設座標空間中的 (500, -500) 會對應至實體螢幕右上方象限的中心)。 |
PHYSICAL_PIXELS |
1 |
實體螢幕會對應至橫跨 (0, 0) - (其寬度、顯示高度) 的座標空間,其中正 x 會向右延伸,正 y 向下方延伸。 測試寫入者應使用 請注意,這個空間與實體螢幕的大小「和」方向一致,因此「不會」反映任何套用至場景圖的旋轉。 一般而言,測試撰寫者不應假設特定檢視畫面的邏輯座標空間與實體座標空間相符。 |
滑鼠按鈕彈性
類型:uint32
在 fuchsia.ui.test.input/mouse.fidl 中定義
識別標準滑鼠上的各種按鈕。
名稱 | 物超所值 | 說明 |
---|---|---|
名字 |
0 |
「滑鼠左」按鈕。 |
秒 |
1 |
「右」滑鼠按鈕。 |
第三方 |
2 |
「第三」滑鼠按鈕。 |
MouseEventPhase 彈性
類型:uint32
在 fuchsia.ui.test.input/mouse.fidl 中定義
識別滑鼠事件的階段。
名稱 | 物超所值 | 說明 |
---|---|---|
ADD |
0 |
觀察器已開始追蹤滑鼠。 |
HOVER |
1 |
滑鼠自上次 ADD 事件以來已移動,沒有交錯的 DOWN 事件。 |
朝下 |
2 |
已按下一或多個滑鼠按鈕。 |
MOVE |
3 |
滑鼠自上次 DOWN 事件以來已移動。 |
UP |
4 |
所有按下的按鈕都已釋放。 |
威爾斯 |
5 |
滑鼠滾輪經過操縱, |
資料表
KeyboardInputListenerReportTextInputRequest
定義於 fuchsia.ui.test.input/text.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
text |
string[1024]
|
回報者收到的文字輸入內容。 |
2 |
non_printable |
fuchsia.ui.input3/NonPrintableKey
|
回報者收到的不可列印金鑰。 新增時間:18 歲
|
KeyboardSimulateKeyEventRequest
定義於 fuchsia.ui.test.input/text.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
report |
fuchsia.input.report/KeyboardInputReport
|
KeyboardSimulateUsAsciiTextEntryRequest
定義於 fuchsia.ui.test.input/text.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
text |
string[1024]
|
MediaButtonsDeviceSendButtonsStateRequest
在 fuchsia.ui.test.input/media_buttons.fidl 中定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
buttons |
vector<fuchsia.input.report/ConsumerControlButton>[255]
|
接收按鈕的按鈕。 |
MediaButtonsDeviceSimulateButtonPressRequest
在 fuchsia.ui.test.input/media_buttons.fidl 中定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
button |
fuchsia.input.report/ConsumerControlButton
|
接收按鈕的按鈕。 |
MouseInputListenerReportMouseInputRequest
在 fuchsia.ui.test.input/mouse.fidl 中定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
local_x |
float64
|
記者座標系統中的水平座標。 |
2 |
local_y |
float64
|
記者座標系統中的垂直座標。 |
3 |
time_received |
zx/Time
|
用戶端接收到滑鼠事件的單調時間 (ns)。 請注意,使用此值時請謹慎小心。部分回報者可能不支援 NS 層級精確度,但仍回報為 ns 層級單位。 |
4 |
component_name |
string[1024]
|
用來區分回應和多個元件的元件名稱。 注意:這個名稱獨立於元件架構,因此回報器和事件監聽器可自由決定任意值。 |
5 |
buttons |
vector<MouseButton>[32]
|
回報者收到的按下按鈕。 |
6 |
phase |
MouseEventPhase
|
回報者收到的滑鼠事件階段。 |
7 |
device_pixel_ratio |
float64
|
回報者知道的裝置像素比率。 有些記者在轉換為本機座標時,可能會將此比例係數納入考量。 |
8 |
wheel_x_physical_pixel |
float64
|
水平滾輪捲動差異 (以實體像素為單位)。 |
9 |
wheel_y_physical_pixel |
float64
|
垂直滾輪捲動差異 (以實體像素為單位)。 |
MouseSimulateMouseEventRequest
在 fuchsia.ui.test.input/mouse.fidl 中定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
pressed_buttons |
vector<MouseButton>[32]
|
目前按下的一組按鈕。「不可」包含重複項目。 |
2 |
movement_x |
int64
|
相對 X 位置位移。 |
3 |
movement_y |
int64
|
相對 Y 位置位移。 |
4 |
scroll_v_detent |
int64
|
垂直捲動的相對垂直捲動偏移。 |
5 |
scroll_h_detent |
int64
|
相對水平捲動位移位移。 |
6 |
scroll_v_physical_pixel |
float64
|
按實體像素推薦的垂直捲動移位,計算方式為加速器、露點 / 毫米和像素比例等。 |
7 |
scroll_h_physical_pixel |
float64
|
按實體像素建議的水平捲動移位,可以採用加速器、露點 / 毫米和像素比例等值進行計算。 |
RegistryRegisterKeyboardRequest 資源
定義於 fuchsia.ui.test.input/registry.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
device |
server_end<Keyboard>
|
RegistryRegisterMediaButtonsDeviceRequest 資源
定義於 fuchsia.ui.test.input/registry.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
device |
server_end<MediaButtonsDevice>
|
RegistryRegisterMouseRequest 資源
定義於 fuchsia.ui.test.input/registry.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
device |
server_end<Mouse>
|
RegistryRegisterTouchScreenRequest 資源
定義於 fuchsia.ui.test.input/registry.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
device |
server_end<TouchScreen>
|
|
2 |
coordinate_unit |
CoordinateUnit
|
指出用於描述觸控事件的座標空間。 新增時間:11 張
|
TouchInputListenerReportTouchInputRequest
如 fuchsia.ui.test.input/touch.fidl 定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
local_x |
float64
|
記者座標系統中的水平座標。 |
2 |
local_y |
float64
|
記者的座標系統中垂直座標。 |
3 |
time_received |
zx/Time
|
回報者收到指標資料的單調時間 (ns)。 請注意,使用此值時請謹慎小心。部分回報者可能不支援 NS 層級精確度,但仍回報為 ns 層級單位。 |
4 |
device_pixel_ratio |
float64
|
回報器回報的實際像素數量,按邏輯像素。 |
5 |
component_name |
string[1024]
|
用來區分回應和多個元件的元件名稱。 注意:這個名稱獨立於元件架構,因此回報器和事件監聽器可自由決定任意值。 |
6 |
phase |
fuchsia.ui.pointer/EventPhase
|
觸控事件階段。 新增時間:12 張
|
7 |
pointer_id |
uint32
|
指標_id 可用於在多點觸控中識別手指。每指都會以個別呼叫 新增時間:12 張
|
TouchScreenSimulateMultiFingerGestureRequest
如 fuchsia.ui.test.input/touch.fidl 定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
start_locations |
[10]
|
手勢的起始位置 (位於註冊期間指定的座標單位)。 |
2 |
end_locations |
[10]
|
手勢的終點 (以註冊期間指定的座標單位為準)。 |
3 |
move_event_count |
uint32
|
雙指撥動事件數。 |
4 |
finger_count |
uint32
|
由於 新增時間:18 歲
|
TouchScreenSimulateMultiTapRequest
如 fuchsia.ui.test.input/touch.fidl 定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
tap_locations |
vector<fuchsia.math/Vec>[10]
|
輕觸事件的位置,位於註冊期間指定的座標單位。 |
TouchScreenSimulateSwipeRequest
如 fuchsia.ui.test.input/touch.fidl 定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
start_location |
fuchsia.math/Vec
|
滑動的起始位置 (位於註冊期間指定的座標單位)。 |
2 |
end_location |
fuchsia.math/Vec
|
滑動的結束位置 (位於註冊期間指定的座標單位)。 |
3 |
move_event_count |
uint32
|
滑動中的移動事件數量。 |
TouchScreenSimulateTapRequest
如 fuchsia.ui.test.input/touch.fidl 定義
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
tap_location |
fuchsia.math/Vec
|
輕觸事件的位置,位於註冊期間指定的座標單位。 |
業者
名稱 | 物超所值 | 類型 | 說明 |
---|---|---|---|
MAX_FINGERS |
10
|
uint8 |
新增時間:12 張
|
MOUSE_MAX_NUM_BUTTONS |
32
|
uint32 |
以硬式編碼方式設定滑鼠上限。日後如果因為按鈕多出更多按鈕,這應該就會增加。 |