Доработка. Обмен с Щ3, таймер переподключения. В контроле УФ добавлены источники питания, как индикатор неисправности прибора.

This commit is contained in:
MaD_CaT
2025-01-29 08:50:45 +03:00
parent c717ace9b5
commit f2a86ada32
7 changed files with 32 additions and 14 deletions

View File

@@ -49,6 +49,7 @@ class SocketTCP extends TCPServer:
class Modbus extends ModbusClientRtu:
var unit_name
func send_to(data):
if data['code'] == 'write':
var addr = data['data'].pop_at(0)
@@ -58,6 +59,14 @@ class Modbus extends ModbusClientRtu:
elif data['code'] == 'read_input':
request_read_input(data['data'][0], data['data'][1])
func try_reconnect():
var port = settings.UnitProfiles[unit_name][1]
var params = settings.UnitProfiles[unit_name][2]
thread_stop()
close()
open(port, params[1], params[0], params[2], params[3], params[4])
thread_run()
var poll_sockets: Array[Socket]
var tcp_sockets: Array
@@ -120,6 +129,7 @@ func create_modbus(nm, mbc_unit) -> Modbus:
mbc.connect('write', mbc_unit.on_write)
var _rc = mbc.open(port, params[1], params[0], params[2], params[3], params[4])
mbc.thread_run()
mbc.unit_name = nm
return mbc

View File

@@ -51,7 +51,7 @@ class Sch3 extends unit.Unit:
## [param tick] - Текущщее время в мс.[br]
func parse(message: Dictionary, tick: int) -> bool:
rx_tick = tick
if not online:
if not online and (message['code'] != 'exception'):
online = true
emit_signal('line_changed', self)
if message.has('code') and message.has('data'):