Skip to content

Conversation

@jfechete
Copy link

@jfechete jfechete commented Jan 2, 2023

I added two parameters to the register_event method that allows receiving from the touch stream data.

@MylesMor
Copy link
Owner

MylesMor commented Jan 2, 2023

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!

@jfechete
Copy link
Author

jfechete commented Jan 3, 2023

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}]}

@MylesMor
Copy link
Owner

MylesMor commented Jan 3, 2023

Awesome, thank you. Will hopefully get around to trying out this week and if all looks good I'll merge it in. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants