Исправление. Определение на связи/отключен
This commit is contained in:
@@ -68,7 +68,7 @@ class Modbus extends ModbusClientRtu:
|
||||
if rc != Error.OK:
|
||||
push_error('%s:%s %s' % [unit_name, port, params])
|
||||
return false
|
||||
set_indication_timeout(params[5])
|
||||
set_response_timeout(params[5])
|
||||
thread_run()
|
||||
return true
|
||||
|
||||
|
||||
@@ -47,8 +47,7 @@ class Sch3 extends unit.Unit:
|
||||
## Производит разбор принятых данных. Вызывать при приёме данных на сокете.[br]
|
||||
## [param data] - Данные принятые на сокете.[br]
|
||||
## [param tick] - Текущщее время в мс.[br]
|
||||
func parse(message: Dictionary, tick: int) -> bool:
|
||||
rx_tick = tick
|
||||
func parse(message: Dictionary) -> bool:
|
||||
if not online and (message['code'] != 'exception'):
|
||||
online = true
|
||||
emit_signal('line_changed', self)
|
||||
@@ -69,9 +68,6 @@ class Sch3 extends unit.Unit:
|
||||
var msg = message['data']
|
||||
emit_signal('info_received', msg)
|
||||
'exception':
|
||||
var msg = message['data']
|
||||
cmd_state = CmdState.FAIL
|
||||
emit_signal('except_received', msg)
|
||||
rc = false
|
||||
_:
|
||||
var msg: String = 'код команды \"%s\" - не распознан' % message_code
|
||||
@@ -86,6 +82,7 @@ class Sch3 extends unit.Unit:
|
||||
emit_signal('command_fail', self)
|
||||
return true
|
||||
|
||||
|
||||
## Отправляет команду "записать в регистры".[br]
|
||||
## [param addr] - Начальный адрес регистров.[br]
|
||||
## [param count] - Данные для записи в регистры от начального адреса.[br]
|
||||
@@ -120,14 +117,15 @@ class Sch3 extends unit.Unit:
|
||||
## [param data] - Данные прочитанные из регистров.[br]
|
||||
## [param tick] - Время приёма пакета.[br]
|
||||
func on_read(return_code, base_addr, data):
|
||||
var tick = Time.get_ticks_msec()
|
||||
var msg: Dictionary
|
||||
if return_code == Error.OK:
|
||||
rx_tick = Time.get_ticks_msec()
|
||||
msg['code'] = 'resp_holding'
|
||||
msg['data'] = [base_addr] + data
|
||||
else:
|
||||
msg['code'] = 'exception'
|
||||
parse(msg, tick)
|
||||
msg['data'] = 'операция чтения входных регистров не выполнена (%d)' % base_addr
|
||||
parse(msg)
|
||||
|
||||
|
||||
## Принимает результат команды "читать регистры входов".[br]
|
||||
@@ -136,14 +134,15 @@ class Sch3 extends unit.Unit:
|
||||
## [param data] - Данные прочитанные из регистров.[br]
|
||||
## [param tick] - Время приёма пакета.[br]
|
||||
func on_read_input(return_code, base_addr, data):
|
||||
var tick = Time.get_ticks_msec()
|
||||
var msg: Dictionary
|
||||
if return_code == Error.OK:
|
||||
rx_tick = Time.get_ticks_msec()
|
||||
msg['code'] = 'resp_input'
|
||||
msg['data'] = [base_addr] + data
|
||||
else:
|
||||
msg['code'] = 'exception'
|
||||
parse(msg, tick)
|
||||
msg['data'] = 'операция чтения входных регистров не выполнена (%d)' % base_addr
|
||||
parse(msg)
|
||||
|
||||
|
||||
## Принимает результат команды "записать в регистры".[br]
|
||||
@@ -151,12 +150,13 @@ class Sch3 extends unit.Unit:
|
||||
## [param base_addr] - Начальный адрес регистров.[br]
|
||||
## [param data] - Данные прочитанные из регистров.[br]
|
||||
## [param tick] - Время приёма пакета.[br]
|
||||
func on_write(return_code, _base_addr, _data):
|
||||
var tick = Time.get_ticks_msec()
|
||||
func on_write(return_code, base_addr, data):
|
||||
var msg: Dictionary
|
||||
if return_code == Error.OK:
|
||||
rx_tick = Time.get_ticks_msec()
|
||||
msg['data'] = []
|
||||
msg['code'] = 'resp_write'
|
||||
else:
|
||||
msg['code'] = 'exception'
|
||||
parse(msg, tick)
|
||||
msg['data'] = 'операция записи в регистры не выполнена (%d, %s)' % [base_addr, data]
|
||||
msg['code'] = 'except_received'
|
||||
parse(msg)
|
||||
|
||||
@@ -25,4 +25,4 @@ class Unit extends Object:
|
||||
var online: bool = false ## Состояние подключения устройства
|
||||
var name: String = '<без имени>' ## Уникальное имя устройства
|
||||
func _init(nm) -> void: self.name = nm
|
||||
func _to_string() -> String: return String('устройство: %s %s' % [self.name, ['отключен', 'на связи'][int(online)]])
|
||||
func _to_string() -> String: return String('<\"%s\", %s>' % [self.name, ['отключен', 'на связи'][int(online)]])
|
||||
|
||||
Reference in New Issue
Block a user