Доработка. WIP Приём данных из сети
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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-адрес для передачи команд информационному ЭМС устройству'],
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user