import time import sys from .core.network import UdpHandler from .core.dispatcher import MessageDispatcher from .utils.printer import dump_message # Configuration RX_IP = "127.0.0.1" RX_PORT = 61553 # Listening port for the Monitor def main(): print("--------------------------------------------------") print(" PyBusMonitor1553 - Console Mode") print("--------------------------------------------------") # 1. Initialize Components dispatcher = MessageDispatcher() network = UdpHandler(rx_ip=RX_IP, rx_port=RX_PORT) # 2. Define the callback def on_packet(data, addr): # Header parsing and Message Dispatching header, msg = dispatcher.parse_packet(data) if msg: # If successfully decoded, print details print(f"[RX] From {addr[0]}:{addr[1]} | Type: {msg.__class__.__name__}") dump_message(msg) elif header: # Valid UDP header but unknown 1553 message print(f"[RX] From {addr[0]}:{addr[1]} | Unknown/Invalid 1553 Message") else: # Garbage data print(f"[RX] From {addr[0]}:{addr[1]} | Invalid Packet Structure") # 3. Register callback and start network.register_callback(on_packet) network.start() print(f"Monitoring started on {RX_IP}:{RX_PORT}") print("Press Ctrl+C to stop.") # 4. Main Loop try: while True: time.sleep(1) except KeyboardInterrupt: print("\nStopping...") finally: network.stop() sys.exit(0) if __name__ == "__main__": main()