Selex simulator

This commit is contained in:
Eden Kirin
2025-10-24 13:47:35 +02:00
parent 54157a8c16
commit 569866d404
4 changed files with 520 additions and 2 deletions

24
main.py
View File

@ -12,11 +12,12 @@ from loguru import logger
# Import simulators
from source.glory import GlorySimulator
from source.pelican import PelicanSimulator
from source.selex import SelexSimulator
def main():
parser = argparse.ArgumentParser(
description="Device Simulator - Run Pelican or Glory MACH6 simulator",
description="Device Simulator - Run Pelican, Glory MACH6, or Selex simulator",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
Examples:
@ -26,9 +27,13 @@ Examples:
# Run Glory simulator
python main.py glory --port /dev/ttyUSB1 --baudrate 9600
# Run Selex simulator
python main.py selex --port /dev/ttyUSB2 --baudrate 9600
# Get help for specific simulator
python main.py pelican --help
python main.py glory --help
python main.py selex --help
""",
)
@ -65,6 +70,20 @@ Examples:
"--baudrate", "-b", type=int, default=115200, help="Baud rate (default: 115200)"
)
# Selex simulator subcommand
selex_parser = subparsers.add_parser(
"selex", help="Run Selex coin counter simulator"
)
selex_parser.add_argument(
"--port",
"-p",
default="/dev/ttyUSB0",
help="Serial port (default: /dev/ttyUSB0)",
)
selex_parser.add_argument(
"--baudrate", "-b", type=int, default=9600, help="Baud rate (default: 9600)"
)
args = parser.parse_args()
# Configure loguru logger
@ -88,6 +107,9 @@ Examples:
elif args.simulator == "glory":
simulator = GlorySimulator(port=args.port, baudrate=args.baudrate)
simulator.run()
elif args.simulator == "selex":
simulator = SelexSimulator(port=args.port, baudrate=args.baudrate)
simulator.run()
except KeyboardInterrupt:
logger.info("Simulator stopped by user")
sys.exit(0)