Доработка. Добавлена обработка адреса устройства Modbus
This commit is contained in:
@@ -80,21 +80,21 @@ def run_sync_client(udp_addr, udp_port_rx, udp_port_tx, serial_port, serial_baud
|
||||
rc = False
|
||||
if message['code'] == 'write':
|
||||
data = message['data']
|
||||
rq = client.write_registers(data[0], data[1:], unit=unit_num)
|
||||
rq = client.write_registers(data[0], data[1:], unit=message['unit'])
|
||||
rc = rq.isError()
|
||||
if not rc:
|
||||
tx_data = json_encoder.encode({'code': 'resp_write', 'data': ''})
|
||||
sock.sendto(bytes(tx_data, 'utf-8'), (udp_addr, udp_port_tx))
|
||||
elif message['code'] == 'read_holding':
|
||||
data = message['data']
|
||||
rq = client.read_holding_registers(data[0], data[1], unit=unit_num)
|
||||
rq = client.read_holding_registers(data[0], data[1], unit=message['unit'])
|
||||
rc = rq.isError()
|
||||
if not rc:
|
||||
tx_data = json_encoder.encode({'code': 'resp_holding', 'data': [data[0]] + rq.registers})
|
||||
sock.sendto(bytes(tx_data, 'utf-8'), (udp_addr, udp_port_tx))
|
||||
elif message['code'] == 'read_input':
|
||||
data = message['data']
|
||||
rq = client.read_input_registers(data[0], data[1], unit=unit_num)
|
||||
rq = client.read_input_registers(data[0], data[1], unit=message['unit'])
|
||||
rc = rq.isError()
|
||||
if not rc:
|
||||
tx_data = json_encoder.encode({'code': 'resp_input', 'data': [data[0]] + rq.registers})
|
||||
@@ -106,7 +106,7 @@ def run_sync_client(udp_addr, udp_port_rx, udp_port_tx, serial_port, serial_baud
|
||||
code = message['code']
|
||||
data = message['data']
|
||||
rc_msg = EXCEPT_MSGS[code]
|
||||
tx_data = json_encoder.encode({'code': 'exception', 'data': rc_msg})
|
||||
tx_data = json_encoder.encode({'code': 'exception', 'data': rc_msg, 'unit': message['unit']})
|
||||
sock.sendto(bytes(tx_data, 'utf-8'), (udp_addr, udp_port_tx))
|
||||
log.error(
|
||||
'ошибка при выполнении команды: \"%s\". данные: \"%s\", порт: \"%s\", скорость: %s'
|
||||
|
||||
Reference in New Issue
Block a user