1
0
mirror of https://github.com/thingsboard/thingsboard-gateway synced 2025-10-26 22:31:42 +08:00

Merge pull request #1083 from samson0v/master

This commit is contained in:
Illia Barkov
2023-03-24 11:40:56 +02:00
committed by GitHub
2 changed files with 15 additions and 4 deletions

View File

@@ -48,12 +48,12 @@ from pymodbus.bit_write_message import WriteSingleCoilResponse, WriteMultipleCoi
from pymodbus.register_write_message import WriteMultipleRegistersResponse, WriteSingleRegisterResponse
from pymodbus.register_read_message import ReadRegistersResponseBase
from pymodbus.bit_read_message import ReadBitsResponseBase
from pymodbus.client import ModbusTcpClient, ModbusUdpClient, ModbusSerialClient
from pymodbus.client import ModbusTcpClient, ModbusTlsClient, ModbusUdpClient, ModbusSerialClient
from pymodbus.framer.rtu_framer import ModbusRtuFramer
from pymodbus.framer.socket_framer import ModbusSocketFramer
from pymodbus.framer.ascii_framer import ModbusAsciiFramer
from pymodbus.exceptions import ConnectionException, ModbusIOException
from pymodbus.server import StartTcpServer, StartUdpServer, StartSerialServer, ServerStop
from pymodbus.server import StartTcpServer, StartTlsServer, StartUdpServer, StartSerialServer, ServerStop
from pymodbus.device import ModbusDeviceIdentification
from pymodbus.version import version
from pymodbus.datastore import ModbusSlaveContext, ModbusServerContext
@@ -74,6 +74,7 @@ FRAMER_TYPE = {
}
SLAVE_TYPE = {
'tcp': StartTcpServer,
'tls': StartTlsServer,
'udp': StartUdpServer,
'serial': StartSerialServer
}
@@ -187,7 +188,7 @@ class ModbusConnector(Connector, Thread):
address=(config.get('host'), config.get('port')) if (
config['type'] == 'tcp' or 'udp') else None,
port=config.get('port') if config['type'] == 'serial' else None,
framer=FRAMER_TYPE[config['method']])
framer=FRAMER_TYPE[config['method']], **config.get('security', {}))
def __modify_main_config(self):
config = self.__config['slave']
@@ -410,7 +411,16 @@ class ModbusConnector(Connector, Thread):
current_config = config
current_config["rtu"] = FRAMER_TYPE[current_config['method']]
if current_config.get('type') == 'tcp':
if current_config.get('type') == 'tcp' and current_config.get('tls'):
master = ModbusTlsClient(current_config["host"],
current_config["port"],
current_config["rtu"],
timeout=current_config["timeout"],
retry_on_empty=current_config["retry_on_empty"],
retry_on_invalid=current_config["retry_on_invalid"],
retries=current_config["retries"],
**current_config['tls'])
elif current_config.get('type') == 'tcp':
master = ModbusTcpClient(current_config["host"],
current_config["port"],
current_config["rtu"],

View File

@@ -41,6 +41,7 @@ class Slave(Thread):
'port': kwargs['port'],
'byteOrder': kwargs['byteOrder'],
'wordOrder': kwargs['wordOrder'],
'tls': kwargs.get('tls'),
'timeout': kwargs.get('timeout', 35),
'stopbits': kwargs.get('stopbits', Defaults.Stopbits),
'bytesize': kwargs.get('bytesize', Defaults.Bytesize),