Source code for poco.sdk.interfaces.input
# coding=utf-8
__author__ = 'lxn3032'
import warnings
[docs]class InputInterface(object):
"""
This is one of the main communication interfaces. This interface ensures the ability for simulated input on target
device. So far, the interface supports only some basic methods definitions. The motion event will be added in future
to provide full support for mobile devices.
All coordinates are in NormalizedCoordinate system, see ``NormalizedCoordinate`` for more details.
"""
[docs] def click(self, x, y):
"""
Perform click action as simulated input on target device. Coordinates arguments are all in range of 0~1.
Args:
y (:obj:`float`): y-coordinate
x (:obj:`float`): x-coordinate
"""
raise NotImplementedError
[docs] def double_click(self, x, y):
"""
Perform click action as simulated input on target device. Coordinates arguments are all in range of 0~1.
Args:
y (:obj:`float`): y-coordinate
x (:obj:`float`): x-coordinate
"""
raise NotImplementedError
[docs] def swipe(self, x1, y1, x2, y2, duration):
"""
Perform swipe action as simulated input on target device from point A to B within given time interval to
perform the action. Coordinates arguments are all in range of 0~1.
Args:
x1 (:obj:`float`): x-coordinate of the start point
y1 (:obj:`float`): y-coordinate of the start point
x2 (:obj:`float`): x-coordinate of the end point
y2 (:obj:`float`): y-coordinate of the end point
duration (:obj:`float`): time interval to perform the swipe action
"""
raise NotImplementedError
[docs] def longClick(self, x, y, duration):
"""
Perform press action as simulated input on target device within given seconds. Coordinates arguments are
all in range of 0~1.
Args:
x (:obj:`float`): x-coordinate
y (:obj:`float`): y-coordinate
duration (:obj:`float`): time interval to perform the action
"""
raise NotImplementedError
[docs] def setTouchDownDuration(self, duration):
"""
Set touch down duration for each click operation.
Args:
duration (:obj:`float`): the duration in seconds
"""
warnings.warn("This implementation of poco does not support changing default touch down duration. "
"Setting touch down duration to {}s takes no effects.".format(duration))
[docs] def getTouchDownDuration(self):
"""
Get touch down duration for each click operation. Each implementation should provide a default value.
Return:
:obj:`float`: the touch down duration in seconds
"""
raise NotImplementedError
[docs] def keyevent(self, keycode):
"""
Send a key event to target device.
Args:
keycode (:obj:`int` or :obj:`char`): Ascii key code
"""
raise NotImplementedError
[docs] def applyMotionEvents(self, events):
"""
Apply a motion event on the device touch panel
Args:
events (:py:obj:`list`): list of events. each event is MotionEvent data
(``['u/d/m/s', (x, y), contact_id]``)
"""
raise NotImplementedError