Touch SDK py
Connects to Doublepoint Touch SDK compatible Bluetooth devices – like this Wear OS app.
There is also a web SDK and a Unity SDK.
See doublepoint.com/product for more info.
Installation
pip install touch-sdk
Example usage
from touch_sdk import Watch
class MyWatch(Watch):
def on_tap(self):
print('Tap')
watch = MyWatch()
watch.start()
Usage
All callback functions should be methods in the class that inherits Watch
, like in the example above.
An optional name string in the constructor will search only for devices with that name (case insensitive).
watch = MyWatch('fvaf')
Tap gesture
def on_tap(self):
print('tap')
Sensors
def on_sensors(self, sensors):
print(sensors.acceleration)
print(sensors.gravity)
print(sensors.angular_velocity)
print(sensors.orientation)
print(sensors.magnetic_field)
print(sensors.magnetic_field_calibration)
Touch screen
def on_touch_down(self, x, y):
print('touch down', x, y)
def on_touch_up(self, x, y):
print('touch up', x, y)
def on_touch_move(self, x, y):
print('touch move', x, y)
def on_touch_cancel(self, x, y):
print('touch cancel', x, y)
Rotary dial
def on_rotary(self, direction):
print('rotary', direction)
Outputs +1 for clockwise and -1 for counter-clockwise.
Back button
def on_back_button(self):
print('back button')
Called when the back button is pressed and released. Wear OS does not support separate button down and button up events for the back button.
Probability output
def on_gesture_probability(self, prob):
print(f'probability: {prob}')
Triggered when a gesture detection model produces an output. See examples/pinch_probability.py
for a complete example.
Haptics
The trigger_haptics(intensity, length)
method can be used to initiate one-shot haptic effects on the watch. For example, to drive the haptics motor for 300 ms at 100% intensity on watch
, call watch.trigger_haptics(1.0, 300)
.
Miscellaneous
watch.hand
watch.battery_percentage
watch.touch_screen_resolution
watch.haptics_available
Acting as backend for Unity Play Mode
This package provides the stream_watch
module, which makes it possible to use touch-sdk-py as the backend for touch-sdk-unity (>=0.12.0) applications in Play Mode. To use this feature, create a virtual environment in which touch-sdk-py is installed, and then set the python path of the BluetoothWatchProvider
script in your Unity project to the virtual environment's python executable.
Unexplainable bugs
Sometimes turning your device's Bluetooth off and on again fixes problems – this has been observed on Linux, Mac and Windows. This is unideal, but those error states are hard to reproduce and thus hard to fix.
Pylint
python3 -m pylint src --rcfile=.pylintrc
Adding pylint to pre-commit
echo 'python3 -m pylint src --rcfile=.pylintrc -sn' > .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit