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:
@@ -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())
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user