1
0
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:
zbeacon
2019-12-24 11:22:06 +02:00
parent a5bbc2af2d
commit 9ffd57d366
2 changed files with 18 additions and 15 deletions

View File

@@ -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:

View File

@@ -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)