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

Fixed Modbus Slaves stopping

This commit is contained in:
samson0v
2023-10-30 15:40:53 +02:00
parent 618d2d411f
commit 3e951c092c
3 changed files with 12 additions and 2 deletions

View File

@@ -302,6 +302,11 @@ class ModbusConnector(Connector, Thread):
def close(self): def close(self):
self.__stopped = True self.__stopped = True
self.__stop_connections_to_masters() self.__stop_connections_to_masters()
# Stop all slaves
for slave in self.__slaves:
slave.close()
if reactor.running: if reactor.running:
ServerStop() ServerStop()
self.__log.info('%s has been stopped.', self.get_name()) self.__log.info('%s has been stopped.', self.get_name())

View File

@@ -71,6 +71,7 @@ class Slave(Thread):
self.last_polled_time = None self.last_polled_time = None
self.daemon = True self.daemon = True
self.stop = False
self.start() self.start()
@@ -78,7 +79,7 @@ class Slave(Thread):
self.callback(self) self.callback(self)
self.last_polled_time = time() self.last_polled_time = time()
while True: while not self.stop:
if time() - self.last_polled_time >= self.poll_period: if time() - self.last_polled_time >= self.poll_period:
self.callback(self) self.callback(self)
self.last_polled_time = time() self.last_polled_time = time()
@@ -88,6 +89,9 @@ class Slave(Thread):
def run(self): def run(self):
self.timer() self.timer()
def close(self):
self.stop = True
def get_name(self): def get_name(self):
return self.name return self.name

View File

@@ -477,7 +477,8 @@ class TBGatewayService:
# self.__check_shared_attributes() # self.__check_shared_attributes()
if cur_time - connectors_configuration_check_time > self.__config["thingsboard"].get( if cur_time - connectors_configuration_check_time > self.__config["thingsboard"].get(
"checkConnectorsConfigurationInSeconds", 60) * 1000: "checkConnectorsConfigurationInSeconds", 60) * 1000 and not (
self.__remote_configurator is not None and self.__remote_configurator.in_process):
self.check_connector_configuration_updates() self.check_connector_configuration_updates()
connectors_configuration_check_time = time() * 1000 connectors_configuration_check_time = time() * 1000