pizzabox-main/pizzactrl/main.py
2022-01-24 14:49:06 +01:00

40 lines
1,014 B
Python

import sys
import click
import logging
from pizzactrl.statemachine import Statemachine, State
from pizzactrl.sb_showcase import STORYBOARD
from pizzactrl.hal_serial import PizzaHAL
logger = logging.getLogger('pizzactrl.main')
@click.command()
@click.option('--move', is_flag=True)
@click.option('--test', is_flag=True, default=False)
@click.option('--debug', is_flag=True, default=False)
@click.option('--loop', is_flag=True, default=False)
def main(move: bool=False, test: bool=False, debug: bool=False, loop: bool=False):
if debug or test:
logging.basicConfig(level=logging.DEBUG, stream=sys.stdout)
else:
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
hal = PizzaHAL()
sm = Statemachine(hal, STORYBOARD, move=move, loop=loop, test=test)
sm.test = test
exitcode = 0
try:
sm.run()
finally:
if sm.state is State.ERROR:
exitcode = 2
del sm
sys.exit(exitcode)
if __name__ == '__main__':
main()