mirror of
https://github.com/thingsboard/thingsboard-gateway
synced 2025-10-26 22:31:42 +08:00
Some improvement for connection to TB and catching errors in OPC-UA connector.
This commit is contained in:
@@ -178,20 +178,23 @@ class OpcUaConnector(Thread, Connector):
|
||||
for interest_node in self.__interest_nodes:
|
||||
for int_node in interest_node:
|
||||
if interest_node[int_node].get("deviceName") is None:
|
||||
name_pattern = TBUtility.get_value(interest_node[int_node]["deviceNamePattern"],
|
||||
get_tag=True)
|
||||
device_name_node = re.search(name_pattern.split('.')[-1], current_var_path)
|
||||
if device_name_node is not None:
|
||||
device_name = ch.get_value()
|
||||
full_device_name = interest_node[int_node]["deviceNamePattern"].replace("${"+name_pattern+"}",
|
||||
device_name)
|
||||
interest_node[int_node]["deviceName"] = full_device_name
|
||||
if self.__available_object_resources.get(full_device_name) is None:
|
||||
self.__available_object_resources[full_device_name] = {'methods': [],
|
||||
'variables': []}
|
||||
if not self.__gateway.get_devices().get(full_device_name):
|
||||
self.__gateway.add_device(full_device_name, {"connector": None})
|
||||
self.__gateway.update_device(full_device_name, "connector", self)
|
||||
try:
|
||||
name_pattern = TBUtility.get_value(interest_node[int_node]["deviceNamePattern"],
|
||||
get_tag=True)
|
||||
device_name_node = re.search(name_pattern.split('.')[-1], current_var_path)
|
||||
if device_name_node is not None:
|
||||
device_name = ch.get_value()
|
||||
full_device_name = interest_node[int_node]["deviceNamePattern"].replace("${"+name_pattern+"}",
|
||||
device_name)
|
||||
interest_node[int_node]["deviceName"] = full_device_name
|
||||
if self.__available_object_resources.get(full_device_name) is None:
|
||||
self.__available_object_resources[full_device_name] = {'methods': [],
|
||||
'variables': []}
|
||||
if not self.__gateway.get_devices().get(full_device_name):
|
||||
self.__gateway.add_device(full_device_name, {"connector": None})
|
||||
self.__gateway.update_device(full_device_name, "connector", self)
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
except BadWaitingForInitialData:
|
||||
pass
|
||||
elif not self.__interest_nodes:
|
||||
|
||||
@@ -48,6 +48,7 @@ class TBClient(threading.Thread):
|
||||
self.client._client._on_connect = self._on_connect
|
||||
self.client._client._on_disconnect = self._on_disconnect
|
||||
self.client._client._on_log = self._on_log
|
||||
self.start()
|
||||
|
||||
def _on_log(self, *args):
|
||||
log.debug(args)
|
||||
@@ -69,7 +70,6 @@ class TBClient(threading.Thread):
|
||||
|
||||
def connect(self, min_reconnect_delay=10):
|
||||
self.__min_reconnect_delay = min_reconnect_delay
|
||||
self.start()
|
||||
|
||||
def run(self):
|
||||
keep_alive = self.__config.get("keep_alive", 60)
|
||||
|
||||
Reference in New Issue
Block a user