Рефактор. Базовый класс для устройств

This commit is contained in:
sasha80
2024-10-24 11:04:02 +03:00
parent 3eb981526d
commit a90d694928
5 changed files with 34 additions and 37 deletions

18
scripts/unit.gd Normal file
View File

@@ -0,0 +1,18 @@
class_name base_unit extends Node
## Базовый класс для управления подключаемыми устройствами
class Unit:
signal line_changed(unit) ## Вызывается при изменение состояния связи
signal command_done(unit) ## Вызывается после выполнения команды.
signal command_fail(unit) ## Вызывается если возникла ошибка при выполнении команды и команда не выполнена.
signal parse_failed(unit) ## Вызывается при обнаружении ошибки во входных данных
signal data_received(unit) ## Вызывается по приёму данных
var tick = 0.0 ## Текущее тик-время в мс.
var tx_data: = PackedByteArray() ## Буфер отправленный.
var tx_len = 0 ## Длина последнего отправленного пакета.
var online: bool
var name: String
func _init(nm) -> void: self.name = nm
func _to_string() -> String: return String('устройство: %s %s' % [self.name, ['отключен', 'на связи'][int(online)]])