Files
uarep-ctl/scripts/capsrpb.gd
2023-07-25 14:29:30 +03:00

39 lines
1.1 KiB
GDScript

extends Node
const ONLINE_TIMEOUT = 5.0 # Время ожидания пакета от ячейки, секунды
const BUFFER_SIZE = 2048
class CapsRpb:
signal line_changed(unit: CapsRpb)
signal command_done(unit: CapsRpb)
signal command_fail(unit: CapsRpb)
var online: = false
var name: = String()
var test_json_conv: JSON
var tick: = 0.0
var tick_rx: = 0.0
func _to_string() -> String: return String('капсрпб: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]])
func _init(nm):
test_json_conv = JSON.new()
self.name = nm
func parse(data):
tick_rx = tick
if not online:
online = true
emit_signal('line_changed', self)
var utf8_data = data.get_string_from_utf8()
test_json_conv.parse(utf8_data)
var json = test_json_conv.get_data()
print_debug(json)
func process(delta: float):
tick += delta
if online and ((tick - tick_rx) > ONLINE_TIMEOUT):
online = false
emit_signal('line_changed', self)