Skip to content
Snippets Groups Projects
Commit 7b39dd1f authored by Thomas Juerges's avatar Thomas Juerges
Browse files

Pogo does not allow '-' in a class name

parent 720a7f3d
No related branches found
No related tags found
No related merge requests found
# -*- coding: utf-8 -*-
#
# This file is part of the Crossecho project
# This file is part of the Femto project
#
#
#
......@@ -22,16 +22,16 @@ from tango.server import device_property
from tango import AttrQuality, DispLevel, DevState
from tango import AttrWriteType, PipeWriteType
# Additional import
# PROTECTED REGION ID(Crossecho.additionnal_import) ENABLED START #
# PROTECTED REGION ID(Femto.additionnal_import) ENABLED START #
from opcua import Client
import numpy
import traceback
# PROTECTED REGION END # // Crossecho.additionnal_import
# PROTECTED REGION END # // Femto.additionnal_import
__all__ = ["Crossecho", "main"]
__all__ = ["Femto", "main"]
class Crossecho(Device):
class Femto(Device):
"""
Implementation of a Tango device on top of an existing OPC-UA server in Python3.
......@@ -45,8 +45,8 @@ class Crossecho(Device):
OPC_time_out
- Type:'DevULong'
"""
# PROTECTED REGION ID(Crossecho.class_variable) ENABLED START #
# PROTECTED REGION END # // Crossecho.class_variable
# PROTECTED REGION ID(Femto.class_variable) ENABLED START #
# PROTECTED REGION END # // Femto.class_variable
# -----------------
# Device Properties
......@@ -94,9 +94,11 @@ class Crossecho(Device):
# ---------------
def init_device(self):
"""Initialises the attributes and properties of the Crossecho."""
"""Initialises the attributes and properties of the Femto."""
Device.init_device(self)
# PROTECTED REGION ID(Crossecho.init_device) ENABLED START #
# PROTECTED REGION ID(Femto.init_device) ENABLED START #
self._rcu_modes = ('',)
self._crosslet_stat = (0.0,)
try:
self.client = Client("opc.tcp://{}:{}/".format(self.OPC_Server_Name, self.OPC_Server_Port), self.OPC_time_out)
self.client.connect()
......@@ -113,13 +115,12 @@ class Crossecho(Device):
print("Failed to connect to the OPC-UA server %s. Traceback: %s" % (self.OPC_Server_Name, traceback.format_exc()))
self.delete_device()
raise e
# PROTECTED REGION END # // Crossecho.init_device
# PROTECTED REGION END # // Femto.init_device
def always_executed_hook(self):
"""Method always executed before any TANGO command is executed."""
# PROTECTED REGION ID(Crossecho.always_executed_hook) ENABLED START #
pass
# PROTECTED REGION EloggND # // Crossecho.always_executed_hook
# PROTECTED REGION ID(Femto.always_executed_hook) ENABLED START #
# PROTECTED REGION END # // Femto.always_executed_hook
def delete_device(self):
"""Hook to delete resources allocated in init_device.
......@@ -128,33 +129,35 @@ class Crossecho(Device):
init_device method to be released. This method is called by the device
destructor and by the device Init command.
"""
# PROTECTED REGION ID(Crossecho.delete_device) ENABLED START #
# PROTECTED REGION ID(Femto.delete_device) ENABLED START #
if self.client is not Null:
self.client.close_session()
self.client.close_secure_channel()
# PROTECTED REGION END # // Crossecho.delete_device
# PROTECTED REGION END # // Femto.delete_device
# ------------------
# Attributes methods
# ------------------
def read_RCU_modes(self):
# PROTECTED REGION ID(Crossecho.RCU_modes_read) ENABLED START #
return self.RCU_modes
# PROTECTED REGION END # // Crossecho.RCU_modes_read
# PROTECTED REGION ID(Femto.RCU_modes_read) ENABLED START #
"""Return the RCU_modes attribute."""
return self._rcu_modes
# PROTECTED REGION END # // Femto.RCU_modes_read
def read_crosslet_stat(self):
# PROTECTED REGION ID(Crossecho.crosslet_stat_read) ENABLED START #
return crosslet_stat
# PROTECTED REGION END # // Crossecho.crosslet_stat_read
# PROTECTED REGION ID(Femto.crosslet_stat_read) ENABLED START #
"""Return the crosslet_stat attribute."""
return self._crosslet_stat
# PROTECTED REGION END # // Femto.crosslet_stat_read
# -------------
# Pipes methods
# -------------
def read_xlt_stat(self):
# PROTECTED REGION ID(Crossecho.xlt_stat_read) ENABLED START #
return dict(x=self.crosslet_stat, y=self.RCU_modes)
# PROTECTED REGION END # // Crossecho.xlt_stat_read
# PROTECTED REGION ID(Femto.xlt_stat_read) ENABLED START #
return dict(x=self._crosslet_stat, y=self._rcu_modes)
# PROTECTED REGION END # // Femto.xlt_stat_read
# --------
# Commands
......@@ -164,19 +167,22 @@ class Crossecho(Device):
)
@DebugIt()
def record_cross(self):
# PROTECTED REGION ID(Crossecho.record_cross) ENABLED START #
# PROTECTED REGION ID(Femto.record_cross) ENABLED START #
"""
:return:None
"""
if self.is_record_cross_allowed() is True:
timeStamp, self.crosslet_stat, self.RCU_modes = self.opc_obj.call_method("{}:record_cross".format(idx), self.subBand, self.integrationTime)
timeStamp, self._crosslet_stat, self._rcu_modes = self.opc_obj.call_method("{}:record_cross".format(idx), self.subBand, self.integrationTime)
print("Timestamp is ", timeStamp)
print("Crosscorrelations are ", self.crosslet_stat)
print("RCU modes are", self.RCU_modes)
# PROTECTED REGION END # // Crossecho.record_cross
print("Crosscorrelations are ", self._crosslet_stat)
print("RCU modes are", self._rcu_modes)
# PROTECTED REGION END # // Femto.record_cross
def is_record_cross_allowed(self):
# PROTECTED REGION ID(Crossecho.is_record_cross_allowed) ENABLED START #
# PROTECTED REGION ID(Femto.is_record_cross_allowed) ENABLED START #
return self.get_state() not in [DevState.OFF,DevState.INIT,DevState.FAULT]
# PROTECTED REGION END # // Crossecho.is_record_cross_allowed
# PROTECTED REGION END # // Femto.is_record_cross_allowed
# ----------
# Run server
......@@ -184,10 +190,10 @@ class Crossecho(Device):
def main(args=None, **kwargs):
"""Main function of the Crossecho module."""
# PROTECTED REGION ID(Crossecho.main) ENABLED START #
return run((Crossecho,), args=args, **kwargs)
# PROTECTED REGION END # // Crossecho.main
"""Main function of the Femto module."""
# PROTECTED REGION ID(Femto.main) ENABLED START #
return run((Femto,), args=args, **kwargs)
# PROTECTED REGION END # // Femto.main
if __name__ == '__main__':
......
File moved
File moved
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment