# -*- 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()