54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
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() |