Better logging
[saartuer.git] / tuerd
1 #!/usr/bin/python3
2 import RPi.GPIO as GPIO
3 import statemachine, actor, pins, tysock, waker
4 from libtuer import logger
5 import argparse
6
7 # Parse arguments
8 parser = argparse.ArgumentParser(description='Run a door')
9 parser.add_argument("-d", "--debug",
10                                         action="store_true", dest="debug",
11                                         help="Don't send emails")
12 args = parser.parse_args()
13 if args.debug:
14         import libtuer
15         libtuer.mailAddress = []
16
17 # Not let's go!
18 logger.info("Starting up...")
19
20 # initialize GPIO stuff
21 GPIO.setmode(GPIO.BOARD)
22
23 # bring 'em all up
24 the_actor = actor.Actor()
25 the_machine = statemachine.StateMachine(the_actor)
26 the_socket = tysock.TySocket(the_machine)
27 the_pins = pins.PinsWatcher(the_machine)
28 the_waker = waker.Waker(the_machine)
29
30 # we do the socket accept thing in the main thread
31 try:
32         the_socket.accept()
33 except KeyboardInterrupt:
34         # this is what we waited for!
35         logger.info("Got SIGINT, terminating...")
36         pass
37
38 # bring 'em all down
39 the_waker.stop()
40 the_pins.stop()
41 the_machine.stop()
42 the_actor.stop()
43
44 # shutdown GPIO stuff
45 GPIO.cleanup()