Loading poolpay/__main__.py +25 −8 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ from threading import Thread from types import FrameType from poolpay import db, paths from poolpay.card.CardReaderException import CardReaderException from poolpay.card.Pirc522CardReader import Pirc522CardReader from poolpay.director.Director import Director from poolpay.display.PygameDisplay import PygameDisplay Loading @@ -26,6 +27,28 @@ touch_screen = EvdevTouchScreen(Path("/dev/input/event0")) director = Director(play, display) def _initialize_card_reader_and_run() -> None: logging.info("Initializing Pirc522CardReader") with Pirc522CardReader() as card_reader: logging.info("Registering card removal handler") card_reader.on_card_removed(lambda reader: director.card_removed()) logging.info("Registering card placement handler and starting to wait") card_reader.on_card_placed( lambda reader: director.card_placed(reader.read_id()) ) def _initialize_card_reader_and_run_with_automatic_restart() -> None: while True: try: _initialize_card_reader_and_run() except CardReaderException as e: logging.error("Card reader errored, reinitialization needed") logging.exception(e) logging.debug("Proceeding to reinitialize card reader") def launch_application(password: str | None) -> None: if director.started: logging.warning( Loading @@ -40,21 +63,15 @@ def launch_application(password: str | None) -> None: else: logging.info("No password to open vault was given, so assuming it was already open") logging.info("Creating CardReader") with open_vault, Pirc522CardReader() as card_reader, touch_screen: with open_vault, touch_screen: try: logging.info("Opening database") db.open(paths.db_file) logging.info("Starting director") director.start() logging.info("Registering card removal handler") card_reader.on_card_removed(lambda reader: director.card_removed()) logging.info("Registering touch screen input handler") touch_screen.on_screen_touched(director.screen_touched) logging.info("Registering card placement handler and starting to wait") card_reader.on_card_placed( lambda reader: director.card_placed(reader.read_id()) ) _initialize_card_reader_and_run_with_automatic_restart() except Exception as e: logging.exception(e) raise e Loading poolpay/card/CardReaderException.py 0 → 100644 +2 −0 Original line number Diff line number Diff line class CardReaderException(Exception): pass Loading
poolpay/__main__.py +25 −8 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ from threading import Thread from types import FrameType from poolpay import db, paths from poolpay.card.CardReaderException import CardReaderException from poolpay.card.Pirc522CardReader import Pirc522CardReader from poolpay.director.Director import Director from poolpay.display.PygameDisplay import PygameDisplay Loading @@ -26,6 +27,28 @@ touch_screen = EvdevTouchScreen(Path("/dev/input/event0")) director = Director(play, display) def _initialize_card_reader_and_run() -> None: logging.info("Initializing Pirc522CardReader") with Pirc522CardReader() as card_reader: logging.info("Registering card removal handler") card_reader.on_card_removed(lambda reader: director.card_removed()) logging.info("Registering card placement handler and starting to wait") card_reader.on_card_placed( lambda reader: director.card_placed(reader.read_id()) ) def _initialize_card_reader_and_run_with_automatic_restart() -> None: while True: try: _initialize_card_reader_and_run() except CardReaderException as e: logging.error("Card reader errored, reinitialization needed") logging.exception(e) logging.debug("Proceeding to reinitialize card reader") def launch_application(password: str | None) -> None: if director.started: logging.warning( Loading @@ -40,21 +63,15 @@ def launch_application(password: str | None) -> None: else: logging.info("No password to open vault was given, so assuming it was already open") logging.info("Creating CardReader") with open_vault, Pirc522CardReader() as card_reader, touch_screen: with open_vault, touch_screen: try: logging.info("Opening database") db.open(paths.db_file) logging.info("Starting director") director.start() logging.info("Registering card removal handler") card_reader.on_card_removed(lambda reader: director.card_removed()) logging.info("Registering touch screen input handler") touch_screen.on_screen_touched(director.screen_touched) logging.info("Registering card placement handler and starting to wait") card_reader.on_card_placed( lambda reader: director.card_placed(reader.read_id()) ) _initialize_card_reader_and_run_with_automatic_restart() except Exception as e: logging.exception(e) raise e Loading
poolpay/card/CardReaderException.py 0 → 100644 +2 −0 Original line number Diff line number Diff line class CardReaderException(Exception): pass