Skip to content

Commit e34d88f

Browse files
add switch example
Signed-off-by: Francois Berder <[email protected]>
1 parent 3fa0028 commit e34d88f

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

examples/switch_example.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env python3
2+
"""This example shows how to add/remove callbacks to particular switch events.
3+
"""
4+
5+
from letmecreate.core import switch
6+
from letmecreate.core.switch import SWITCH_1_PRESSED, SWITCH_2_PRESSED
7+
from letmecreate.core.switch import SWITCH_1_RELEASED, SWITCH_2_RELEASED
8+
from time import sleep
9+
10+
11+
def switch_pressed():
12+
print("A switch has been pressed")
13+
14+
15+
def switch_released():
16+
print("A switch has been released")
17+
18+
19+
# Initialise the switch and attach two callbacks
20+
switch.init()
21+
callback_id_pressed = switch.add_callback(SWITCH_1_PRESSED | SWITCH_2_PRESSED,
22+
switch_pressed)
23+
callback_id_released = switch.add_callback(SWITCH_1_RELEASED|SWITCH_2_RELEASED,
24+
switch_released)
25+
26+
# Sleep main thread during 15 seconds.
27+
# The switch wrapper lives in another thread and will call switch_pressed
28+
# and switch_released
29+
print("Callbacks are now active for 15 seconds.")
30+
sleep(15)
31+
32+
# Remove callbacks and release switch
33+
# In this case, it is not necessary to call switch.remove_callback()
34+
# since callbacks would get destroyed in switch.release().
35+
switch.remove_callback(callback_id_pressed)
36+
switch.remove_callback(callback_id_released)
37+
switch.release()

0 commit comments

Comments
 (0)