Доработка. WIP Приём данных из сети

This commit is contained in:
sasha80
2026-03-19 13:03:32 +03:00
parent aea48c7d9e
commit 8c4a966654
3 changed files with 19 additions and 6 deletions

View File

@@ -13,12 +13,15 @@ extends Panel
@export var table_header_text: Array[String]
var table_cell_row: Array
var name_to_index: Dictionary[StringName, int] ## Имена устройств (Имя устройства -> Индекс)
var yems_data_info: Dictionary
var yems_data_cmd: Dictionary
func _ready() -> void:
for i in index_to_unit_names.size():
var nm: = index_to_unit_names[i]
name_to_index[nm] = i
yems_data_info[nm] = {}
var header_row: = []
for cell_scn in table_headers:
header_row.append(load(cell_scn))
@@ -42,4 +45,13 @@ func _ready() -> void:
func on_data_received(data, nm):
print_debug('%s %s' % [nm, data])
yems_data_info[nm].merge(data, true)
map_yems_data()
func map_yems_data():
var yems_scales = get_tree().get_nodes_in_group('ряд-шкалы')
for node in yems_scales:
var unit_name = node.get_meta('unit_name')
var scale_data = yems_data_info.get(unit_name)
print_debug(scale_data)

View File

@@ -28,12 +28,12 @@ var UnitProfiles: Dictionary[StringName, Array] = { \
'навигация': ['navi', ['*', 60000, true, true ], 'IP-адрес на котором принимают сообщения от навигации'],
# < Название: [протокол, [адрес, порт, широковещательное, привязывать], комментарий >
'эмс-ведущий': ['iyems-rx', ['192.168.10.1', 61000, false, true], 'IP-адрес для приёма докладов от информационных ЭМС устройств'],
'эмс-ведущий': ['iyems-rx', ['127.0.0.1', 61000, false, true], 'IP-адрес для приёма докладов от информационных ЭМС устройств'],
'эмс-ор63': ['iyems-tx', ['192.168.10.2', 61001, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],
'эмс-454': ['iyems-tx', ['192.168.10.3', 61002, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],
'эмс-го': ['iyems-tx', ['192.168.10.4', 61003, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],
'эмс-рлс1': ['iyems-tx', ['192.168.10.5', 61004, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],
'эмс-рлс2': ['iyems-tx', ['192.168.10.6', 61005, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],
'эмс-рлс2': ['iyems-tx', ['127.0.0.1', 61005, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],
'эмс-ннвс': ['iyems-tx', ['192.168.10.7', 61006, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],
'эмс-изделие7': ['iyems-tx', ['192.168.10.8', 61007, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],
'эмс-изделие8': ['iyems-tx', ['192.168.10.9', 61008, false, false], 'IP-адрес для передачи команд информационному ЭМС устройству'],

View File

@@ -4,7 +4,8 @@ extends Node
class YeMSInfo extends unit.Unit:
static var json_conv: = JSON.new()
var online_timeout: float = 5000 ## Должен быть равен наибольшему времени дотоверности из всех кластеров
var info: = Dictionary()
var info: = Dictionary() ## Доклад о состоянии
var cmd: = Dictionary() ## Команда
func parse(data: PackedByteArray, now_tick: int):
self.rx_tick = now_tick
if not online:
@@ -13,9 +14,9 @@ class YeMSInfo extends unit.Unit:
var utf8_data: = data.get_string_from_utf8()
if Error.OK == json_conv.parse(utf8_data):
info.merge(json_conv.get_data(), true)
emit_signal('data_received', utf8_data)
emit_signal('data_received', info)
else:
var msg = json_conv.get_error_message()
var msg: = json_conv.get_error_message()
emit_signal('parse_error', self, msg)
func process(now_tick: int):