diff --git a/devices/examples/HW_device_template.py b/devices/examples/HW_device_template.py new file mode 100644 index 0000000000000000000000000000000000000000..66b6bdb19c0b00703805dc2f76cce0d8208a36b2 --- /dev/null +++ b/devices/examples/HW_device_template.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# +# This file wraps around a tango device class and provides a number of abstractions useful for hardware devices. It works together +# +# Distributed under the terms of the APACHE license. +# See LICENSE.txt for more info. + +""" + +""" + +# PyTango imports +from tango.server import run +from tango import AttrWriteType +# Additional import + +from util.attribute_wrapper import attribute_wrapper +from util.hardware_device import hardware_device + + +__all__ = ["HW_dev"] + + +class HW_dev(hardware_device): + """ + This class is the minimal (read empty) implementation of a class using 'hardware_device' + """ + + # ---------- + # Attributes + # ---------- + """ + attribute wrapper objects can be declared here. All attribute wrapper objects will get automatically put in a list (attr_list) for easy access + + example = attribute_wrapper(comms_annotation="this is an example", datatype=numpy.double, dims=(8, 2), access=AttrWriteType.READ_WRITE) + ... + + """ + + def always_executed_hook(self): + """Method always executed before any TANGO command is executed.""" + pass + + def delete_device(self): + """Hook to delete resources allocated in init_device. + + This method allows for any memory or other resources allocated in the + init_device method to be released. This method is called by the device + destructor and by the device Init command (a Tango built-in). + """ + self.debug_stream("Shutting down...") + + self.Off() + self.debug_stream("Shut down. Good bye.") + + # -------- + # overloaded functions + # -------- + def configure_for_fault(self): + """ user code here. is called when the state is set to FAULT """ + pass + + def configure_for_off(self): + """ user code here. is called when the state is set to OFF """ + pass + + def configure_for_on(self): + """ user code here. is called when the state is set to ON """ + + pass + + def configure_for_standby(self): + """ user code here. is called when the state is set to STANDBY """ + pass + + def configure_for_initialise(self): + """ user code here. is called when the sate is set to INIT """ + pass + + +# ---------- +# Run server +# ---------- +def main(args=None, **kwargs): + """Main function of the hardware device module.""" + return run((HW_dev,), args=args, **kwargs) + + +if __name__ == '__main__': + main()