From e9aa5408b0fd81f9d32b26d2d76e046d1ded5bdc Mon Sep 17 00:00:00 2001 From: sasha80 Date: Wed, 26 Mar 2025 13:58:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.=20=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=A1=D0=9F?= =?UTF-8?q?=D0=A2-25?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/spt25.gd | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/scripts/spt25.gd b/scripts/spt25.gd index 9a931104..a0bc53ac 100644 --- a/scripts/spt25.gd +++ b/scripts/spt25.gd @@ -5,6 +5,12 @@ const REQUEST_PERIOD: int = 3000 ## Переиод запроса, мс class SPT25 extends unit.Unit: + enum CmdCode { + START = 0, + STOP = 2, + INFO = 4, + } + func _to_string() -> String: return String('СПТ-25 %s %s' % [self.name, ['отключен', 'на связи'][int(online)]]) func _init(nm) -> void: @@ -22,12 +28,18 @@ class SPT25 extends unit.Unit: func parse(rx_data: PackedByteArray, tick: int): rx_tick = tick - if not online: - online = true - emit_signal('line_changed', self) if rx_data.size() <= 6: emit_signal('parse_failed', self) return + if rx_data[0] != 0x7e: + emit_signal('parse_failed', self) + return + if not (rx_data[2] in [CmdCode.START, CmdCode.STOP, CmdCode.INFO]): + emit_signal('parse_failed', self) + return + if not online: + online = true + emit_signal('line_changed', self) emit_signal('data_received', rx_data)