class_name spt25_unit extends Node class SPT25 extends unit.Unit: var tx_tick: int = 0 var req_period = 3000.0 ## Переиод запроса, мс func _to_string() -> String: return String('СПТ-25: %s %s' % [self.name, ['отключен', 'на связи'][int(online)]]) func _init(nm) -> void: self.name = nm tx_data.resize(8) tx_data[0] = 0x7e # Флаги синхронизации пакета tx_data[1] = 0 # Адрес абонента, которому предназначен пакет tx_data[2] = 4 # Тип пакета, КОД КОМАНДЫ - Получить информацию о состоянии преобразователя tx_data[3] = 0 # Данные tx_data[4] = 0 # Данные tx_data[5] = 0 # Данные tx_data[6] = 0 # Контрольная сумма tx_data[7] = 0x7e # Флаги синхронизации пакета func parse(rx_data: PackedByteArray): if not self.online: self.online = true emit_signal('line_changed', self) emit_signal('data_received', rx_data) func process(tick: float): if (tick - tx_tick) > req_period: tx_tick = tick return Error.OK return Error.ERR_BUSY