-
Notifications
You must be signed in to change notification settings - Fork 0
/
example_usage_signal.py
45 lines (37 loc) · 1.34 KB
/
example_usage_signal.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# !/usr/bin/python
# -*- coding: utf-8 -*-
import signal
from pitft_touchscreen import pitft_touchscreen
from time import sleep
class example_usage_signal():
# Init touchscreen
ts = pitft_touchscreen()
running = True
@classmethod
def shutdown(cls, signum, frame):
print("Shutdown detected. Exiting")
# Set flag to stop processing events
cls.running = False
@classmethod
def start(cls):
# Set signals to be handled by shutdown method.
signal.signal(signal.SIG_IGN, cls.shutdown)
signal.signal(signal.SIGTERM, cls.shutdown)
cls.ts.start()
print("Touchscreen events will be collected until CTL-C is pressed.")
try:
while cls.running:
# Handle waiting events
if not cls.ts.queue_empty():
for e in cls.ts.get_event():
print("Event received: {}".format(e))
sleep(0.01)
except KeyboardInterrupt:
# Keeps error from displaying when CTL-C is pressed
print(""),
finally:
# Since we are about to exit, cancel SIG_IGN handler
signal.signal(signal.SIGINT, signal.SIG_IGN)
# In real program you need to call stop to stop collecting events
cls.ts.stop()
example_usage_signal.start()