Доработка. Обмен с Щ3, таймер переподключения. В контроле УФ добавлены источники питания, как индикатор неисправности прибора.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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'):
|
||||
|
||||
Reference in New Issue
Block a user