Files
uarep-ctl/scripts/yems-info.gd

26 lines
986 B
GDScript

extends Node
class YeMSInfo extends unit.Unit:
static var json_conv: = JSON.new()
var online_timeout: float = 5000 ## Должен быть равен наибольшему времени дотоверности из всех кластеров
var info: = Dictionary()
func parse(data: PackedByteArray, now_tick: int):
self.rx_tick = now_tick
if not online:
online = true
emit_signal('line_changed', self)
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', self)
else:
var msg = json_conv.get_error_message()
emit_signal('parse_error', self, msg)
func process(now_tick: int):
if online and ((now_tick - rx_tick) > online_timeout):
online = false
emit_signal('line_changed', self)
return Error.ERR_BUSY