From e48e9c48b037a367e43d4c150ea41e7b8675f9a3 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Tue, 9 Sep 2025 16:12:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20"=D0=A2=D1=80=D0=B0=D1=81=D1=81=D1=8B"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project.godot | 1 + scripts/network.gd | 18 ++++++++++-------- scripts/settings.gd | 3 ++- scripts/trassa.gd | 12 ++++++++++++ scripts/trassa.gd.uid | 1 + 5 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 scripts/trassa.gd create mode 100644 scripts/trassa.gd.uid diff --git a/project.godot b/project.godot index 899f9c22..5a6acf44 100644 --- a/project.godot +++ b/project.godot @@ -60,6 +60,7 @@ spt25="*res://scripts/spt25.gd" astrakb="*res://scripts/astra-kb.gd" prd="*res://scripts/prd.gd" navi="*res://scripts/navigation.gd" +trassa="*res://scripts/trassa.gd" [debug] diff --git a/scripts/network.gd b/scripts/network.gd index 6369ed2a..31f19575 100644 --- a/scripts/network.gd +++ b/scripts/network.gd @@ -1,7 +1,7 @@ class_name Network extends Node const YAU07_PROTO: = {'yau07tx': yau07.YaU07} -const CAPS_PROTO: = {'capsrpb': capsrpb.CapsRpb} +const UDP_PROTO: = {'capsrpb': capsrpb.CapsRpb, 'trassa': trassa.Trassa} const TCP_PROTO: = {'5p28': tcp5p28.TCP5P28} const SERIAL_PROTO: = {'spt25': spt25.SPT25} const MODBUS_PROTO: = {'mbcs': sch3.Sch3} @@ -152,14 +152,14 @@ func create_socket_udp(unit_name: StringName) -> SocketUDP: func create_socket_caps(unit_name: StringName) -> SocketUDP: var st = settings.UnitProfiles[unit_name][1] var addr = st[0] - var port0 = st[1] + var port = st[1] var sock: = SocketUDP.new() - var rc: = sock.bind(port0, addr) + var rc: = sock.bind(port, addr) if rc == Error.OK: - log.info('\"%s\" привязан к %s:%d' % [unit_name, addr, port0]) + log.info('\"%s\" привязан к %s:%d' % [unit_name, addr, port]) else: var errmsg = error_string(rc) - log.error('привязка \"%s\" к %s:%d не удалась: \"%s\"' % [unit_name, addr, port0, errmsg]) + log.error('привязка \"%s\" к %s:%d не удалась: \"%s\"' % [unit_name, addr, port, errmsg]) return sock @@ -202,10 +202,12 @@ func _ready() -> void: var sock_broadcast: = create_socket_udp('уарэп-яу07-общий') var sock_navi: = create_socket_udp('навигация') var sock_caps: = create_socket_caps('уарэп-капсрпб') - poll_sockets = [sock_unicast, sock_broadcast, sock_caps, sock_navi] + var sock_trassa: = create_socket_caps('уарэп-трасса') + poll_sockets = [sock_unicast, sock_broadcast, sock_caps, sock_navi, sock_trassa] send_sockets['уарэп-яу07-частный'] = sock_unicast send_sockets['уарэп-яу07-общий'] = sock_broadcast send_sockets['уарэп-капсрпб'] = sock_caps + send_sockets['уарэп-трасса'] = sock_trassa send_sockets['уарэп-эмс'] = sock_unicast send_sockets['уарэп-яу07-2в'] = sock_unicast send_sockets['уарэп-яу07-2н'] = sock_unicast @@ -242,8 +244,8 @@ func _ready() -> void: var addr_port: = StringName('%s:%d' % [unit_profile[0], unit_profile[1]]) addr_port_to_unit_name[addr_port] = unit_name - if proto in CAPS_PROTO: - var new_unit = CAPS_PROTO[proto].new(unit_name) + if proto in UDP_PROTO: + var new_unit = UDP_PROTO[proto].new(unit_name) units[unit_name] = new_unit units_udptx[unit_name] = new_unit dst_addrs[unit_name] = unit_profile[0] diff --git a/scripts/settings.gd b/scripts/settings.gd index c0a2a3cd..09246d63 100644 --- a/scripts/settings.gd +++ b/scripts/settings.gd @@ -9,7 +9,8 @@ var UnitProfiles: Dictionary[StringName, Array] = { \ # < Название: Протокол, Адрес, <Порт>|[, Порт], Широковещательное, Привязывать, Комментарий > 'уарэп-яу07-частный': ['yau07rx', ['10.1.1.2', 50002, false, true], 'IP-адрес для приёма частных сообщений от ЯУ-07'], 'уарэп-яу07-общий': ['yau07rx', ['*', 50000, true, true], 'IP-адрес для приёма широковещательных сообщений от ЯУ-07'], - 'уарэп-капсрпб': ['capsrpb', ['127.0.0.1', 42023, 42022, false, true], 'IP-адрес для приёма сообщений от службы \"МП550\"'], + 'уарэп-капсрпб': ['capsrpb', ['127.0.0.1', 42023, 42022, false, true], 'IP-адрес для обмена сообщениями со службой \"МП550\" (СТЦ)'], + 'уарэп-трасса': ['capsrpb', ['127.0.0.1', 50200, 40241, false, true], 'IP-адрес для обмена сообщениями с \"Трассой\"'], 'уарэп-эмс': ['yau07tx', ['10.1.1.52', 50052, false, false], 'IP-адрес прибора УФ'], 'уарэп-яу07-2в': ['yau07tx', ['10.1.1.22', 50022, false, false], 'IP-адрес прибора ПРД-В2'], 'уарэп-яу07-2н': ['yau07tx', ['10.1.1.21', 50021, false, false], 'IP-адрес прибора ПРД-Н2'], diff --git a/scripts/trassa.gd b/scripts/trassa.gd new file mode 100644 index 00000000..164afa3e --- /dev/null +++ b/scripts/trassa.gd @@ -0,0 +1,12 @@ +class_name trassa_unit extends Node + + +class Trassa extends unit.Unit: + func process(tick: int): + return Error.ERR_BUSY + + func _init(unit_name: StringName): + self.name = unit_name + + func parse(data: PackedByteArray, now_tick: int): + pass diff --git a/scripts/trassa.gd.uid b/scripts/trassa.gd.uid new file mode 100644 index 00000000..49fe708f --- /dev/null +++ b/scripts/trassa.gd.uid @@ -0,0 +1 @@ +uid://s0xvnch1r63u