#!/usr/bin/python3 import RPi.GPIO as GPIO import statemachine, actor, pins, tysock, waker # initialize GPIO stuff GPIO.setmode(GPIO.BOARD) # bring 'em all up the_actor = actor.Actor() the_machine = statemachine.StateMachine(the_actor) the_socket = tysock.TySocket(the_machine) the_pins = pins.PinsWatcher(the_machine) the_waker = waker.Waker(the_machine) # we do the socket accept thing in the main thread try: the_socket.accept() except KeyboardInterrupt: # this is what we waited for! pass # bring 'em all down the_waker.stop() the_pins.stop() the_socket.stop() the_machine.stop() the_actor.stop() # shutdown GPIO stuff GPIO.cleanup()