47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
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')
|