HID-Ereignisnachrichten
Deklaration
thread.register_event("xxtouch.hid_event", function(val)
local event = json.decode(val)
if event.event_type=="touch" then
if event.event_name=="touch.on" then
sys.toast("触摸接触位置: ("..event.x..", "..event.y..")\n"..event.time)
elseif event.event_name=="touch.move" then
sys.toast("触摸移动到位置: ("..event.x..", "..event.y..")\n"..event.time)
elseif event.event_name=="touch.off" then
sys.toast("触摸从位置: ("..event.x..", "..event.y..") 离开屏幕\n"..event.time)
end
else
if event.event_name=="key.down" then
sys.toast("按下按键: "..event.key_name.."\n"..event.time)
elseif event.event_name=="key.up" then
sys.toast("抬起按键: "..event.key_name.."\n"..event.time)
end
end
end)
Status
- val
- Nach der Registrierung des Listeners werden alle HID-Ereignisinformationen an diesen Callback übergeben. Da dies die Skriptleistung stark beeinträchtigt, sollte der Listener nach dem Ende des Bedarfs rechtzeitig abgemeldet werden.
- Alle Touch-Koordinaten in HID-Ereignissen verwenden als Ausgangskoordinatensystem das Hochformat mit der Home-Taste unten. Für eine Umwandlung kann screen.rotate_xy verwendet werden.
Beispiel
-- Nachrichtenwarteschlange leeren
proc_queue_clear("xxtouch.hid_event")
--
-- Listener-Callback registrieren
local eid = thread.register_event("xxtouch.hid_event", function(val)
local event = json.decode(val)
if event.event_type=="touch" then
if event.event_name=="touch.on" then
sys.toast("触摸接触位置: ("..event.x..", "..event.y..")\n"..event.time)
elseif event.event_name=="touch.move" then
sys.toast("触摸移动到位置: ("..event.x..", "..event.y..")\n"..event.time)
elseif event.event_name=="touch.off" then
sys.toast("触摸从位置: ("..event.x..", "..event.y..") 离开屏幕\n"..event.time)
end
else
if event.event_name=="key.down" then
sys.toast("按下按键: "..event.key_name.."\n"..event.time)
elseif event.event_name=="key.up" then
sys.toast("抬起按键: "..event.key_name.."\n"..event.time)
end
end
end)
--
touch.on(100, 100):off()
sys.msleep(1000)
key.press('homebutton')
--
sys.msleep(20000) -- 20 Sekunden warten
--
-- Callback abmelden; ohne Abmeldung des Listeners würde das Skript hier nicht enden
thread.unregister_event("xxtouch.hid_event", eid)
Hinweis: Der obige Code verwendet die Funktionen sys.toast, sys.msleep, proc_queue_clear, thread.register_event und thread.unregister_event aus anderen Kapiteln.