Open jfechete opened 1 year ago
Hi, thank you for the contribution! I haven't really done much digging into the touch stream data - can you briefly tell me what it does and provide an brief code example so I can try it out myself? Thank you!
Sure, here's the description from the documentation: "As of firmware version 1.4.0+, clients will be able to optionally register for fine resolution, low latency, touch data stream from the canvas controller over a UDP socket, if the client has also registered for Touch Events." Here's some example code:
from nanoleafapi import Nanoleaf
CANVAS_IP = "192.168.0.159"
TOUCH_DATA_PORT = 60233
def main():
nl = Nanoleaf(CANVAS_IP)
nl.register_event(handle_event,[4],TOUCH_DATA_PORT,handle_touch)
input()
def handle_event(data):
print("event")
print(data)
def handle_touch(data):
print("touch")
print(data)
if __name__ == "__main__":
main()
And here's some of the output I got when swiping from one panel to another:
touch
{'panelId': 62063, 'touchType': 'Swipe', 'touchStrength': 9, 'panelIdFrom': 33779}
event
{'events': [{'panelId': -1, 'gesture': 5}]}
Awesome, thank you. Will hopefully get around to trying out this week and if all looks good I'll merge it in. Thanks!
I added two parameters to the register_event method that allows receiving from the touch stream data.