import time import socket import os import sys repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) if repo_root not in sys.path: sys.path.insert(0, repo_root) from pymsc.core.app_controller import AppController from pymsc.lib1553.structures import Udp1553Header, Udp1553Message, CommandWord from pymsc.lib1553.constants import Marker import ctypes print('E2E Test: avvio AppController') app = AppController() app.start() # attendi che il receiver sia pronto time.sleep(0.2) print('E2E Test: costruisco frame di prova (header + msg + payload + END_MARKER)') header = Udp1553Header() header.marker_1553 = Marker.START_1553 header.o_type = 0x5452 cw = CommandWord(wc=32, sa=1, tr=0, rt=20) msg_wrapper = Udp1553Message(marker=Marker.CTRL_BEGIN, cw=cw) payload = b'\x00' * 64 packet = bytes(header) + bytes(msg_wrapper) + payload + bytes(ctypes.c_uint16(Marker.END_1553)) print(f'E2E Test: invio frame a 127.0.0.1:{app.udp_recv_port}') sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.sendto(packet, ('127.0.0.1', app.udp_recv_port)) # lasciare tempo al receiver di processare time.sleep(0.5) print('E2E Test: contenuto della monitor_queue:') while not app.monitor_queue.empty(): item = app.monitor_queue.get() print(item) print('E2E Test: fermo AppController') app.stop() print('E2E Test completato')