197 lines
5.8 KiB
Python
197 lines
5.8 KiB
Python
import threading
|
|
from pynput.keyboard import Key, Listener
|
|
from ..data_types.enums import TargetHistory, RdrModes
|
|
from .utils import *
|
|
from ..messages import *
|
|
# import gui
|
|
|
|
|
|
|
|
def start():
|
|
|
|
print("LIB STARTED.")
|
|
|
|
# a1 = A1()
|
|
# a1.message.settings.set_history_level(TargetHistory.TARGET_HISTORY_LEVEL_04)
|
|
# a1.message.settings.str.rdr_symbology_intensity = 127
|
|
# a2 = A2()
|
|
# a2.message.rdr_mode_command.set_master_mode(RdrModes.RWS)
|
|
# a2.message.param1.set_gm_submode(0)
|
|
|
|
# # a3 = A3()
|
|
|
|
# a4 = A4()
|
|
# a4.message.validity_and_slew.raw = 0
|
|
|
|
b6 = MessageNew("B6",MsgRdrSettingsAndParametersTellback,10,16,True)
|
|
b7 = MessageNew("B7",MsgRdrStatusTellback,25,17,True)
|
|
# B1: TWS Status and Targets (request)
|
|
try:
|
|
from ..messages.tws_status_and_targets import TwsStatusAndTargets0102
|
|
b1 = MessageNew("B1", TwsStatusAndTargets0102, 10, 11, True)
|
|
except Exception:
|
|
b1 = None
|
|
# B2: placeholder using same structure (subAddr 12)
|
|
try:
|
|
b2 = MessageNew("B2", TwsStatusAndTargets0102, 10, 12, True)
|
|
except Exception:
|
|
b2 = None
|
|
# B3: placeholder using same structure (subAddr 13)
|
|
try:
|
|
b3 = MessageNew("B3", TwsStatusAndTargets0102, 10, 13, True)
|
|
except Exception:
|
|
b3 = None
|
|
# B4: placeholder using same structure (subAddr 14)
|
|
try:
|
|
b4 = MessageNew("B4", TwsStatusAndTargets0102, 10, 14, True)
|
|
except Exception:
|
|
b4 = None
|
|
# B5..B18 placeholders (subAddr 15..28)
|
|
try:
|
|
b5 = MessageNew("B5", TwsStatusAndTargets0102, 10, 15, True)
|
|
except Exception:
|
|
b5 = None
|
|
try:
|
|
b8 = MessageNew("B8", TwsStatusAndTargets0102, 10, 18, True)
|
|
except Exception:
|
|
b8 = None
|
|
try:
|
|
b9 = MessageNew("B9", TwsStatusAndTargets0102, 10, 19, True)
|
|
except Exception:
|
|
b9 = None
|
|
try:
|
|
b10 = MessageNew("B10", TwsStatusAndTargets0102, 10, 20, True)
|
|
except Exception:
|
|
b10 = None
|
|
try:
|
|
b11 = MessageNew("B11", TwsStatusAndTargets0102, 10, 21, True)
|
|
except Exception:
|
|
b11 = None
|
|
try:
|
|
b12 = MessageNew("B12", TwsStatusAndTargets0102, 10, 22, True)
|
|
except Exception:
|
|
b12 = None
|
|
try:
|
|
b13 = MessageNew("B13", TwsStatusAndTargets0102, 10, 23, True)
|
|
except Exception:
|
|
b13 = None
|
|
try:
|
|
b14 = MessageNew("B14", TwsStatusAndTargets0102, 10, 24, True)
|
|
except Exception:
|
|
b14 = None
|
|
try:
|
|
b15 = MessageNew("B15", TwsStatusAndTargets0102, 10, 25, True)
|
|
except Exception:
|
|
b15 = None
|
|
try:
|
|
b16 = MessageNew("B16", TwsStatusAndTargets0102, 10, 26, True)
|
|
except Exception:
|
|
b16 = None
|
|
try:
|
|
b17 = MessageNew("B17", TwsStatusAndTargets0102, 10, 27, True)
|
|
except Exception:
|
|
b17 = None
|
|
try:
|
|
b18 = MessageNew("B18", TwsStatusAndTargets0102, 10, 28, True)
|
|
except Exception:
|
|
b18 = None
|
|
# print(MessageDB.getAllMessages())
|
|
# print(b7.label)
|
|
# exit()
|
|
|
|
# a1 = A1()
|
|
a1 = MessageNew("A1",MsgRdrSettingsAndParameters,10,1)
|
|
a1.message.settings.set_history_level(TargetHistory.TARGET_HISTORY_LEVEL_04)
|
|
a1.message.settings.str.rdr_symbology_intensity = 127
|
|
# a2 = A2()
|
|
a2 = MessageNew("A2",MsgRdrOperationCommand,25,2)
|
|
a2.message.rdr_mode_command.set_master_mode(RdrModes.RWS)
|
|
a2.message.param1.set_gm_submode(0)
|
|
a2.message.param2.set_spare_0_4(0)
|
|
# a3 = A3()
|
|
print(MessageDB.getMessage("A2"))
|
|
a3 = MessageNew("A3",MsgGraphicSetting,10,3)
|
|
|
|
print(a3.head.cw.raw)
|
|
print(a3.size)
|
|
|
|
# a4 = A4()
|
|
a4 = MessageNew("A4",MsgNavDataAndCursor,50,4)
|
|
a4.message.validity_and_slew.raw = 0
|
|
|
|
# a5 = A5()
|
|
a5 = MessageNew("A5",MsgInuHighSpeed,50,5)
|
|
a5.message.timetag.raw = 0
|
|
|
|
# Data-link targets A7 / A8
|
|
a7 = MessageNew("A7", Msg1DataLinkTarget, 20, 7)
|
|
a8 = MessageNew("A8", Msg2DataLinkTarget, 20, 8)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# print(isA(a2), isA(a4), isA(a5))
|
|
|
|
# b1 =Message(TwsStatusAndTargets0102,11, True)
|
|
# b1 =Message(TwsStatusAndTargets0102,11, True)
|
|
|
|
# print(vars(RdrModes))
|
|
# print(list(RdrModes)[1].name + " = " + str(list(RdrModes)[1].value))
|
|
|
|
# def send_frame_at_right_time(stop, canSend):
|
|
# print("Sending frames...")
|
|
# while not stop.is_set():
|
|
# for key in MajorFrame.get_majorFrame().keys():
|
|
# if current_milli_time() % key == 0 and canSend.is_set():
|
|
# A5().update_A5_time()
|
|
# udp_msg = prepare_udp_message(MajorFrame.get_majorFrame()[key])
|
|
# send_udp_msg(udp_msg)
|
|
|
|
|
|
def listen_for_command():
|
|
with Listener(on_press = keypressed) as listener:
|
|
listener.join()
|
|
|
|
canSend.set()
|
|
|
|
guii = True
|
|
|
|
t1 = threading.Thread(target = MajorFrame.send_frame_at_right_time_new, args=[STOP_ALL,canSend])
|
|
t2 = threading.Thread(target=recv_messages)
|
|
# t3 = threading.Thread(target=gui.main_menu) if guii else None
|
|
# t4 = threading.Thread(target=listen_for_command)
|
|
|
|
t1.start()
|
|
t2.start()
|
|
# t3.start() if guii else None
|
|
# t4.start()
|
|
|
|
# while not STOP_ALL.is_set():
|
|
# # udp_msg = prepare_udp_message([a5])
|
|
# # send_udp_msg(udp_msg)
|
|
# # print(f"Size of A5: {ctypes.sizeof(MsgInuHighSpeed)}")
|
|
# # print("PREPARE")
|
|
# print(isA(b1))
|
|
# udp_msg = prepare_udp_message([b1])
|
|
# print("Send")
|
|
|
|
# send_udp_msg(udp_msg)
|
|
# time.sleep(3)
|
|
# # print(RdrModes.__dict__.items())
|
|
# # def stampa_class_constants(cls):
|
|
# # for name, value in cls.__dict__.items():
|
|
# # if not name.startswith("__") and not callable(value):
|
|
# # print(f"{name} = {value}")
|
|
# # stampa_class_constants(RdrModes)
|
|
|
|
|
|
|
|
t1.join()
|
|
t2.join()
|
|
# t3.join()
|
|
# t4.join()
|
|
|
|
print("Program Terminated.")
|