SIENTIAPDE-1110

SIENTIAPDE-1110 Refactor OPC activity to use server IDs instead of names, update values.yaml for OPC_ID, and enhance OpcRepository initialization for improved clarity and consistency.
This commit is contained in:
vitor-aignosi
2025-06-27 10:37:06 -03:00
parent 82356ca3b0
commit ce69b0839f
4 changed files with 24 additions and 24 deletions

View File

@@ -23,9 +23,9 @@ class OPC(BaseActivity):
self.opc_servers = opc_servers
self.opc_repository = {}
for name, server in opc_servers.items():
self.opc_repository[name] = OpcRepository(
name=name,
for id, server in opc_servers.items():
self.opc_repository[id] = OpcRepository(
id=server['id'],
url=server['url'],
logger=self.logger,
server_uri=server['server_uri'],
@@ -35,17 +35,17 @@ class OPC(BaseActivity):
notification_handler=self.notification_handler,
reconnection_interval=server['reconnection_interval'],
)
self.opc_repository[name].connect()
self.opc_repository[id].connect()
BaseActivity.__init__(self, logger, notification_handler)
def write_data(self, server: str, tag: str, data: Any,
def write_data(self, server_id: str, tag: str, data: Any,
data_type: str, tag_type: str) -> bool:
"""
Write data to OPC server.
Args:
- server (str): The name of the OPC server.
- server_id (str): The id of the OPC server.
- tag (str): The tag to write to.
- data (Any): The data to write.
- data_type (str): The data type.
@@ -56,7 +56,7 @@ class OPC(BaseActivity):
"""
try:
return self.opc_repository[server].write_data(
return self.opc_repository[server_id].write_data(
tag, data, data_type)
self.logger.debug(f"Wrote {tag_type} to {tag}")
except Exception as e:
@@ -97,15 +97,15 @@ class OPC(BaseActivity):
success = True
for server, config in opc_output_config.items():
if self.opc_repository.get(server) is None:
self.error(f"OPC server {server} not found", metadata)
for server_id, config in opc_output_config.items():
if self.opc_repository.get(server_id) is None:
self.error(f"OPC server {server_id} not found", metadata)
continue
if 'prediction_tags' in config:
for tag, tag_config in config['prediction_tags'].items():
success = success and self.write_data(
server=server,
server_id=server_id,
tag=tag,
data=data.head(1)['prediction'].values[0],
data_type=tag_config['data_type'],
@@ -115,7 +115,7 @@ class OPC(BaseActivity):
if 'confidence_tags' in config:
for tag, tag_config in config['confidence_tags'].items():
self.write_data(
server=server,
server_id=server_id,
tag=tag,
data=data.head(1)['prediction_confidence'].values[0],
data_type=tag_config['data_type'],