From c84121a72dac2aba24d14d796df3ee61590dff9a Mon Sep 17 00:00:00 2001 From: Thomas Juerges <4-jurges@users.noreply.git.astron.nl> Date: Fri, 3 Apr 2020 21:35:10 +0200 Subject: [PATCH] Begin adding code to talk to Mattia's OPC-UA device --- crossechoTangoDev/Crossecho.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/crossechoTangoDev/Crossecho.py b/crossechoTangoDev/Crossecho.py index 4979adf7a..3b09e4c02 100644 --- a/crossechoTangoDev/Crossecho.py +++ b/crossechoTangoDev/Crossecho.py @@ -23,6 +23,8 @@ from PyTango import AttrQuality, DispLevel, DevState from PyTango import AttrWriteType, PipeWriteType # Additional import # PROTECTED REGION ID(Crossecho.additionnal_import) ENABLED START # +from lib.opc_interface import connect_to_server, DEFAULT_URI +import numpy # PROTECTED REGION END # // Crossecho.additionnal_import __all__ = ["Crossecho", "main"] @@ -77,6 +79,14 @@ class Crossecho(Device): def init_device(self): Device.init_device(self) # PROTECTED REGION ID(Crossecho.init_device) ENABLED START # + self.client = connect_to_server(self.OPC_Server_Name, self.OPC_Server_Port) + self.objects = self.client.get_objects_node() + self.idx = self.client.get_namespace_index(DEFAULT_URI) + + # Now getting a variable node using its browse path + self.opc_obj = self.client.get_root_node().get_child(["0:Objects", + "{}:StationMetrics".format(idx), + "{}:RCU".format(idx)]) # PROTECTED REGION END # // Crossecho.init_device def always_executed_hook(self): @@ -86,7 +96,8 @@ class Crossecho(Device): def delete_device(self): # PROTECTED REGION ID(Crossecho.delete_device) ENABLED START # - pass + self.client.close_session() + self.client.close_secure_channel() # PROTECTED REGION END # // Crossecho.delete_device # ------------------ @@ -122,7 +133,12 @@ class Crossecho(Device): @DebugIt() def record_cross(self): # PROTECTED REGION ID(Crossecho.record_cross) ENABLED START # - pass + if self.is_record_cross_allowed() is True: + timeStamp, crossletStats, rcuModes = self.opc_obj.call_method("{}:record_cross".format(idx), self.subBand, self.integrationTime) + print("Timestamp is ", result[0]) + print("Crosscorrelations are ", numpy.array(result[1])) + print("RCU modes are", numpy.array(result[2])) + # PROTECTED REGION END # // Crossecho.record_cross def is_record_cross_allowed(self): -- GitLab