This commit is contained in:
Eden Kirin
2025-10-09 17:22:11 +02:00
parent 0a29898bf4
commit 1955256d06
4 changed files with 231 additions and 51 deletions

24
main.py
View File

@ -5,6 +5,7 @@ Entry point for running Pelican or Glory device simulators.
"""
import argparse
import logging
import sys
from glory import GlorySimulator
@ -12,6 +13,8 @@ from glory import GlorySimulator
# Import simulators
from pelican import PelicanSimulator
LOG_LEVEL = logging.DEBUG
def main():
parser = argparse.ArgumentParser(
@ -66,25 +69,30 @@ Examples:
args = parser.parse_args()
# Setup centralized logger
logging.basicConfig(
level=LOG_LEVEL,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
)
logger = logging.getLogger(f"{args.simulator}_simulator")
# Run the appropriate simulator
try:
if args.simulator == "pelican":
print(
f"Starting Pelican simulator on {args.port} at {args.baudrate} baud..."
simulator = PelicanSimulator(
logger=logger, port=args.port, baudrate=args.baudrate
)
simulator = PelicanSimulator(args.port, args.baudrate)
simulator.run()
elif args.simulator == "glory":
print(
f"Starting Glory MACH6 simulator on {args.port} at {args.baudrate} baud..."
simulator = GlorySimulator(
logger=logger, port=args.port, baudrate=args.baudrate
)
simulator = GlorySimulator(args.port, args.baudrate)
simulator.run()
except KeyboardInterrupt:
print("\nSimulator stopped by user")
logger.info("Simulator stopped by user")
sys.exit(0)
except Exception as e:
print(f"Error: {e}", file=sys.stderr)
logger.error(f"Error: {e}", exc_info=True)
sys.exit(1)