diff --git a/ClassFactory.cpp b/ClassFactory.cpp index 10777a97cf41d562acb94cd230e8d9003bbf2eb7..b72c76062d37b1cbb904ad3053373e5a06fb5594 100644 --- a/ClassFactory.cpp +++ b/ClassFactory.cpp @@ -1,3 +1,4 @@ +/*----- PROTECTED REGION ID(Keithley428::ClassFactory.cpp) ENABLED START -----*/ static const char *RcsId = "$Id: $"; //+============================================================================= // @@ -57,3 +58,4 @@ void Tango::DServer::class_factory() #endif } +/*----- PROTECTED REGION END -----*/ diff --git a/Keithley428.cpp b/Keithley428.cpp index 9e2ed3f99ccbacca041daa3f830ab8ca7b1f27b4..d478727af1a24a7f82178bee43feba8ae592afbd 100644 --- a/Keithley428.cpp +++ b/Keithley428.cpp @@ -1,838 +1,973 @@ -static const char *RcsId = "$Id: $"; -//+============================================================================= -// -// file : Keithley428.cpp -// -// description : C++ source for the Keithley428 and its commands. -// The class is derived from Device. It represents the -// CORBA servant object which will be accessed from the -// network. All commands which can be executed on the -// Keithley428 are implemented in this file. -// -// project : TANGO Device Server -// -// $Author: $ -// -// $Revision: $ -// -// $Revision: $ -// $Date: $ -// -// SVN only: -// $HeadURL: $ -// -// CVS only: -// $Source: $ -// $Log: $ -// -// copyleft : European Synchrotron Radiation Facility -// BP 220, Grenoble 38043 -// FRANCE -// -//-============================================================================= -// -// This file is generated by POGO -// (Program Obviously used to Generate tango Object) -// -// (c) - Software Engineering Group - ESRF -//============================================================================= - - - -//=================================================================== -// -// The following table gives the correspondence -// between commands and method name. -// -// Command name | Method name -// ---------------------------------------- -// State | dev_state() -// Status | dev_status() -// PerformZeroCorrect | perform_zero_correct() -// FilterOn | filter_on() -// FilterOff | filter_off() -// AutoFilterOn | auto_filter_on() -// AutoFilterOff | auto_filter_off() -// -//=================================================================== - - -#include <tango.h> -#ifndef USE_HELPERS_DIR -#include <PogoHelper.h> -#else -#include <helpers/PogoHelper.h> -#endif -#include <Keithley428.h> -#include <Keithley428Class.h> - -namespace Keithley428_ns -{ - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::Keithley428(string &s) -// -// description : constructor for simulated Keithley428 -// -// in : - cl : Pointer to the DeviceClass object -// - s : Device name -// -//----------------------------------------------------------------------------- -Keithley428::Keithley428(Tango::DeviceClass *cl,string &s) - :Tango::Device_4Impl(cl,s.c_str()) -{ - init_device(); -} - -Keithley428::Keithley428(Tango::DeviceClass *cl,const char *s) - :Tango::Device_4Impl(cl,s) -{ - init_device(); -} - -Keithley428::Keithley428(Tango::DeviceClass *cl,const char *s,const char *d) - :Tango::Device_4Impl(cl,s,d) -{ - init_device(); -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::delete_device() -// -// description : will be called at device destruction or at init command. -// -//----------------------------------------------------------------------------- -void Keithley428::delete_device() -{ - // Delete device allocated objects - - DELETE_DEVSTRING_ATTRIBUTE(attr_GainStr_read); - DELETE_SCALAR_ATTRIBUTE(attr_Overloaded_read); - DELETE_DEVSTRING_ATTRIBUTE(attr_filterState_read); - DELETE_DEVSTRING_ATTRIBUTE(attr_autoFilterState_read); - DELETE_DEVSTRING_ATTRIBUTE(attr_RiseTimeStr_read); - - if (gpib_device != NULL) - delete gpib_device; - - if (buffer != NULL) - delete buffer; -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::init_device() -// -// description : will be called at device initialization. -// -//----------------------------------------------------------------------------- -void Keithley428::init_device() -{ - INFO_STREAM << "Keithley428::Keithley428() create device " << device_name << endl; - - // Initialise variables to default values - //-------------------------------------------- - get_device_property(); - - CREATE_DEVSTRING_ATTRIBUTE(attr_GainStr_read,MAX_STRING_LENGTH); - CREATE_SCALAR_ATTRIBUTE(attr_Overloaded_read); - CREATE_DEVSTRING_ATTRIBUTE(attr_filterState_read,MAX_STRING_LENGTH); - CREATE_DEVSTRING_ATTRIBUTE(attr_autoFilterState_read,MAX_STRING_LENGTH); - CREATE_DEVSTRING_ATTRIBUTE(attr_RiseTimeStr_read,MAX_STRING_LENGTH); - - gpib_device = NULL; - try - { - gpib_device = new Tango::DeviceProxy(gpibDevice); - gpib_device->ping(); - set_state(Tango::ON); - set_status("Keithley428 is ON"); - } - catch (Tango::DevFailed &e) - { - set_state(Tango::FAULT); - set_status("Not able to connect to Gpib Device"); - } - - buffer = new char[180]; - memset(buffer,0, 180); - - if(gpibDeviceType == 1) - { - m_write_read = "GPIBWriteRead"; - m_write = "GPIBWrite"; - } - else - { - m_write_read = "WriteRead"; - m_write = "Write"; - } -} - - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::get_device_property() -// -// description : Read the device properties from database. -// -//----------------------------------------------------------------------------- -void Keithley428::get_device_property() -{ - // Initialize your default values here (if not done with POGO). - //------------------------------------------------------------------ - - // Read device properties from database.(Automatic code generation) - //------------------------------------------------------------------ - Tango::DbData dev_prop; - dev_prop.push_back(Tango::DbDatum("GpibDevice")); - dev_prop.push_back(Tango::DbDatum("GpibDeviceType")); - - // Call database and extract values - //-------------------------------------------- - if (Tango::Util::instance()->_UseDb==true) - get_db_device()->get_property(dev_prop); - Tango::DbDatum def_prop, cl_prop; - Keithley428Class *ds_class = - (static_cast<Keithley428Class *>(get_device_class())); - int i = -1; - - // Try to initialize GpibDevice from class property - cl_prop = ds_class->get_class_property(dev_prop[++i].name); - if (cl_prop.is_empty()==false) cl_prop >> gpibDevice; - else { - // Try to initialize GpibDevice from default device value - def_prop = ds_class->get_default_device_property(dev_prop[i].name); - if (def_prop.is_empty()==false) def_prop >> gpibDevice; - } - // And try to extract GpibDevice value from database - if (dev_prop[i].is_empty()==false) dev_prop[i] >> gpibDevice; - - // Try to initialize GpibDeviceType from class property - cl_prop = ds_class->get_class_property(dev_prop[++i].name); - if (cl_prop.is_empty()==false) cl_prop >> gpibDeviceType; - else { - // Try to initialize GpibDeviceType from default device value - def_prop = ds_class->get_default_device_property(dev_prop[i].name); - if (def_prop.is_empty()==false) def_prop >> gpibDeviceType; - } - // And try to extract GpibDeviceType value from database - if (dev_prop[i].is_empty()==false) dev_prop[i] >> gpibDeviceType; - - - - // End of Automatic code generation - //------------------------------------------------------------------ - -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::always_executed_hook() -// -// description : method always executed before any command is executed -// -//----------------------------------------------------------------------------- -void Keithley428::always_executed_hook() -{ - -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_attr_hardware -// -// description : Hardware acquisition for attributes. -// -//----------------------------------------------------------------------------- -void Keithley428::read_attr_hardware(vector<long> &attr_list) -{ - DEBUG_STREAM << "Keithley428::read_attr_hardware(vector<long> &attr_list) entering... "<< endl; - // Add your own code here -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_RiseTimeStr -// -// description : Extract real attribute values for RiseTimeStr acquisition result. -// -//----------------------------------------------------------------------------- -void Keithley428::read_RiseTimeStr(Tango::Attribute &attr) -{ - DEBUG_STREAM << "Keithley428::read_RiseTimeStr(Tango::Attribute &attr) entering... "<< endl; - - //- filled in read_RiseTime() - attr.set_value( attr_RiseTimeStr_read); -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_filterState -// -// description : Extract real attribute values for filterState acquisition result. -// -//----------------------------------------------------------------------------- -void Keithley428::read_filterState(Tango::Attribute &attr) -{ - DEBUG_STREAM << "Keithley428::read_filterState(Tango::Attribute &attr) entering... "<< endl; - - DeviceData din; - DeviceData dout; - - string tmp_string; - string selected_str; - string attr_str; - size_t pos; - - int r_v; - int w_v; - - sprintf(tmp_buffer,"U0X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - dout = gpib_device->command_inout(m_write_read.c_str(),din); - - dout >> tmp_string; - - pos = tmp_string.find("P"); - pos = pos + 1; - selected_str = tmp_string.substr(pos); - r_v = atoi(selected_str.c_str()); - - switch(r_v) - { - case 0: - attr_str = "OFF"; - break; - case 1: - attr_str = "ON"; - break; - default: - attr_str = "BAD_VALUE"; - break; - } - - strcpy(*attr_filterState_read,attr_str.c_str()); - attr.set_value( attr_filterState_read); -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_autoFilterState -// -// description : Extract real attribute values for autoFilterState acquisition result. -// -//----------------------------------------------------------------------------- -void Keithley428::read_autoFilterState(Tango::Attribute &attr) -{ - DEBUG_STREAM << "Keithley428::read_autoFilterState(Tango::Attribute &attr) entering... "<< endl; - - DeviceData din; - DeviceData dout; - - string tmp_string; - string selected_str; - string attr_str; - size_t pos; - - int r_v; - int w_v; - - sprintf(tmp_buffer,"U0X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - dout = gpib_device->command_inout(m_write_read.c_str(),din); - - dout >> tmp_string; - - pos = tmp_string.find("Z"); - pos = pos + 1; - selected_str = tmp_string.substr(pos); - r_v = atoi(selected_str.c_str()); - - switch(r_v) - { - case 0: - attr_str = "OFF"; - break; - case 1: - attr_str = "ON"; - break; - default: - attr_str = "BAD_VALUE"; - break; - } - - strcpy(*attr_autoFilterState_read,attr_str.c_str()); - attr.set_value( attr_autoFilterState_read); -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_Bypass -// -// description : Extract real attribute values for Bypass acquisition result. -// -//----------------------------------------------------------------------------- -void Keithley428::read_Bypass(Tango::Attribute &attr) -{ - DEBUG_STREAM << "Keithley428::read_Bypass(Tango::Attribute &attr) entering... "<< endl; - - DeviceData din; - DeviceData dout; - - string tmp_string; - string selected_str; - size_t pos; - - int c_v; - - sprintf(tmp_buffer,"U0X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - dout = gpib_device->command_inout(m_write_read.c_str(),din); - - dout >> tmp_string; - - pos = tmp_string.find("C"); - pos = pos + 1; - selected_str = tmp_string.substr(pos); - c_v = atoi(selected_str.c_str()); - - attr_Bypass_write = c_v; - - attr.set_value( &attr_Bypass_write); -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::write_Bypass -// -// description : Write Bypass attribute values to hardware. -// -//----------------------------------------------------------------------------- -void Keithley428::write_Bypass(Tango::WAttribute &attr) -{ - DEBUG_STREAM << "Keithley428::write_Bypass(Tango::WAttribute &attr) entering... "<< endl; - - DeviceData din; - - attr.get_write_value( attr_Bypass_write); - - if( (attr_Bypass_write < 0) || (attr_Bypass_write > 1) ){ - Tango::Except::throw_exception ((const char *)"Keithley428 error", - (const char *)"Value out of range (off -> 0, on -> 1)", - (const char *)"write_Bypass"); - } - - sprintf(tmp_buffer,"C%dX", attr_Bypass_write); - strcpy(buffer,tmp_buffer); - din << buffer; - - gpib_device->command_inout(m_write.c_str(),din); - -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_Overloaded -// -// description : Extract real attribute values for Overloaded acquisition result. -// -//----------------------------------------------------------------------------- -void Keithley428::read_Overloaded(Tango::Attribute &attr) -{ - DEBUG_STREAM << "Keithley428::read_Overloaded(Tango::Attribute &attr) entering... "<< endl; - - DeviceData din; - DeviceData dout; - - string tmp_string; - string selected_str; - size_t pos; - - int overload_flag; - - sprintf(tmp_buffer,"U1X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - dout = gpib_device->command_inout(m_write_read.c_str(),din); - - dout >> tmp_string; - - pos = 12; - selected_str = tmp_string.substr(pos,1); - overload_flag = atoi(selected_str.c_str()); - - *attr_Overloaded_read = overload_flag; - - attr.set_value(attr_Overloaded_read); -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_GainStr -// -// description : Extract real attribute values for GainStr acquisition result. -// -//----------------------------------------------------------------------------- -void Keithley428::read_GainStr(Tango::Attribute &attr) -{ - DEBUG_STREAM << "Keithley428::read_GainStr(Tango::Attribute &attr) entering... "<< endl; - - DeviceData din; - DeviceData dout; - - string tmp_string; - - - sprintf(tmp_buffer,"U3X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - dout = gpib_device->command_inout(m_write_read.c_str(),din); - - dout >> tmp_string; - - strcpy(*attr_GainStr_read,tmp_string.c_str()); - - attr.set_value( attr_GainStr_read); -} - - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_Gain -// -// description : Extract real attribute values for Gain acquisition result. -// -//----------------------------------------------------------------------------- -void Keithley428::read_Gain(Tango::Attribute &attr) -{ - DEBUG_STREAM << "Keithley428::read_Gain(Tango::Attribute &attr) entering... "<< endl; - - DeviceData din; - DeviceData dout; - - string tmp_string; - string selected_str; - size_t pos; - - int r_v; - int w_v; - - sprintf(tmp_buffer,"U0X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - dout = gpib_device->command_inout(m_write_read.c_str(),din); - - dout >> tmp_string; - - pos = tmp_string.find("R"); - pos = pos + 1; - selected_str = tmp_string.substr(pos); - r_v = atoi(selected_str.c_str()); - - pos = tmp_string.find("W"); - pos = pos + 1; - selected_str = tmp_string.substr(pos); - w_v = atoi(selected_str.c_str()); - - if(w_v == 0){ - attr_Gain_write = r_v; - } else { - attr_Gain_write = r_v + 1; - } - - attr.set_value( &attr_Gain_write); - -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::write_Gain -// -// description : Write Gain attribute values to hardware. -// -//----------------------------------------------------------------------------- -void Keithley428::write_Gain(Tango::WAttribute &attr) -{ - DEBUG_STREAM << "Keithley428::write_Gain(Tango::WAttribute &attr) entering... "<< endl; - - DeviceData din; - - attr.get_write_value( attr_Gain_write); - - if( (attr_Gain_write < 0) || (attr_Gain_write > 11) ){ - Tango::Except::throw_exception ((const char *)"Keithley428 error", - (const char *)"Value out of range (0-11)", - (const char *)"write_Gain"); - } - - - if(attr_Gain_write < 11){ - sprintf(tmp_buffer,"W0XR%dX", (int)attr_Gain_write); - strcpy(buffer,tmp_buffer); - din << buffer; - } else { - sprintf(tmp_buffer,"W1XR10X"); - strcpy(buffer,tmp_buffer); - din << buffer; - } - - - gpib_device->command_inout(m_write.c_str(),din); - -} - - - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::read_RiseTime -// -// description : Extract real attribute values for rise time. -// -//----------------------------------------------------------------------------- -void Keithley428::read_RiseTime(Tango::Attribute &attr) -{ - DEBUG_STREAM << "Keithley428::read_RiseTime(Tango::Attribute &attr) entering... "<< endl; - - DeviceData din; - DeviceData dout; - - string tmp_string; - string selected_str; - string rise_time_str; - size_t pos; - - int value; - - sprintf(tmp_buffer,"U0X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - dout = gpib_device->command_inout(m_write_read.c_str(),din); - - dout >> tmp_string; - - pos = tmp_string.find("T"); - pos = pos + 1; - selected_str = tmp_string.substr(pos); - value = atoi(selected_str.c_str()); - attr_RiseTime_write = value; - - //- get the value and transform it into str to display it - switch (value) - { - case 0: rise_time_str = "10e-6 sec"; - break; - case 1: rise_time_str = "30e-6 sec"; - break; - case 2: rise_time_str = "100e-6 sec"; - break; - case 3: rise_time_str = "300e-6 sec"; - break; - case 4: rise_time_str = "1e-3 sec"; - break; - case 5: rise_time_str = "3e-3 sec"; - break; - case 6: rise_time_str = "10e-3 sec"; - break; - case 7: rise_time_str = "30e-3 sec"; - break; - case 8: rise_time_str = "100e-3 sec"; - break; - case 9: rise_time_str = "300e-3 sec"; - break; - default: rise_time_str= "BAD_VALUE"; - break; - } - - strcpy(*attr_RiseTimeStr_read,rise_time_str.c_str()); - - attr.set_value( &attr_RiseTime_write); - -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::write_RiseTime -// -// description : Write RiseTime attribute values to hardware. -// -//----------------------------------------------------------------------------- -void Keithley428::write_RiseTime(Tango::WAttribute &attr) -{ - DEBUG_STREAM << "Keithley428::write_RiseTime(Tango::WAttribute &attr) entering... "<< endl; - - DeviceData din; - - attr.get_write_value( attr_RiseTime_write); - - if( (attr_RiseTime_write < 0) || (attr_RiseTime_write > 9) ){ - Tango::Except::throw_exception ((const char *)"Keithley428 error", - (const char *)"Value out of range (0-9)", - (const char *)"write_RiseTime"); - } - - sprintf(tmp_buffer,"T%dX", (int)attr_RiseTime_write); - strcpy(buffer,tmp_buffer); - din << buffer; - - gpib_device->command_inout(m_write.c_str(),din); - -} - - -//+------------------------------------------------------------------ -/** - * method: Keithley428::perform_zero_correct - * - * description: method to execute "PerformZeroCorrect" - * Perform Zero correction. - * - * - */ -//+------------------------------------------------------------------ -void Keithley428::perform_zero_correct() -{ - DEBUG_STREAM << "Keithley428::perform_zero_correct(): entering... !" << endl; - - // Add your own code to control device here - - DeviceData din; - - sprintf(tmp_buffer,"C2X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - gpib_device->command_inout(m_write.c_str(),din); - -} - -//+------------------------------------------------------------------ -/** - * method: Keithley428::filter_on - * - * description: method to execute "FilterOn" - * Turn the filter ON - * - * - */ -//+------------------------------------------------------------------ -void Keithley428::filter_on() -{ - DEBUG_STREAM << "Keithley428::filter_on(): entering... !" << endl; - - // Add your own code to control device here - - DeviceData din; - - sprintf(tmp_buffer,"P1X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - gpib_device->command_inout(m_write.c_str(),din); - -} - -//+------------------------------------------------------------------ -/** - * method: Keithley428::filter_off - * - * description: method to execute "FilterOff" - * Turn the filter OFF - * - * - */ -//+------------------------------------------------------------------ -void Keithley428::filter_off() -{ - DEBUG_STREAM << "Keithley428::filter_off(): entering... !" << endl; - - // Add your own code to control device here - - DeviceData din; - - sprintf(tmp_buffer,"P0X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - gpib_device->command_inout(m_write.c_str(),din); - -} - -//+------------------------------------------------------------------ -/** - * method: Keithley428::auto_filter_on - * - * description: method to execute "AutoFilterOn" - * Enable Auto Filter - * - * - */ -//+------------------------------------------------------------------ -void Keithley428::auto_filter_on() -{ - DEBUG_STREAM << "Keithley428::auto_filter_on(): entering... !" << endl; - - // Add your own code to control device here - - //- read the current filterState - Tango::Attribute &filterState = dev_attr->get_attr_by_name("filterState"); - this->read_filterState(filterState); - - string filter_state = *attr_filterState_read; - - if(filter_state == "ON") - { - Tango::Except::throw_exception( - (const char *)"OPERATION_NOT_ALLOWED", - (const char *)"Auto filter ON is not allowed when filter is already ON", - (const char *)"Keithley428::auto_filter_on"); - } - - DeviceData din; - - sprintf(tmp_buffer,"Z1X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - gpib_device->command_inout(m_write.c_str(),din); - -} - -//+------------------------------------------------------------------ -/** - * method: Keithley428::auto_filter_off - * - * description: method to execute "AutoFilterOff" - * Disable Auto Filter - * - * - */ -//+------------------------------------------------------------------ -void Keithley428::auto_filter_off() -{ - DEBUG_STREAM << "Keithley428::auto_filter_off(): entering... !" << endl; - - // Add your own code to control device here - - DeviceData din; - - sprintf(tmp_buffer,"Z0X"); - strcpy(buffer,tmp_buffer); - din << buffer; - - gpib_device->command_inout(m_write.c_str(),din); - -} - - - -} // namespace +/*----- PROTECTED REGION ID(Keithley428.cpp) ENABLED START -----*/ +static const char *RcsId = "$Id: $"; +//============================================================================= +// +// file : Keithley428.cpp +// +// description : C++ source for the Keithley428 and its commands. +// The class is derived from Device. It represents the +// CORBA servant object which will be accessed from the +// network. All commands which can be executed on the +// Keithley428 are implemented in this file. +// +// project : Keithley428 Current Amplifier. +// +// $Author: $ +// +// $Revision: $ +// $Date: $ +// +// SVN only: +// $HeadURL: $ +// +// CVS only: +// $Source: $ +// $Log: $ +// +//============================================================================= +// This file is generated by POGO +// (Program Obviously used to Generate tango Object) +//============================================================================= + + +#include <tango.h> +#ifndef USE_HELPERS_DIR +#include <PogoHelper.h> +#else +#include <helpers/PogoHelper.h> +#endif +#include <Keithley428.h> +#include <Keithley428Class.h> + +/*----- PROTECTED REGION END -----*/ + + +/** + * Keithley428 class description: + * Class for controlling the Keithley428 current amplifier. + */ + +//================================================================ +// +// The following table gives the correspondence +// between command and method names. +// +// Command name | Method name +//---------------------------------------------------------------- +// State | Inherited (no method) +// Status | Inherited (no method) +// PerformZeroCorrect | perform_zero_correct +// FilterOn | filter_on +// FilterOff | filter_off +// AutoFilterOn | auto_filter_on +// AutoFilterOff | auto_filter_off +//================================================================ + +namespace Keithley428_ns +{ + /*----- PROTECTED REGION ID(Keithley428::namespace_starting) ENABLED START -----*/ + + // static initializations + + /*----- PROTECTED REGION END -----*/ // Keithley428::namespace_starting + + + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428() + * Description : Constructors for a Tango device + * implementing the class Keithley428 + */ +//-------------------------------------------------------- +Keithley428::Keithley428(Tango::DeviceClass *cl, string &s) + : Tango::Device_4Impl(cl, s.c_str()) +{ + /*----- PROTECTED REGION ID(Keithley428::constructor_1) ENABLED START -----*/ + + init_device(); + + /*----- PROTECTED REGION END -----*/ // Keithley428::constructor_1 +} +//-------------------------------------------------------- +Keithley428::Keithley428(Tango::DeviceClass *cl, const char *s) + : Tango::Device_4Impl(cl, s) +{ + /*----- PROTECTED REGION ID(Keithley428::constructor_2) ENABLED START -----*/ + + init_device(); + + /*----- PROTECTED REGION END -----*/ // Keithley428::constructor_2 +} +//-------------------------------------------------------- +Keithley428::Keithley428(Tango::DeviceClass *cl, const char *s, const char *d) + : Tango::Device_4Impl(cl, s, d) +{ + /*----- PROTECTED REGION ID(Keithley428::constructor_3) ENABLED START -----*/ + + init_device(); + + /*----- PROTECTED REGION END -----*/ // Keithley428::constructor_3 +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::delete_device()() + * Description : will be called at device destruction or at init command + */ +//-------------------------------------------------------- +void Keithley428::delete_device() +{ + /*----- PROTECTED REGION ID(Keithley428::delete_device) ENABLED START -----*/ + + // Delete device allocated objects + // Delete device allocated objects + + DELETE_DEVSTRING_ATTRIBUTE(attr_GainStr_read); + DELETE_SCALAR_ATTRIBUTE(attr_Overloaded_read); + DELETE_DEVSTRING_ATTRIBUTE(attr_filterState_read); + DELETE_DEVSTRING_ATTRIBUTE(attr_autoFilterState_read); + DELETE_DEVSTRING_ATTRIBUTE(attr_RiseTimeStr_read); + + if (gpib_device != NULL) + delete gpib_device; + + if (buffer != NULL) + delete buffer; + + /*----- PROTECTED REGION END -----*/ // Keithley428::delete_device + +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::init_device() + * Description : // will be called at device initialization. + */ +//-------------------------------------------------------- +void Keithley428::init_device() +{ + DEBUG_STREAM << "Keithley428::init_device() create device " << device_name << endl; + + /*----- PROTECTED REGION ID(Keithley428::init_device_before) ENABLED START -----*/ + + // Initialization before get_device_property() call + + + /*----- PROTECTED REGION END -----*/ // Keithley428::init_device_before + + // Get the device properties (if any) from database + get_device_property(); + + + /*----- PROTECTED REGION ID(Keithley428::init_device) ENABLED START -----*/ + + // Initialize device + + CREATE_DEVSTRING_ATTRIBUTE(attr_GainStr_read,MAX_STRING_LENGTH); + CREATE_SCALAR_ATTRIBUTE(attr_Overloaded_read); + CREATE_DEVSTRING_ATTRIBUTE(attr_filterState_read,MAX_STRING_LENGTH); + CREATE_DEVSTRING_ATTRIBUTE(attr_autoFilterState_read,MAX_STRING_LENGTH); + CREATE_DEVSTRING_ATTRIBUTE(attr_RiseTimeStr_read,MAX_STRING_LENGTH); + + gpib_device = NULL; + try + { + gpib_device = new Tango::DeviceProxy(gpibDevice); + gpib_device->ping(); + set_state(Tango::ON); + set_status("Keithley428 is ON"); + } + catch (Tango::DevFailed &e) + { + set_state(Tango::FAULT); + set_status("Not able to connect to Gpib Device"); + } + + buffer = new char[180]; + memset(buffer,0, 180); + + if(gpibDeviceType == 1) + { + m_write_read = "GPIBWriteRead"; + m_write = "GPIBWrite"; + } + else + { + m_write_read = "WriteRead"; + m_write = "Write"; + } + + /*----- PROTECTED REGION END -----*/ // Keithley428::init_device +} + + + +//-------------------------------------------------------- +/** + * Method : Keithley428::get_device_property() + * Description : // Add your own code to initialize + */ +//-------------------------------------------------------- +void Keithley428::get_device_property() +{ + /*----- PROTECTED REGION ID(Keithley428::get_device_property_before) ENABLED START -----*/ + + // Initialize property data members + + + /*----- PROTECTED REGION END -----*/ // Keithley428::get_device_property_before + + + // Read device properties from database. + Tango::DbData dev_prop; + dev_prop.push_back(Tango::DbDatum("GpibDevice")); + dev_prop.push_back(Tango::DbDatum("GpibDeviceType")); + + // is there at least one property to be read ? + if (dev_prop.size()>0) + { + // Call database and extract values + if (Tango::Util::instance()->_UseDb==true) + get_db_device()->get_property(dev_prop); + + // get instance on Keithley428Class to get class property + Tango::DbDatum def_prop, cl_prop; + Keithley428Class *ds_class = + (static_cast<Keithley428Class *>(get_device_class())); + int i = -1; + + // Try to initialize GpibDevice from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> gpibDevice; + else { + // Try to initialize GpibDevice from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> gpibDevice; + } + // And try to extract GpibDevice value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> gpibDevice; + + // Try to initialize GpibDeviceType from class property + cl_prop = ds_class->get_class_property(dev_prop[++i].name); + if (cl_prop.is_empty()==false) cl_prop >> gpibDeviceType; + else { + // Try to initialize GpibDeviceType from default device value + def_prop = ds_class->get_default_device_property(dev_prop[i].name); + if (def_prop.is_empty()==false) def_prop >> gpibDeviceType; + } + // And try to extract GpibDeviceType value from database + if (dev_prop[i].is_empty()==false) dev_prop[i] >> gpibDeviceType; + + + } + /*----- PROTECTED REGION ID(Keithley428::get_device_property_after) ENABLED START -----*/ + + // Check device property data members init + + /*----- PROTECTED REGION END -----*/ // Keithley428::get_device_property_after + +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::always_executed_hook() + * Description : method always executed before any command is executed + */ +//-------------------------------------------------------- +void Keithley428::always_executed_hook() +{ + INFO_STREAM << "Keithley428::always_executed_hook() " << device_name << endl; + /*----- PROTECTED REGION ID(Keithley428::always_executed_hook) ENABLED START -----*/ + + // code always executed before all requests + + + /*----- PROTECTED REGION END -----*/ // Keithley428::always_executed_hook +} + + + +//-------------------------------------------------------- +/** + * Method : Keithley428::read_attr_hardware() + * Description : Hardware acquisition for attributes. + */ +//-------------------------------------------------------- +void Keithley428::read_attr_hardware(vector<long> &attr_list) +{ + DEBUG_STREAM << "Keithley428::read_attr_hardware(vector<long> &attr_list) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_attr_hardware) ENABLED START -----*/ + + // Add your own code + // Add your own code here + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_attr_hardware + +} + + +//-------------------------------------------------------- +/** + * Read Gain attribute + * Description: 0, 1, 2, 3 -> 10e3 V/A\n4 -> 10e4 V/A\n5 -> 10e5 V/A\n6 -> 10e6 V/A\n7 -> 10e7 V/A\n8 -> 10e8 V/A\n9 -> 10e9 V/A\n10 -> 10e10 V/A\n11 -> 10e11 V/A + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::read_Gain(Tango::Attribute &attr) +{ + DEBUG_STREAM << "Keithley428::read_Gain(Tango::Attribute &attr) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_Gain) ENABLED START -----*/ + DeviceData din; + DeviceData dout; + + string tmp_string; + string selected_str; + size_t pos; + + int r_v; + int w_v; + + sprintf(tmp_buffer,"U0X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + dout = gpib_device->command_inout(m_write_read.c_str(),din); + + dout >> tmp_string; + + pos = tmp_string.find("R"); + pos = pos + 1; + selected_str = tmp_string.substr(pos); + r_v = atoi(selected_str.c_str()); + + pos = tmp_string.find("W"); + pos = pos + 1; + selected_str = tmp_string.substr(pos); + w_v = atoi(selected_str.c_str()); + + if(w_v == 0){ + attr_Gain_write = r_v; + } else { + attr_Gain_write = r_v + 1; + } + + attr.set_value( &attr_Gain_write); + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_Gain +} + +//-------------------------------------------------------- +/** + * Write Gain attribute values to hardware. + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::write_Gain(Tango::WAttribute &attr) +{ + DEBUG_STREAM << "Keithley428::write_Gain(Tango::Attribute &attr) entering... " << endl; + + // Retrieve write value + Tango::DevLong w_val; + attr.get_write_value(w_val); + + /*----- PROTECTED REGION ID(Keithley428::write_Gain) ENABLED START -----*/ + DeviceData din; + + attr.get_write_value( w_val); + + if( (w_val < 0) || (w_val > 11) ){ + Tango::Except::throw_exception ((const char *)"Keithley428 error", + (const char *)"Value out of range (0-11)", + (const char *)"write_Gain"); + } + + + if(w_val < 11){ + sprintf(tmp_buffer,"W0XR%dX", (int)w_val); + strcpy(buffer,tmp_buffer); + din << buffer; + } else { + sprintf(tmp_buffer,"W1XR10X"); + strcpy(buffer,tmp_buffer); + din << buffer; + } + + + gpib_device->command_inout(m_write.c_str(),din); + + /*----- PROTECTED REGION END -----*/ // Keithley428::write_Gain +} + +//-------------------------------------------------------- +/** + * Read GainStr attribute + * Description: + * + * Data type: Tango::DevString + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::read_GainStr(Tango::Attribute &attr) +{ + DEBUG_STREAM << "Keithley428::read_GainStr(Tango::Attribute &attr) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_GainStr) ENABLED START -----*/ + DeviceData din; + DeviceData dout; + + string tmp_string; + + + sprintf(tmp_buffer,"U3X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + dout = gpib_device->command_inout(m_write_read.c_str(),din); + + dout >> tmp_string; + + strcpy(*attr_GainStr_read,tmp_string.c_str()); + + attr.set_value( attr_GainStr_read); + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_GainStr +} +//-------------------------------------------------------- +/** + * Read Overloaded attribute + * Description: 1 if device is overloaded + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::read_Overloaded(Tango::Attribute &attr) +{ + DEBUG_STREAM << "Keithley428::read_Overloaded(Tango::Attribute &attr) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_Overloaded) ENABLED START -----*/ + DeviceData din; + DeviceData dout; + + string tmp_string; + string selected_str; + size_t pos; + + int overload_flag; + + sprintf(tmp_buffer,"U1X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + dout = gpib_device->command_inout(m_write_read.c_str(),din); + + dout >> tmp_string; + + pos = 12; + selected_str = tmp_string.substr(pos,1); + overload_flag = atoi(selected_str.c_str()); + + *attr_Overloaded_read = overload_flag; + + attr.set_value(attr_Overloaded_read); + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_Overloaded +} +//-------------------------------------------------------- +/** + * Read Bypass attribute + * Description: 0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected. + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::read_Bypass(Tango::Attribute &attr) +{ + DEBUG_STREAM << "Keithley428::read_Bypass(Tango::Attribute &attr) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_Bypass) ENABLED START -----*/ + DeviceData din; + DeviceData dout; + + string tmp_string; + string selected_str; + size_t pos; + + int c_v; + + sprintf(tmp_buffer,"U0X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + dout = gpib_device->command_inout(m_write_read.c_str(),din); + + dout >> tmp_string; + + pos = tmp_string.find("C"); + pos = pos + 1; + selected_str = tmp_string.substr(pos); + c_v = atoi(selected_str.c_str()); + + attr_Bypass_write = c_v; + + attr.set_value( &attr_Bypass_write); + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_Bypass +} + +//-------------------------------------------------------- +/** + * Write Bypass attribute values to hardware. + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::write_Bypass(Tango::WAttribute &attr) +{ + DEBUG_STREAM << "Keithley428::write_Bypass(Tango::Attribute &attr) entering... " << endl; + + // Retrieve write value + Tango::DevLong w_val; + attr.get_write_value(w_val); + + /*----- PROTECTED REGION ID(Keithley428::write_Bypass) ENABLED START -----*/ + DeviceData din; + + attr.get_write_value( w_val); + + if( (w_val < 0) || (w_val > 1) ){ + Tango::Except::throw_exception ((const char *)"Keithley428 error", + (const char *)"Value out of range (off -> 0, on -> 1)", + (const char *)"write_Bypass"); + } + + sprintf(tmp_buffer,"C%dX", w_val); + strcpy(buffer,tmp_buffer); + din << buffer; + + gpib_device->command_inout(m_write.c_str(),din); + + /*----- PROTECTED REGION END -----*/ // Keithley428::write_Bypass +} + +//-------------------------------------------------------- +/** + * Read filterState attribute + * Description: State of the manual filter + * + * Data type: Tango::DevString + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::read_filterState(Tango::Attribute &attr) +{ + DEBUG_STREAM << "Keithley428::read_filterState(Tango::Attribute &attr) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_filterState) ENABLED START -----*/ + DeviceData din; + DeviceData dout; + + string tmp_string; + string selected_str; + string attr_str; + size_t pos; + + int r_v; + int w_v; + + sprintf(tmp_buffer,"U0X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + dout = gpib_device->command_inout(m_write_read.c_str(),din); + + dout >> tmp_string; + + pos = tmp_string.find("P"); + pos = pos + 1; + selected_str = tmp_string.substr(pos); + r_v = atoi(selected_str.c_str()); + + switch(r_v) + { + case 0: + attr_str = "OFF"; + break; + case 1: + attr_str = "ON"; + break; + default: + attr_str = "BAD_VALUE"; + break; + } + + strcpy(*attr_filterState_read,attr_str.c_str()); + attr.set_value( attr_filterState_read); + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_filterState +} +//-------------------------------------------------------- +/** + * Read autoFilterState attribute + * Description: State of the auto Filter + * + * Data type: Tango::DevString + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::read_autoFilterState(Tango::Attribute &attr) +{ + DEBUG_STREAM << "Keithley428::read_autoFilterState(Tango::Attribute &attr) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_autoFilterState) ENABLED START -----*/ + DeviceData din; + DeviceData dout; + + string tmp_string; + string selected_str; + string attr_str; + size_t pos; + + int r_v; + int w_v; + + sprintf(tmp_buffer,"U0X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + dout = gpib_device->command_inout(m_write_read.c_str(),din); + + dout >> tmp_string; + + pos = tmp_string.find("Z"); + pos = pos + 1; + selected_str = tmp_string.substr(pos); + r_v = atoi(selected_str.c_str()); + + switch(r_v) + { + case 0: + attr_str = "OFF"; + break; + case 1: + attr_str = "ON"; + break; + default: + attr_str = "BAD_VALUE"; + break; + } + + strcpy(*attr_autoFilterState_read,attr_str.c_str()); + attr.set_value( attr_autoFilterState_read); + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_autoFilterState +} +//-------------------------------------------------------- +/** + * Read RiseTime attribute + * Description: 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::read_RiseTime(Tango::Attribute &attr) +{ + DEBUG_STREAM << "Keithley428::read_RiseTime(Tango::Attribute &attr) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_RiseTime) ENABLED START -----*/ + DeviceData din; + DeviceData dout; + + string tmp_string; + string selected_str; + string rise_time_str; + size_t pos; + + int value; + + sprintf(tmp_buffer,"U0X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + dout = gpib_device->command_inout(m_write_read.c_str(),din); + + dout >> tmp_string; + + pos = tmp_string.find("T"); + pos = pos + 1; + selected_str = tmp_string.substr(pos); + value = atoi(selected_str.c_str()); + attr_RiseTime_write = value; + + //- get the value and transform it into str to display it + switch (value) + { + case 0: rise_time_str = "10e-6 sec"; + break; + case 1: rise_time_str = "30e-6 sec"; + break; + case 2: rise_time_str = "100e-6 sec"; + break; + case 3: rise_time_str = "300e-6 sec"; + break; + case 4: rise_time_str = "1e-3 sec"; + break; + case 5: rise_time_str = "3e-3 sec"; + break; + case 6: rise_time_str = "10e-3 sec"; + break; + case 7: rise_time_str = "30e-3 sec"; + break; + case 8: rise_time_str = "100e-3 sec"; + break; + case 9: rise_time_str = "300e-3 sec"; + break; + default: rise_time_str= "BAD_VALUE"; + break; + } + + strcpy(*attr_RiseTimeStr_read,rise_time_str.c_str()); + + attr.set_value( &attr_RiseTime_write); + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_RiseTime +} + +//-------------------------------------------------------- +/** + * Write RiseTime attribute values to hardware. + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::write_RiseTime(Tango::WAttribute &attr) +{ + DEBUG_STREAM << "Keithley428::write_RiseTime(Tango::Attribute &attr) entering... " << endl; + + // Retrieve write value + Tango::DevLong w_val; + attr.get_write_value(w_val); + + /*----- PROTECTED REGION ID(Keithley428::write_RiseTime) ENABLED START -----*/ + DeviceData din; + + attr.get_write_value( w_val); + + if( (w_val < 0) || (w_val > 9) ){ + Tango::Except::throw_exception ((const char *)"Keithley428 error", + (const char *)"Value out of range (0-9)", + (const char *)"write_RiseTime"); + } + + sprintf(tmp_buffer,"T%dX", (int)w_val); + strcpy(buffer,tmp_buffer); + din << buffer; + + gpib_device->command_inout(m_write.c_str(),din); + + /*----- PROTECTED REGION END -----*/ // Keithley428::write_RiseTime +} + +//-------------------------------------------------------- +/** + * Read RiseTimeStr attribute + * Description: 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n + * + * Data type: Tango::DevString + * Attr type: Scalar + */ +//-------------------------------------------------------- +void Keithley428::read_RiseTimeStr(Tango::Attribute &attr) +{ + DEBUG_STREAM << "Keithley428::read_RiseTimeStr(Tango::Attribute &attr) entering... " << endl; + /*----- PROTECTED REGION ID(Keithley428::read_RiseTimeStr) ENABLED START -----*/ + //- filled in read_RiseTime() + attr.set_value( attr_RiseTimeStr_read); + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_RiseTimeStr +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428Class::add_dynamic_attributes() + * Description : Create the dynamic attributes if any + * for specified device. + */ +//-------------------------------------------------------- +void Keithley428::add_dynamic_attributes() +{ + /*----- PROTECTED REGION ID(Keithley428::Class::add_dynamic_attributes) ENABLED START -----*/ + + // Add your own code to create and add dynamic attributes if any + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::add_dynamic_attributes + +} + + + +//======================================================== +// Command execution methods +//======================================================== + +//-------------------------------------------------------- +/** + * Execute the PerformZeroCorrect command: + * Description: Perform Zero correction. + * + * @param argin + * @returns + */ +//-------------------------------------------------------- +void Keithley428::perform_zero_correct() +{ + DEBUG_STREAM << "Keithley428::PerformZeroCorrect() - " << device_name << endl; + /*----- PROTECTED REGION ID(Keithley428::perform_zero_correct) ENABLED START -----*/ + + // Add your own code + DeviceData din; + + sprintf(tmp_buffer,"C2X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + gpib_device->command_inout(m_write.c_str(),din); + + /*----- PROTECTED REGION END -----*/ // Keithley428::perform_zero_correct + +} + +//-------------------------------------------------------- +/** + * Execute the FilterOn command: + * Description: Turn the filter ON + * + * @param argin + * @returns + */ +//-------------------------------------------------------- +void Keithley428::filter_on() +{ + DEBUG_STREAM << "Keithley428::FilterOn() - " << device_name << endl; + /*----- PROTECTED REGION ID(Keithley428::filter_on) ENABLED START -----*/ + + // Add your own code + DeviceData din; + + sprintf(tmp_buffer,"P1X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + gpib_device->command_inout(m_write.c_str(),din); + + /*----- PROTECTED REGION END -----*/ // Keithley428::filter_on + +} + +//-------------------------------------------------------- +/** + * Execute the FilterOff command: + * Description: Turn the filter OFF + * + * @param argin + * @returns + */ +//-------------------------------------------------------- +void Keithley428::filter_off() +{ + DEBUG_STREAM << "Keithley428::FilterOff() - " << device_name << endl; + /*----- PROTECTED REGION ID(Keithley428::filter_off) ENABLED START -----*/ + + // Add your own code + DeviceData din; + + sprintf(tmp_buffer,"P0X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + gpib_device->command_inout(m_write.c_str(),din); + + /*----- PROTECTED REGION END -----*/ // Keithley428::filter_off + +} + +//-------------------------------------------------------- +/** + * Execute the AutoFilterOn command: + * Description: Enable Auto Filter + * + * @param argin + * @returns + */ +//-------------------------------------------------------- +void Keithley428::auto_filter_on() +{ + DEBUG_STREAM << "Keithley428::AutoFilterOn() - " << device_name << endl; + /*----- PROTECTED REGION ID(Keithley428::auto_filter_on) ENABLED START -----*/ + + // Add your own code + //- read the current filterState + Tango::Attribute &filterState = dev_attr->get_attr_by_name("filterState"); + this->read_filterState(filterState); + + string filter_state = *attr_filterState_read; + + if(filter_state == "ON") + { + Tango::Except::throw_exception( + (const char *)"OPERATION_NOT_ALLOWED", + (const char *)"Auto filter ON is not allowed when filter is already ON", + (const char *)"Keithley428::auto_filter_on"); + } + + DeviceData din; + + sprintf(tmp_buffer,"Z1X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + gpib_device->command_inout(m_write.c_str(),din); + + /*----- PROTECTED REGION END -----*/ // Keithley428::auto_filter_on + +} + +//-------------------------------------------------------- +/** + * Execute the AutoFilterOff command: + * Description: Disable Auto Filter + * + * @param argin + * @returns + */ +//-------------------------------------------------------- +void Keithley428::auto_filter_off() +{ + DEBUG_STREAM << "Keithley428::AutoFilterOff() - " << device_name << endl; + /*----- PROTECTED REGION ID(Keithley428::auto_filter_off) ENABLED START -----*/ + + // Add your own code + DeviceData din; + + sprintf(tmp_buffer,"Z0X"); + strcpy(buffer,tmp_buffer); + din << buffer; + + gpib_device->command_inout(m_write.c_str(),din); + + /*----- PROTECTED REGION END -----*/ // Keithley428::auto_filter_off + +} + + + /*----- PROTECTED REGION ID(Keithley428::namespace_ending) ENABLED START -----*/ + + // Additional Methods + + /*----- PROTECTED REGION END -----*/ // Keithley428::namespace_ending +} // namespace diff --git a/Keithley428.h b/Keithley428.h index 5b125d855207c7bb108d2a137e5796bf38e797bd..ea23c00bb3b41df21e0f5ca9efd5b3e2e99c65ea 100644 --- a/Keithley428.h +++ b/Keithley428.h @@ -1,327 +1,324 @@ -//============================================================================= -// -// file : Keithley428.h -// -// description : Include for the Keithley428 class. -// -// project : Keithley428 Current Amplifier -// -// $Author: $ -// -// $Revision: $ -// $Date: $ -// -// SVN only: -// $HeadURL: $ -// -// CVS only: -// $Source: $ -// $Log: $ -// -// copyleft : European Synchrotron Radiation Facility -// BP 220, Grenoble 38043 -// FRANCE -// -//============================================================================= -// -// This file is generated by POGO -// (Program Obviously used to Generate tango Object) -// -// (c) - Software Engineering Group - ESRF -//============================================================================= -#ifndef _KEITHLEY428_H -#define _KEITHLEY428_H - -#include <tango.h> -using namespace Tango; - -/** - * @author $Author: $ - * @version $Revision: $ - */ - - // Add your own constant definitions here. - //----------------------------------------------- - -#define MAX_STRING_LENGTH 256 - - -namespace Keithley428_ns -{ - -/** - * Class Description: - * Class for controlling the Keithley428 current amplifier. - */ - -/* - * Device States Description: -* Tango::ON : -* Tango::FAULT : - */ - - -class Keithley428: public Tango::Device_4Impl -{ -public : - // Add your own data members here - //----------------------------------------- - - - // Here is the Start of the automatic code generation part - //------------------------------------------------------------- -/** - * @name attributes - * Attribute member data. - */ -//@{ - Tango::DevLong *attr_Gain_read; - Tango::DevLong attr_Gain_write; - Tango::DevString *attr_GainStr_read; - Tango::DevLong *attr_Overloaded_read; - Tango::DevLong *attr_Bypass_read; - Tango::DevLong attr_Bypass_write; - Tango::DevString *attr_filterState_read; - Tango::DevString *attr_autoFilterState_read; - Tango::DevLong *attr_RiseTime_read; - Tango::DevLong attr_RiseTime_write; - Tango::DevString *attr_RiseTimeStr_read; -//@} - -/** - * @name Device properties - * Device properties member data. - */ -//@{ -/** - * Name of the gpib device connected to the hardware. - */ - string gpibDevice; -/** - * Type of the Gpib device used to communicate with the Keithley. - * this can be: - * 1 -> Desy GpibDevice (default value) - * 2 -> Soleil GpibDeviceServer - */ - Tango::DevUShort gpibDeviceType; -//@} - -/** - * @name Device properties - * Device property member data. - */ -//@{ -//@} - -/**@name Constructors - * Miscellaneous constructors */ -//@{ -/** - * Constructs a newly allocated Command object. - * - * @param cl Class. - * @param s Device Name - */ - Keithley428(Tango::DeviceClass *cl,string &s); -/** - * Constructs a newly allocated Command object. - * - * @param cl Class. - * @param s Device Name - */ - Keithley428(Tango::DeviceClass *cl,const char *s); -/** - * Constructs a newly allocated Command object. - * - * @param cl Class. - * @param s Device name - * @param d Device description. - */ - Keithley428(Tango::DeviceClass *cl,const char *s,const char *d); -//@} - -/**@name Destructor - * Only one destructor is defined for this class */ -//@{ -/** - * The object destructor. - */ - ~Keithley428() {delete_device();}; -/** - * will be called at device destruction or at init command. - */ - void delete_device(); -//@} - - -/**@name Miscellaneous methods */ -//@{ -/** - * Initialize the device - */ - virtual void init_device(); -/** - * Always executed method before execution command method. - */ - virtual void always_executed_hook(); - -//@} - -/** - * @name Keithley428 methods prototypes - */ - -//@{ -/** - * Hardware acquisition for attributes. - */ - virtual void read_attr_hardware(vector<long> &attr_list); -/** - * Extract real attribute values for Gain acquisition result. - */ - virtual void read_Gain(Tango::Attribute &attr); -/** - * Write Gain attribute values to hardware. - */ - virtual void write_Gain(Tango::WAttribute &attr); -/** - * Extract real attribute values for GainStr acquisition result. - */ - virtual void read_GainStr(Tango::Attribute &attr); -/** - * Extract real attribute values for Overloaded acquisition result. - */ - virtual void read_Overloaded(Tango::Attribute &attr); -/** - * Extract real attribute values for Bypass acquisition result. - */ - virtual void read_Bypass(Tango::Attribute &attr); -/** - * Write Bypass attribute values to hardware. - */ - virtual void write_Bypass(Tango::WAttribute &attr); -/** - * Extract real attribute values for filterState acquisition result. - */ - virtual void read_filterState(Tango::Attribute &attr); -/** - * Extract real attribute values for autoFilterState acquisition result. - */ - virtual void read_autoFilterState(Tango::Attribute &attr); -/** - * Extract real attribute values for RiseTime acquisition result. - */ - virtual void read_RiseTime(Tango::Attribute &attr); -/** - * Write RiseTime attribute values to hardware. - */ - virtual void write_RiseTime(Tango::WAttribute &attr); -/** - * Extract real attribute values for RiseTimeStr acquisition result. - */ - virtual void read_RiseTimeStr(Tango::Attribute &attr); -/** - * Read/Write allowed for Gain attribute. - */ - virtual bool is_Gain_allowed(Tango::AttReqType type); -/** - * Read/Write allowed for GainStr attribute. - */ - virtual bool is_GainStr_allowed(Tango::AttReqType type); -/** - * Read/Write allowed for Overloaded attribute. - */ - virtual bool is_Overloaded_allowed(Tango::AttReqType type); -/** - * Read/Write allowed for Bypass attribute. - */ - virtual bool is_Bypass_allowed(Tango::AttReqType type); -/** - * Read/Write allowed for filterState attribute. - */ - virtual bool is_filterState_allowed(Tango::AttReqType type); -/** - * Read/Write allowed for autoFilterState attribute. - */ - virtual bool is_autoFilterState_allowed(Tango::AttReqType type); -/** - * Read/Write allowed for RiseTime attribute. - */ - virtual bool is_RiseTime_allowed(Tango::AttReqType type); -/** - * Read/Write allowed for RiseTimeStr attribute. - */ - virtual bool is_RiseTimeStr_allowed(Tango::AttReqType type); -/** - * Execution allowed for PerformZeroCorrect command. - */ - virtual bool is_PerformZeroCorrect_allowed(const CORBA::Any &any); -/** - * Execution allowed for FilterOn command. - */ - virtual bool is_FilterOn_allowed(const CORBA::Any &any); -/** - * Execution allowed for FilterOff command. - */ - virtual bool is_FilterOff_allowed(const CORBA::Any &any); -/** - * Execution allowed for AutoFilterOn command. - */ - virtual bool is_AutoFilterOn_allowed(const CORBA::Any &any); -/** - * Execution allowed for AutoFilterOff command. - */ - virtual bool is_AutoFilterOff_allowed(const CORBA::Any &any); -/** - * Perform Zero correction. - * @exception DevFailed - */ - void perform_zero_correct(); -/** - * Turn the filter ON - * @exception DevFailed - */ - void filter_on(); -/** - * Turn the filter OFF - * @exception DevFailed - */ - void filter_off(); -/** - * Enable Auto Filter - * @exception DevFailed - */ - void auto_filter_on(); -/** - * Disable Auto Filter - * @exception DevFailed - */ - void auto_filter_off(); - -/** - * Read the device properties from database - */ - void get_device_property(); -//@} - - // Here is the end of the automatic code generation part - //------------------------------------------------------------- - - - -protected : - // Add your own data members here - //----------------------------------------- - - DeviceProxy *gpib_device; - - DevString buffer; - char tmp_buffer[180]; - - std::string m_write_read; - std::string m_write; -}; - -} // namespace_ns - -#endif // _KEITHLEY428_H +/*----- PROTECTED REGION ID(Keithley428.h) ENABLED START -----*/ +//============================================================================= +// +// file : Keithley428.h +// +// description : Include for the Keithley428 class. +// +// project : Keithley428 Current Amplifier. +// +// $Author: $ +// +// $Revision: $ +// $Date: $ +// +// SVN only: +// $HeadURL: $ +// +// CVS only: +// $Source: $ +// $Log: $ +// +//============================================================================= +// This file is generated by POGO +// (Program Obviously used to Generate tango Object) +//============================================================================= + + +#ifndef KEITHLEY428_H +#define KEITHLEY428_H + + +#include <tango.h> +using namespace Tango; + + + +#define MAX_STRING_LENGTH 256 + + + +/*----- PROTECTED REGION END -----*/ + + +/** + * Keithley428 class Description: + * Class for controlling the Keithley428 current amplifier. + */ + +namespace Keithley428_ns +{ + /*----- PROTECTED REGION ID(Keithley428::Additional Class Declarations) ENABLED START -----*/ + + // Additional Class Declarations + + /*----- PROTECTED REGION END -----*/ // Keithley428::Additional Class Declarations + + +class Keithley428 : public Tango::Device_4Impl +{ + + + /*----- PROTECTED REGION ID(Keithley428::Data Members) ENABLED START -----*/ + + // Add your own data members +public: + + + + /*----- PROTECTED REGION END -----*/ // Keithley428::Data Members + + +// Device property data members +public: // GpibDevice: Name of the gpib device connected to the hardware. + string gpibDevice; + // GpibDeviceType: Type of the Gpib device used to communicate with the Keithley. + // this can be: + // 1 -> Desy GpibDevice (default value) + // 2 -> Soleil GpibDeviceServer + Tango::DevUShort gpibDeviceType; + + Tango::DevLong attr_Gain_write; + Tango::DevLong attr_Bypass_write; + Tango::DevLong attr_RiseTime_write; + +// Attribute data members +public: + Tango::DevLong *attr_Gain_read; + Tango::DevString *attr_GainStr_read; + Tango::DevLong *attr_Overloaded_read; + Tango::DevLong *attr_Bypass_read; + Tango::DevString *attr_filterState_read; + Tango::DevString *attr_autoFilterState_read; + Tango::DevLong *attr_RiseTime_read; + Tango::DevString *attr_RiseTimeStr_read; + + + +// Constructors and destructors +public: + /** + * Constructs a newly allocated Command object. + * + * @param cl Class. + * @param s Device Name + */ + Keithley428(Tango::DeviceClass *cl,string &s); + /** + * Constructs a newly allocated Command object. + * + * @param cl Class. + * @param s Device Name + */ + Keithley428(Tango::DeviceClass *cl,const char *s); + /** + * Constructs a newly allocated Command object. + * + * @param cl Class. + * @param s Device name + * @param d Device description. + */ + Keithley428(Tango::DeviceClass *cl,const char *s,const char *d); + /** + * The object destructor. + */ + ~Keithley428() {delete_device();}; + + + +// Miscellaneous methods +public: + /** + * will be called at device destruction or at init command. + */ + void delete_device(); + /** + * Initialize the device + */ + virtual void init_device(); + /** + * Read the device properties from database + */ + void get_device_property(); + /** + * Always executed method before execution command method. + */ + virtual void always_executed_hook(); + + +// Attribute methods +public: + /** + * Method : Keithley428::read_attr_hardware() + * Description : Hardware acquisition for attributes. + */ + virtual void read_attr_hardware(vector<long> &attr_list); + + + /** + * Gain attribute related methods. + * Description: 0, 1, 2, 3 -> 10e3 V/A\n4 -> 10e4 V/A\n5 -> 10e5 V/A\n6 -> 10e6 V/A\n7 -> 10e7 V/A\n8 -> 10e8 V/A\n9 -> 10e9 V/A\n10 -> 10e10 V/A\n11 -> 10e11 V/A + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ + virtual void read_Gain(Tango::Attribute &attr); + virtual void write_Gain(Tango::WAttribute &attr); + virtual bool is_Gain_allowed(Tango::AttReqType type); + + + + /** + * GainStr attribute related methods. + * Description: + * + * Data type: Tango::DevString + * Attr type: Scalar + */ + virtual void read_GainStr(Tango::Attribute &attr); + virtual bool is_GainStr_allowed(Tango::AttReqType type); + + + + /** + * Overloaded attribute related methods. + * Description: 1 if device is overloaded + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ + virtual void read_Overloaded(Tango::Attribute &attr); + virtual bool is_Overloaded_allowed(Tango::AttReqType type); + + + + /** + * Bypass attribute related methods. + * Description: 0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected. + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ + virtual void read_Bypass(Tango::Attribute &attr); + virtual void write_Bypass(Tango::WAttribute &attr); + virtual bool is_Bypass_allowed(Tango::AttReqType type); + + + + /** + * filterState attribute related methods. + * Description: State of the manual filter + * + * Data type: Tango::DevString + * Attr type: Scalar + */ + virtual void read_filterState(Tango::Attribute &attr); + virtual bool is_filterState_allowed(Tango::AttReqType type); + + + + /** + * autoFilterState attribute related methods. + * Description: State of the auto Filter + * + * Data type: Tango::DevString + * Attr type: Scalar + */ + virtual void read_autoFilterState(Tango::Attribute &attr); + virtual bool is_autoFilterState_allowed(Tango::AttReqType type); + + + + /** + * RiseTime attribute related methods. + * Description: 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n + * + * Data type: Tango::DevLong + * Attr type: Scalar + */ + virtual void read_RiseTime(Tango::Attribute &attr); + virtual void write_RiseTime(Tango::WAttribute &attr); + virtual bool is_RiseTime_allowed(Tango::AttReqType type); + + + + /** + * RiseTimeStr attribute related methods. + * Description: 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n + * + * Data type: Tango::DevString + * Attr type: Scalar + */ + virtual void read_RiseTimeStr(Tango::Attribute &attr); + virtual bool is_RiseTimeStr_allowed(Tango::AttReqType type); + + + + /** + * Method : Keithley428::add_dynamic_attributes() + * Description : Add dynamic attributes if any. + */ + void add_dynamic_attributes(); + +// Command related methods +public: + + + /** + * Command PerformZeroCorrect related methods. + */ + void perform_zero_correct(); + virtual bool is_PerformZeroCorrect_allowed(const CORBA::Any &any); + + /** + * Command FilterOn related methods. + */ + void filter_on(); + virtual bool is_FilterOn_allowed(const CORBA::Any &any); + + /** + * Command FilterOff related methods. + */ + void filter_off(); + virtual bool is_FilterOff_allowed(const CORBA::Any &any); + + /** + * Command AutoFilterOn related methods. + */ + void auto_filter_on(); + virtual bool is_AutoFilterOn_allowed(const CORBA::Any &any); + + /** + * Command AutoFilterOff related methods. + */ + void auto_filter_off(); + virtual bool is_AutoFilterOff_allowed(const CORBA::Any &any); + + + + /*----- PROTECTED REGION ID(Keithley428::Additional Method prototypes) ENABLED START -----*/ + + // Additional Method prototypes +protected : + + DeviceProxy *gpib_device; + + DevString buffer; + char tmp_buffer[180]; + + std::string m_write_read; + std::string m_write; + + /*----- PROTECTED REGION END -----*/ // Keithley428::Additional Method prototypes + +}; + + /*----- PROTECTED REGION ID(Keithley428::Additional Classes Definitions) ENABLED START -----*/ + + // Additional Classes definitions + + /*----- PROTECTED REGION END -----*/ // Keithley428::Additional Classes Definitions + +} // namespace + +#endif // KEITHLEY428_H diff --git a/Keithley428.xmi b/Keithley428.xmi new file mode 100644 index 0000000000000000000000000000000000000000..6b1da4d525c2f899d3d8ea4a5bf340200cdf9f5a --- /dev/null +++ b/Keithley428.xmi @@ -0,0 +1,156 @@ +<?xml version="1.0" encoding="ASCII"?> +<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> + <classes name="Keithley428"> + <description description="Class for controlling the Keithley428 current amplifier." title="Keithley428 Current Amplifier" sourcePath="/home/tnunez/Tango_svn/DeviceClasses/MeasureInstruments/Keithley/Keithley428/trunk" language="Cpp" filestogenerate="XMI file,Code files,Makefile,html Pages" hasAbstractCommand="false" hasAbstractAttribute="false"> + <inheritances classname="Device_4Impl" sourcePath=""/> + <identification contact="at mail.desy.de - tnunez" author="tnunez" emailDomain="mail.desy.de" classFamily="Instrumentation" siteSpecific="" platform="Unix Like" bus="GPIB" manufacturer="Keithley" reference="428"/> + <comments commandsTable="//================================================================
//
// The following table gives the correspondence
// between command and method names.
//
// Command name | Method name
//----------------------------------------------------------------
// State | Inherited (no method)
// Status | Inherited (no method)
// PerformZeroCorrect | perform_zero_correct
// FilterOn | filter_on
// FilterOff | filter_off
// AutoFilterOn | auto_filter_on
// AutoFilterOff | auto_filter_off
//================================================================"/> + </description> + <deviceProperties name="GpibDevice" description="Name of the gpib device connected to the hardware."> + <type xsi:type="pogoDsl:StringType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + </deviceProperties> + <deviceProperties name="GpibDeviceType" description="Type of the Gpib device used to communicate with the Keithley.
this can be:
1 -> Desy GpibDevice (default value)
2 -> Soleil GpibDeviceServer"> + <type xsi:type="pogoDsl:UShortType"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <DefaultPropValue>1</DefaultPropValue> + </deviceProperties> + <commands name="State" description="This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR"> + <argin description="none."> + <type xsi:type="pogoDsl:VoidType"/> + </argin> + <argout description="State Code"> + <type xsi:type="pogoDsl:StateType"/> + </argout> + <status abstract="true" inherited="true" concrete="true" concreteHere="false"/> + </commands> + <commands name="Status" description="This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR"> + <argin description="none."> + <type xsi:type="pogoDsl:VoidType"/> + </argin> + <argout description="Status description"> + <type xsi:type="pogoDsl:ConstStringType"/> + </argout> + <status abstract="true" inherited="true" concrete="true" concreteHere="false"/> + </commands> + <commands name="PerformZeroCorrect" description="Perform Zero correction." execMethod="perform_zero_correct" displayLevel="OPERATOR"> + <argin description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argin> + <argout description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argout> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + </commands> + <commands name="FilterOn" description="Turn the filter ON" execMethod="filter_on" displayLevel="OPERATOR"> + <argin description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argin> + <argout description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argout> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <excludedStates>FAULT</excludedStates> + </commands> + <commands name="FilterOff" description="Turn the filter OFF" execMethod="filter_off" displayLevel="OPERATOR"> + <argin description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argin> + <argout description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argout> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <excludedStates>FAULT</excludedStates> + </commands> + <commands name="AutoFilterOn" description="Enable Auto Filter" execMethod="auto_filter_on" displayLevel="OPERATOR"> + <argin description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argin> + <argout description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argout> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <excludedStates>FAULT</excludedStates> + </commands> + <commands name="AutoFilterOff" description="Disable Auto Filter" execMethod="auto_filter_off" displayLevel="OPERATOR"> + <argin description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argin> + <argout description=""> + <type xsi:type="pogoDsl:VoidType"/> + </argout> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <excludedStates>FAULT</excludedStates> + </commands> + <attributes name="Gain" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0" memorized="true" memorizedAtInit="true"> + <dataType xsi:type="pogoDsl:IntType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="0, 1, 2, 3 -> 10e3 V/A\n4 -> 10e4 V/A\n5 -> 10e5 V/A\n6 -> 10e6 V/A\n7 -> 10e7 V/A\n8 -> 10e8 V/A\n9 -> 10e9 V/A\n10 -> 10e10 V/A\n11 -> 10e11 V/A" label="" unit=" " standardUnit="" displayUnit="" format="%d" maxValue="11" minValue="0" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + <readExcludedStates>FAULT</readExcludedStates> + </attributes> + <attributes name="GainStr" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0"> + <dataType xsi:type="pogoDsl:StringType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + <readExcludedStates>FAULT</readExcludedStates> + </attributes> + <attributes name="Overloaded" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0"> + <dataType xsi:type="pogoDsl:IntType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="1 if device is overloaded" label="" unit=" " standardUnit="" displayUnit="" format="%d" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + <readExcludedStates>FAULT</readExcludedStates> + </attributes> + <attributes name="Bypass" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0"> + <dataType xsi:type="pogoDsl:IntType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected." label="" unit=" " standardUnit="" displayUnit="" format="%d" maxValue="2" minValue="0" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + </attributes> + <attributes name="filterState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0"> + <dataType xsi:type="pogoDsl:StringType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="State of the manual filter" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + <readExcludedStates>FAULT</readExcludedStates> + </attributes> + <attributes name="autoFilterState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0"> + <dataType xsi:type="pogoDsl:StringType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="State of the auto Filter" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + <readExcludedStates>FAULT</readExcludedStates> + </attributes> + <attributes name="RiseTime" attType="Scalar" rwType="READ_WRITE" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0" memorized="true" memorizedAtInit="true"> + <dataType xsi:type="pogoDsl:IntType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n" label="" unit=" " standardUnit="" displayUnit="" format="%d" maxValue="9" minValue="0" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + <readExcludedStates>FAULT</readExcludedStates> + </attributes> + <attributes name="RiseTimeStr" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="0" maxY="0"> + <dataType xsi:type="pogoDsl:StringType"/> + <changeEvent fire="false" libCheckCriteria="false"/> + <archiveEvent fire="false" libCheckCriteria="false"/> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + <properties description="0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n" label="" unit=" " standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> + <readExcludedStates>FAULT</readExcludedStates> + </attributes> + <states name="ON" description=""> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + </states> + <states name="FAULT" description=""> + <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> + </states> + <preferences docHome="./doc_html" makefileHome="/usr/share/pogo/preferences"/> + </classes> +</pogoDsl:PogoSystem> diff --git a/Keithley428Class.cpp b/Keithley428Class.cpp index c565584133d338a6cecb9d87ac5995a7d27be9d2..8a16150dec0767829ccf584c36e958faf0bf7b23 100644 --- a/Keithley428Class.cpp +++ b/Keithley428Class.cpp @@ -1,679 +1,956 @@ -static const char *ClassId = "$Id: $"; -static const char *TagName = "$Name: $"; -static const char *CvsPath = "$Source: $"; -static const char *SvnPath = "$HeadURL: $"; -static const char *HttpServer = "http://www.esrf.fr/computing/cs/tango/tango_doc/ds_doc/"; -//+============================================================================= -// -// file : Keithley428Class.cpp -// -// description : C++ source for the Keithley428Class. A singleton -// class derived from DeviceClass. It implements the -// command list and all properties and methods required -// by the Keithley428 once per process. -// -// project : TANGO Device Server -// -// $Author: $ -// -// $Revision: $ -// -// $Log: $ -// -// copyleft : European Synchrotron Radiation Facility -// BP 220, Grenoble 38043 -// FRANCE -// -//-============================================================================= -// -// This file is generated by POGO -// (Program Obviously used to Generate tango Object) -// -// (c) - Software Engineering Group - ESRF -//============================================================================= - - -#include <tango.h> - -#include <Keithley428.h> -#include <Keithley428Class.h> - - -//+---------------------------------------------------------------------------- -/** - * Create Keithley428Class singleton and return it in a C function for Python usage - */ -//+---------------------------------------------------------------------------- -extern "C" { -#ifdef WIN32 - -__declspec(dllexport) - -#endif - - Tango::DeviceClass *_create_Keithley428_class(const char *name) { - return Keithley428_ns::Keithley428Class::init(name); - } -} - - -namespace Keithley428_ns -{ -//+---------------------------------------------------------------------------- -// -// method : AutoFilterOffClass::execute() -// -// description : method to trigger the execution of the command. -// PLEASE DO NOT MODIFY this method core without pogo -// -// in : - device : The device on which the command must be executed -// - in_any : The command input data -// -// returns : The command output data (packed in the Any object) -// -//----------------------------------------------------------------------------- -CORBA::Any *AutoFilterOffClass::execute(Tango::DeviceImpl *device,const CORBA::Any &in_any) -{ - - cout2 << "AutoFilterOffClass::execute(): arrived" << endl; - - ((static_cast<Keithley428 *>(device))->auto_filter_off()); - return new CORBA::Any(); -} - -//+---------------------------------------------------------------------------- -// -// method : AutoFilterOnClass::execute() -// -// description : method to trigger the execution of the command. -// PLEASE DO NOT MODIFY this method core without pogo -// -// in : - device : The device on which the command must be executed -// - in_any : The command input data -// -// returns : The command output data (packed in the Any object) -// -//----------------------------------------------------------------------------- -CORBA::Any *AutoFilterOnClass::execute(Tango::DeviceImpl *device,const CORBA::Any &in_any) -{ - - cout2 << "AutoFilterOnClass::execute(): arrived" << endl; - - ((static_cast<Keithley428 *>(device))->auto_filter_on()); - return new CORBA::Any(); -} - -//+---------------------------------------------------------------------------- -// -// method : FilterOffCmd::execute() -// -// description : method to trigger the execution of the command. -// PLEASE DO NOT MODIFY this method core without pogo -// -// in : - device : The device on which the command must be executed -// - in_any : The command input data -// -// returns : The command output data (packed in the Any object) -// -//----------------------------------------------------------------------------- -CORBA::Any *FilterOffCmd::execute(Tango::DeviceImpl *device,const CORBA::Any &in_any) -{ - - cout2 << "FilterOffCmd::execute(): arrived" << endl; - - ((static_cast<Keithley428 *>(device))->filter_off()); - return new CORBA::Any(); -} - -//+---------------------------------------------------------------------------- -// -// method : FilterOnCmd::execute() -// -// description : method to trigger the execution of the command. -// PLEASE DO NOT MODIFY this method core without pogo -// -// in : - device : The device on which the command must be executed -// - in_any : The command input data -// -// returns : The command output data (packed in the Any object) -// -//----------------------------------------------------------------------------- -CORBA::Any *FilterOnCmd::execute(Tango::DeviceImpl *device,const CORBA::Any &in_any) -{ - - cout2 << "FilterOnCmd::execute(): arrived" << endl; - - ((static_cast<Keithley428 *>(device))->filter_on()); - return new CORBA::Any(); -} - - -//+---------------------------------------------------------------------------- -// -// method : PerformZeroCorrectClass::execute() -// -// description : method to trigger the execution of the command. -// PLEASE DO NOT MODIFY this method core without pogo -// -// in : - device : The device on which the command must be executed -// - in_any : The command input data -// -// returns : The command output data (packed in the Any object) -// -//----------------------------------------------------------------------------- -CORBA::Any *PerformZeroCorrectClass::execute(Tango::DeviceImpl *device,const CORBA::Any &in_any) -{ - - cout2 << "PerformZeroCorrectClass::execute(): arrived" << endl; - - ((static_cast<Keithley428 *>(device))->perform_zero_correct()); - return new CORBA::Any(); -} - - - -// -//---------------------------------------------------------------- -// Initialize pointer for singleton pattern -//---------------------------------------------------------------- -// -Keithley428Class *Keithley428Class::_instance = NULL; - -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::Keithley428Class(string &s) -// -// description : constructor for the Keithley428Class -// -// in : - s : The class name -// -//----------------------------------------------------------------------------- -Keithley428Class::Keithley428Class(string &s):DeviceClass(s) -{ - - cout2 << "Entering Keithley428Class constructor" << endl; - set_default_property(); - get_class_property(); - write_class_property(); - - cout2 << "Leaving Keithley428Class constructor" << endl; - -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::~Keithley428Class() -// -// description : destructor for the Keithley428Class -// -//----------------------------------------------------------------------------- -Keithley428Class::~Keithley428Class() -{ - _instance = NULL; -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::instance -// -// description : Create the object if not already done. Otherwise, just -// return a pointer to the object -// -// in : - name : The class name -// -//----------------------------------------------------------------------------- -Keithley428Class *Keithley428Class::init(const char *name) -{ - if (_instance == NULL) - { - try - { - string s(name); - _instance = new Keithley428Class(s); - } - catch (bad_alloc) - { - throw; - } - } - return _instance; -} - -Keithley428Class *Keithley428Class::instance() -{ - if (_instance == NULL) - { - cerr << "Class is not initialised !!" << endl; - exit(-1); - } - return _instance; -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::command_factory -// -// description : Create the command object(s) and store them in the -// command list -// -//----------------------------------------------------------------------------- -void Keithley428Class::command_factory() -{ - command_list.push_back(new PerformZeroCorrectClass("PerformZeroCorrect", - Tango::DEV_VOID, Tango::DEV_VOID, - "", - "", - Tango::OPERATOR)); - command_list.push_back(new FilterOnCmd("FilterOn", - Tango::DEV_VOID, Tango::DEV_VOID, - "", - "", - Tango::OPERATOR)); - command_list.push_back(new FilterOffCmd("FilterOff", - Tango::DEV_VOID, Tango::DEV_VOID, - "", - "", - Tango::OPERATOR)); - command_list.push_back(new AutoFilterOnClass("AutoFilterOn", - Tango::DEV_VOID, Tango::DEV_VOID, - "", - "", - Tango::OPERATOR)); - command_list.push_back(new AutoFilterOffClass("AutoFilterOff", - Tango::DEV_VOID, Tango::DEV_VOID, - "", - "", - Tango::OPERATOR)); - - // add polling if any - for (unsigned int i=0 ; i<command_list.size(); i++) - { - } -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::get_class_property -// -// description : Get the class property for specified name. -// -// in : string name : The property name -// -//+---------------------------------------------------------------------------- -Tango::DbDatum Keithley428Class::get_class_property(string &prop_name) -{ - for (unsigned int i=0 ; i<cl_prop.size() ; i++) - if (cl_prop[i].name == prop_name) - return cl_prop[i]; - // if not found, return an empty DbDatum - return Tango::DbDatum(prop_name); -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::get_default_device_property() -// -// description : Return the default value for device property. -// -//----------------------------------------------------------------------------- -Tango::DbDatum Keithley428Class::get_default_device_property(string &prop_name) -{ - for (unsigned int i=0 ; i<dev_def_prop.size() ; i++) - if (dev_def_prop[i].name == prop_name) - return dev_def_prop[i]; - // if not found, return an empty DbDatum - return Tango::DbDatum(prop_name); -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::get_default_class_property() -// -// description : Return the default value for class property. -// -//----------------------------------------------------------------------------- -Tango::DbDatum Keithley428Class::get_default_class_property(string &prop_name) -{ - for (unsigned int i=0 ; i<cl_def_prop.size() ; i++) - if (cl_def_prop[i].name == prop_name) - return cl_def_prop[i]; - // if not found, return an empty DbDatum - return Tango::DbDatum(prop_name); -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::device_factory -// -// description : Create the device object(s) and store them in the -// device list -// -// in : Tango::DevVarStringArray *devlist_ptr : The device name list -// -//----------------------------------------------------------------------------- -void Keithley428Class::device_factory(const Tango::DevVarStringArray *devlist_ptr) -{ - - // Create all devices.(Automatic code generation) - //------------------------------------------------------------- - for (unsigned long i=0 ; i < devlist_ptr->length() ; i++) - { - cout4 << "Device name : " << (*devlist_ptr)[i].in() << endl; - - // Create devices and add it into the device list - //---------------------------------------------------- - device_list.push_back(new Keithley428(this, (*devlist_ptr)[i])); - - // Export device to the outside world - // Check before if database used. - //--------------------------------------------- - if ((Tango::Util::_UseDb == true) && (Tango::Util::_FileDb == false)) - export_device(device_list.back()); - else - export_device(device_list.back(), (*devlist_ptr)[i]); - } - // End of Automatic code generation - //------------------------------------------------------------- - -} -//+---------------------------------------------------------------------------- -// Method: Keithley428Class::attribute_factory(vector<Tango::Attr *> &att_list) -//----------------------------------------------------------------------------- -void Keithley428Class::attribute_factory(vector<Tango::Attr *> &att_list) -{ - // Attribute : Gain - GainAttrib *gain = new GainAttrib(); - Tango::UserDefaultAttrProp gain_prop; - gain_prop.set_unit(" "); - gain_prop.set_format("%d"); - gain_prop.set_max_value("11"); - gain_prop.set_min_value("0"); - gain_prop.set_description("0, 1, 2, 3 -> 10e3 V/A\n4 -> 10e4 V/A\n5 -> 10e5 V/A\n6 -> 10e6 V/A\n7 -> 10e7 V/A\n8 -> 10e8 V/A\n9 -> 10e9 V/A\n10 -> 10e10 V/A\n11 -> 10e11 V/A"); - gain->set_default_properties(gain_prop); - gain->set_memorized(); - gain->set_memorized_init(true); - att_list.push_back(gain); - - // Attribute : GainStr - GainStrAttrib *gain_str = new GainStrAttrib(); - att_list.push_back(gain_str); - - // Attribute : Overloaded - OverloadedAttrib *overloaded = new OverloadedAttrib(); - Tango::UserDefaultAttrProp overloaded_prop; - overloaded_prop.set_unit(" "); - overloaded_prop.set_format("%d"); - overloaded_prop.set_description("1 if device is overloaded"); - overloaded->set_default_properties(overloaded_prop); - att_list.push_back(overloaded); - - // Attribute : Bypass - BypassAttrib *bypass = new BypassAttrib(); - Tango::UserDefaultAttrProp bypass_prop; - bypass_prop.set_unit(" "); - bypass_prop.set_format("%d"); - bypass_prop.set_max_value("2"); - bypass_prop.set_min_value("0"); - bypass_prop.set_description("0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected."); - bypass->set_default_properties(bypass_prop); - att_list.push_back(bypass); - - // Attribute : filterState - filterStateAttrib *filter_state = new filterStateAttrib(); - Tango::UserDefaultAttrProp filter_state_prop; - filter_state_prop.set_description("State of the manual filter"); - filter_state->set_default_properties(filter_state_prop); - att_list.push_back(filter_state); - - // Attribute : autoFilterState - autoFilterStateAttrib *auto_filter_state = new autoFilterStateAttrib(); - Tango::UserDefaultAttrProp auto_filter_state_prop; - auto_filter_state_prop.set_description("State of the auto Filter"); - auto_filter_state->set_default_properties(auto_filter_state_prop); - att_list.push_back(auto_filter_state); - - // Attribute : RiseTime - RiseTimeAttrib *rise_time = new RiseTimeAttrib(); - Tango::UserDefaultAttrProp rise_time_prop; - rise_time_prop.set_unit(" "); - rise_time_prop.set_format("%d"); - rise_time_prop.set_max_value("9"); - rise_time_prop.set_min_value("0"); - rise_time_prop.set_description("0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n"); - rise_time->set_default_properties(rise_time_prop); - rise_time->set_memorized(); - rise_time->set_memorized_init(true); - att_list.push_back(rise_time); - - // Attribute : RiseTimeStr - RiseTimeStrAttrib *rise_time_str = new RiseTimeStrAttrib(); - Tango::UserDefaultAttrProp rise_time_str_prop; - rise_time_str_prop.set_unit(" "); - rise_time_str_prop.set_description("0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n"); - rise_time_str->set_default_properties(rise_time_str_prop); - att_list.push_back(rise_time_str); - - // End of Automatic code generation - //------------------------------------------------------------- -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::get_class_property() -// -// description : Read the class properties from database. -// -//----------------------------------------------------------------------------- -void Keithley428Class::get_class_property() -{ - // Initialize your default values here (if not done with POGO). - //------------------------------------------------------------------ - - // Read class properties from database.(Automatic code generation) - //------------------------------------------------------------------ - - // Call database and extract values - //-------------------------------------------- - if (Tango::Util::instance()->_UseDb==true) - get_db_class()->get_property(cl_prop); - Tango::DbDatum def_prop; - int i = -1; - - - // End of Automatic code generation - //------------------------------------------------------------------ - -} - -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::set_default_property -// -// description: Set default property (class and device) for wizard. -// For each property, add to wizard property name and description -// If default value has been set, add it to wizard property and -// store it in a DbDatum. -// -//----------------------------------------------------------------------------- -void Keithley428Class::set_default_property() -{ - string prop_name; - string prop_desc; - string prop_def; - - vector<string> vect_data; - // Set Default Class Properties - // Set Default Device Properties - prop_name = "GpibDevice"; - prop_desc = "Name of the gpib device connected to the hardware."; - prop_def = ""; - vect_data.clear(); - if (prop_def.length()>0) - { - Tango::DbDatum data(prop_name); - data << vect_data ; - dev_def_prop.push_back(data); - add_wiz_dev_prop(prop_name, prop_desc, prop_def); - } - else - add_wiz_dev_prop(prop_name, prop_desc); - - prop_name = "GpibDeviceType"; - prop_desc = "Type of the Gpib device used to communicate with the Keithley.\nthis can be:\n1 -> Desy GpibDevice (default value)\n2 -> Soleil GpibDeviceServer"; - prop_def = "1"; - vect_data.clear(); - vect_data.push_back("1"); - if (prop_def.length()>0) - { - Tango::DbDatum data(prop_name); - data << vect_data ; - dev_def_prop.push_back(data); - add_wiz_dev_prop(prop_name, prop_desc, prop_def); - } - else - add_wiz_dev_prop(prop_name, prop_desc); - -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428Class::write_class_property -// -// description : Set class description as property in database -// -//----------------------------------------------------------------------------- -void Keithley428Class::write_class_property() -{ - // First time, check if database used - //-------------------------------------------- - if (Tango::Util::_UseDb == false) - return; - - Tango::DbData data; - string classname = get_name(); - string header; - string::size_type start, end; - - // Put title - Tango::DbDatum title("ProjectTitle"); - string str_title("Keithley428 Current Amplifier"); - title << str_title; - data.push_back(title); - - // Put Description - Tango::DbDatum description("Description"); - vector<string> str_desc; - str_desc.push_back("Class for controlling the Keithley428 current amplifier."); - description << str_desc; - data.push_back(description); - - // put cvs or svn location - string filename(classname); - filename += "Class.cpp"; - - // Create a string with the class ID to - // get the string into the binary - string class_id(ClassId); - - // check for cvs information - string src_path(CvsPath); - start = src_path.find("/"); - if (start!=string::npos) - { - end = src_path.find(filename); - if (end>start) - { - string strloc = src_path.substr(start, end-start); - // Check if specific repository - start = strloc.find("/cvsroot/"); - if (start!=string::npos && start>0) - { - string repository = strloc.substr(0, start); - if (repository.find("/segfs/")!=string::npos) - strloc = "ESRF:" + strloc.substr(start, strloc.length()-start); - } - Tango::DbDatum cvs_loc("cvs_location"); - cvs_loc << strloc; - data.push_back(cvs_loc); - } - } - // check for svn information - else - { - string src_path(SvnPath); - start = src_path.find("://"); - if (start!=string::npos) - { - end = src_path.find(filename); - if (end>start) - { - header = "$HeadURL: "; - start = header.length(); - string strloc = src_path.substr(start, (end-start)); - - Tango::DbDatum svn_loc("svn_location"); - svn_loc << strloc; - data.push_back(svn_loc); - } - } - } - - // Get CVS or SVN revision tag - - // CVS tag - string tagname(TagName); - header = "$Name: "; - start = header.length(); - string endstr(" $"); - - end = tagname.find(endstr); - if (end!=string::npos && end>start) - { - string strtag = tagname.substr(start, end-start); - Tango::DbDatum cvs_tag("cvs_tag"); - cvs_tag << strtag; - data.push_back(cvs_tag); - } - - // SVN tag - string svnpath(SvnPath); - header = "$HeadURL: "; - start = header.length(); - - end = svnpath.find(endstr); - if (end!=string::npos && end>start) - { - string strloc = svnpath.substr(start, end-start); - - string tagstr ("/tags/"); - start = strloc.find(tagstr); - if ( start!=string::npos ) - { - start = start + tagstr.length(); - end = strloc.find(filename); - string strtag = strloc.substr(start, end-start-1); - - Tango::DbDatum svn_tag("svn_tag"); - svn_tag << strtag; - data.push_back(svn_tag); - } - } - - // Get URL location - string httpServ(HttpServer); - if (httpServ.length()>0) - { - Tango::DbDatum db_doc_url("doc_url"); - db_doc_url << httpServ; - data.push_back(db_doc_url); - } - - // Put inheritance - Tango::DbDatum inher_datum("InheritedFrom"); - vector<string> inheritance; - inheritance.push_back("Device_4Impl"); - inher_datum << inheritance; - data.push_back(inher_datum); - - // Call database and and values - //-------------------------------------------- - get_db_class()->put_property(data); -} - -} // namespace +/*----- PROTECTED REGION ID(Keithley428Class.cpp) ENABLED START -----*/ +static const char *RcsId = "$Id: $"; +static const char *TagName = "$Name: $"; +static const char *CvsPath = "$Source: $"; +static const char *SvnPath = "$HeadURL: $"; +static const char *HttpServer = "http://www.esrf.eu/computing/cs/tango/tango_doc/ds_doc/"; +//============================================================================= +// +// file : Keithley428Class.cpp +// +// description : C++ source for the Keithley428Class. A singleton +// class derived from DeviceClass. It implements the +// command list and all properties and methods required +// by the �name� once per process. +// +// project : Keithley428 Current Amplifier. +// +// $Author: $ +// +// $Revision: $ +// $Date: $ +// +// SVN only: +// $HeadURL: $ +// +// CVS only: +// $Source: $ +// $Log: $ +// +//============================================================================= +// This file is generated by POGO +// (Program Obviously used to Generate tango Object) +//============================================================================= + + +#include <tango.h> +#include <Keithley428.h> +#include <Keithley428Class.h> + +/*----- PROTECTED REGION END -----*/ + +//------------------------------------------------------------------- +/** + * Create Keithley428Class singleton and + * return it in a C function for Python usage + */ +//------------------------------------------------------------------- +extern "C" { +#ifdef _TG_WINDOWS_ + +__declspec(dllexport) + +#endif + + Tango::DeviceClass *_create_Keithley428_class(const char *name) { + return Keithley428_ns::Keithley428Class::init(name); + } +} + + +namespace Keithley428_ns +{ + + +//=================================================================== +// Initialize pointer for singleton pattern +//=================================================================== +Keithley428Class *Keithley428Class::_instance = NULL; + +//-------------------------------------------------------- +/** + * method : Keithley428Class::Keithley428Class(string &s) + * description : constructor for the Keithley428Class + * + * @param s The class name + */ +//-------------------------------------------------------- +Keithley428Class::Keithley428Class(string &s):DeviceClass(s) +{ + cout2 << "Entering Keithley428Class constructor" << endl; + set_default_property(); + get_class_property(); + write_class_property(); + + /*----- PROTECTED REGION ID(Keithley428::Class::constructor) ENABLED START -----*/ + + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::constructor + + cout2 << "Leaving Keithley428Class constructor" << endl; +} + + +//-------------------------------------------------------- +/** + * method : Keithley428Class::~Keithley428Class() + * description : destructor for the Keithley428Class + */ +//-------------------------------------------------------- +Keithley428Class::~Keithley428Class() +{ + /*----- PROTECTED REGION ID(Keithley428::Class::destructor) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::destructor + + _instance = NULL; +} + + +//-------------------------------------------------------- +/** + * method : Keithley428Class::init + * description : Create the object if not already done. + * Otherwise, just return a pointer to the object + * + * @param name The class name + */ +//-------------------------------------------------------- +Keithley428Class *Keithley428Class::init(const char *name) +{ + if (_instance == NULL) + { + try + { + string s(name); + _instance = new Keithley428Class(s); + } + catch (bad_alloc) + { + throw; + } + } + return _instance; +} + +//-------------------------------------------------------- +/** + * method : Keithley428Class::instance + * description : Check if object already created, + * and return a pointer to the object + */ +//-------------------------------------------------------- +Keithley428Class *Keithley428Class::instance() +{ + if (_instance == NULL) + { + cerr << "Class is not initialised !!" << endl; + exit(-1); + } + return _instance; +} + + + + +//=================================================================== +// Command execution method calls +//=================================================================== +//-------------------------------------------------------- +/** + * method : PerformZeroCorrectClass::execute() + * description : method to trigger the execution of the command. + * + * @param device The device on which the command must be executed + * @param in_any The command input data + * + * returns The command output data (packed in the Any object) + */ +//-------------------------------------------------------- +CORBA::Any *PerformZeroCorrectClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any) +{ + cout2 << "PerformZeroCorrectClass::execute(): arrived" << endl; + + + ((static_cast<Keithley428 *>(device))->perform_zero_correct()); + return new CORBA::Any(); +} +//-------------------------------------------------------- +/** + * method : FilterOnClass::execute() + * description : method to trigger the execution of the command. + * + * @param device The device on which the command must be executed + * @param in_any The command input data + * + * returns The command output data (packed in the Any object) + */ +//-------------------------------------------------------- +CORBA::Any *FilterOnClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any) +{ + cout2 << "FilterOnClass::execute(): arrived" << endl; + + + ((static_cast<Keithley428 *>(device))->filter_on()); + return new CORBA::Any(); +} +//-------------------------------------------------------- +/** + * method : FilterOffClass::execute() + * description : method to trigger the execution of the command. + * + * @param device The device on which the command must be executed + * @param in_any The command input data + * + * returns The command output data (packed in the Any object) + */ +//-------------------------------------------------------- +CORBA::Any *FilterOffClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any) +{ + cout2 << "FilterOffClass::execute(): arrived" << endl; + + + ((static_cast<Keithley428 *>(device))->filter_off()); + return new CORBA::Any(); +} +//-------------------------------------------------------- +/** + * method : AutoFilterOnClass::execute() + * description : method to trigger the execution of the command. + * + * @param device The device on which the command must be executed + * @param in_any The command input data + * + * returns The command output data (packed in the Any object) + */ +//-------------------------------------------------------- +CORBA::Any *AutoFilterOnClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any) +{ + cout2 << "AutoFilterOnClass::execute(): arrived" << endl; + + + ((static_cast<Keithley428 *>(device))->auto_filter_on()); + return new CORBA::Any(); +} +//-------------------------------------------------------- +/** + * method : AutoFilterOffClass::execute() + * description : method to trigger the execution of the command. + * + * @param device The device on which the command must be executed + * @param in_any The command input data + * + * returns The command output data (packed in the Any object) + */ +//-------------------------------------------------------- +CORBA::Any *AutoFilterOffClass::execute(Tango::DeviceImpl *device, const CORBA::Any &in_any) +{ + cout2 << "AutoFilterOffClass::execute(): arrived" << endl; + + + ((static_cast<Keithley428 *>(device))->auto_filter_off()); + return new CORBA::Any(); +} + + + + +//=================================================================== +// Properties management +//=================================================================== + +//-------------------------------------------------------- +/** + * method : Keithley428Class::get_class_property + * description : Get the class property for specified name. + * + * @param name The property name + */ +//-------------------------------------------------------- +Tango::DbDatum Keithley428Class::get_class_property(string &prop_name) +{ + for (unsigned int i=0 ; i<cl_prop.size() ; i++) + if (cl_prop[i].name == prop_name) + return cl_prop[i]; + // if not found, returns an empty DbDatum + return Tango::DbDatum(prop_name); +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428Class::get_default_device_property()() + * Description : Return the default value for device property. + */ +//-------------------------------------------------------- +Tango::DbDatum Keithley428Class::get_default_device_property(string &prop_name) +{ + for (unsigned int i=0 ; i<dev_def_prop.size() ; i++) + if (dev_def_prop[i].name == prop_name) + return dev_def_prop[i]; + // if not found, return an empty DbDatum + return Tango::DbDatum(prop_name); +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428Class::get_default_class_property()() + * Description : Return the default value for class property. + */ +//-------------------------------------------------------- +Tango::DbDatum Keithley428Class::get_default_class_property(string &prop_name) +{ + for (unsigned int i=0 ; i<cl_def_prop.size() ; i++) + if (cl_def_prop[i].name == prop_name) + return cl_def_prop[i]; + // if not found, return an empty DbDatum + return Tango::DbDatum(prop_name); +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428Class::get_class_property() + * Description : // Add your own code to initialize + */ +//-------------------------------------------------------- +void Keithley428Class::get_class_property() +{ +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428Class::set_default_property() + * Description : Set default property (class and device) for wizard. + * For each property, add to wizard property name and description. + * If default value has been set, add it to wizard property and. + * store it in a DbDatum. + */ +//-------------------------------------------------------- +void Keithley428Class::set_default_property() +{ + string prop_name; + string prop_desc; + string prop_def; + vector<string> vect_data; + + // Set Default Class Properties + + // Set Default Device Properties + + prop_name = "GpibDevice"; + prop_desc = "Name of the gpib device connected to the hardware."; + prop_def = ""; + vect_data.clear(); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); + + prop_name = "GpibDeviceType"; + prop_desc = "Type of the Gpib device used to communicate with the Keithley. this can be: 1 -> Desy GpibDevice (default value) 2 -> Soleil GpibDeviceServer"; + prop_def = "1\n"; + vect_data.clear(); + vect_data.push_back("1"); + if (prop_def.length()>0) + { + Tango::DbDatum data(prop_name); + data << vect_data ; + dev_def_prop.push_back(data); + add_wiz_dev_prop(prop_name, prop_desc, prop_def); + } + else + add_wiz_dev_prop(prop_name, prop_desc); +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428Class::write_class_property() + * Description : Set class description fields as property in database + */ +//-------------------------------------------------------- +void Keithley428Class::write_class_property() +{ + // First time, check if database used + if (Tango::Util::_UseDb == false) + return; + + Tango::DbData data; + string classname = get_name(); + string header; + string::size_type start, end; + + // Put title + Tango::DbDatum title("ProjectTitle"); + string str_title("Keithley428 Current Amplifier"); + title << str_title; + data.push_back(title); + + // Put Description + Tango::DbDatum description("Description"); + vector<string> str_desc; + str_desc.push_back("Class for controlling the Keithley428 current amplifier."); + description << str_desc; + data.push_back(description); + + // put cvs or svn location + string filename("Keithley428"); + filename += "Class.cpp"; + + // check for cvs information + string src_path(CvsPath); + start = src_path.find("/"); + if (start!=string::npos) + { + end = src_path.find(filename); + if (end>start) + { + string strloc = src_path.substr(start, end-start); + // Check if specific repository + start = strloc.find("/cvsroot/"); + if (start!=string::npos && start>0) + { + string repository = strloc.substr(0, start); + if (repository.find("/segfs/")!=string::npos) + strloc = "ESRF:" + strloc.substr(start, strloc.length()-start); + } + Tango::DbDatum cvs_loc("cvs_location"); + cvs_loc << strloc; + data.push_back(cvs_loc); + } + } + // check for svn information + else + { + string src_path(SvnPath); + start = src_path.find("://"); + if (start!=string::npos) + { + end = src_path.find(filename); + if (end>start) + { + header = "$HeadURL: "; + start = header.length(); + string strloc = src_path.substr(start, (end-start)); + + Tango::DbDatum svn_loc("svn_location"); + svn_loc << strloc; + data.push_back(svn_loc); + } + } + } + + // Get CVS or SVN revision tag + + // CVS tag + string tagname(TagName); + header = "$Name: "; + start = header.length(); + string endstr(" $"); + + end = tagname.find(endstr); + if (end!=string::npos && end>start) + { + string strtag = tagname.substr(start, end-start); + Tango::DbDatum cvs_tag("cvs_tag"); + cvs_tag << strtag; + data.push_back(cvs_tag); + } + + // SVN tag + string svnpath(SvnPath); + header = "$HeadURL: "; + start = header.length(); + + end = svnpath.find(endstr); + if (end!=string::npos && end>start) + { + string strloc = svnpath.substr(start, end-start); + + string tagstr ("/tags/"); + start = strloc.find(tagstr); + if ( start!=string::npos ) + { + start = start + tagstr.length(); + end = strloc.find(filename); + string strtag = strloc.substr(start, end-start-1); + + Tango::DbDatum svn_tag("svn_tag"); + svn_tag << strtag; + data.push_back(svn_tag); + } + } + + // Get URL location + string httpServ(HttpServer); + if (httpServ.length()>0) + { + Tango::DbDatum db_doc_url("doc_url"); + db_doc_url << httpServ; + data.push_back(db_doc_url); + } + + // Put inheritance + Tango::DbDatum inher_datum("InheritedFrom"); + vector<string> inheritance; + inheritance.push_back("Device_4Impl"); + inher_datum << inheritance; + data.push_back(inher_datum); + + // Call database and and values + get_db_class()->put_property(data); +} + + + + +//=================================================================== +// Factory methods +//=================================================================== + + +//-------------------------------------------------------- +/** + * method : Keithley428Class::device_factory + * description : Create the device object(s) + * and store them in the device list + * + * @param *devlist_ptr The device name list + */ +//-------------------------------------------------------- +void Keithley428Class::device_factory(const Tango::DevVarStringArray *devlist_ptr) +{ + + /*----- PROTECTED REGION ID(Keithley428::Class::device_factory_before) ENABLED START -----*/ + + // Add your own code + + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::device_factory_before + + // Create devices and add it into the device list + for (unsigned long i=0 ; i<devlist_ptr->length() ; i++) + { + cout4 << "Device name : " << (*devlist_ptr)[i].in() << endl; + device_list.push_back(new Keithley428(this, (*devlist_ptr)[i])); + } + + // Manage dynamic attributes if any + erase_dynamic_attributes(devlist_ptr, get_class_attr()->get_attr_list()); + + // Export devices to the outside world + for (unsigned long i=1 ; i<=devlist_ptr->length() ; i++) + { + // Add dynamic attributes if any + Keithley428 *dev = static_cast<Keithley428 *>(device_list[device_list.size()-i]); + dev->add_dynamic_attributes(); + + // Check before if database used. + if ((Tango::Util::_UseDb == true) && (Tango::Util::_FileDb == false)) + export_device(dev); + else + export_device(dev, dev->get_name().c_str()); + } + + /*----- PROTECTED REGION ID(Keithley428::Class::device_factory_after) ENABLED START -----*/ + + // Add your own code + + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::device_factory_after + + +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428Class::attribute_factory() + * Description : Create the attribute object(s) + * and store them in the attribute list + */ +//-------------------------------------------------------- +void Keithley428Class::attribute_factory(vector<Tango::Attr *> &att_list) +{ + /*----- PROTECTED REGION ID(Keithley428::Class::attribute_factory_before) ENABLED START -----*/ + + // Add your own code + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::attribute_factory_before + + + // Attribute : Gain + GainAttrib *gain = new GainAttrib(); + Tango::UserDefaultAttrProp gain_prop; + gain_prop.set_description("0, 1, 2, 3 -> 10e3 V/A\n4 -> 10e4 V/A\n5 -> 10e5 V/A\n6 -> 10e6 V/A\n7 -> 10e7 V/A\n8 -> 10e8 V/A\n9 -> 10e9 V/A\n10 -> 10e10 V/A\n11 -> 10e11 V/A"); + // label not set for Gain + gain_prop.set_unit(" "); + // standard_unit not set for Gain + // display_unit not set for Gain + gain_prop.set_format("%d"); + gain_prop.set_max_value("11"); + gain_prop.set_min_value("0"); + // max_alarm not set for Gain + // min_alarm not set for Gain + // max_warning not set for Gain + // min_warning not set for Gain + // delta_t not set for Gain + // delta_val not set for Gain + gain->set_default_properties(gain_prop); + // Not Polled + gain->set_disp_level(Tango::OPERATOR); + gain->set_memorized(); + gain->set_memorized_init(true); + // Gain does not fire change event + // Gain does not fire archive event + // Gain does not fire data_ready event + att_list.push_back(gain); + + // Attribute : GainStr + GainStrAttrib *gainstr = new GainStrAttrib(); + Tango::UserDefaultAttrProp gainstr_prop; + // description not set for GainStr + // label not set for GainStr + // unit not set for GainStr + // standard_unit not set for GainStr + // display_unit not set for GainStr + // format not set for GainStr + // max_value not set for GainStr + // min_value not set for GainStr + // max_alarm not set for GainStr + // min_alarm not set for GainStr + // max_warning not set for GainStr + // min_warning not set for GainStr + // delta_t not set for GainStr + // delta_val not set for GainStr + gainstr->set_default_properties(gainstr_prop); + // Not Polled + gainstr->set_disp_level(Tango::OPERATOR); + // Not memorized + + // GainStr does not fire change event + // GainStr does not fire archive event + // GainStr does not fire data_ready event + att_list.push_back(gainstr); + + // Attribute : Overloaded + OverloadedAttrib *overloaded = new OverloadedAttrib(); + Tango::UserDefaultAttrProp overloaded_prop; + overloaded_prop.set_description("1 if device is overloaded"); + // label not set for Overloaded + overloaded_prop.set_unit(" "); + // standard_unit not set for Overloaded + // display_unit not set for Overloaded + overloaded_prop.set_format("%d"); + // max_value not set for Overloaded + // min_value not set for Overloaded + // max_alarm not set for Overloaded + // min_alarm not set for Overloaded + // max_warning not set for Overloaded + // min_warning not set for Overloaded + // delta_t not set for Overloaded + // delta_val not set for Overloaded + overloaded->set_default_properties(overloaded_prop); + // Not Polled + overloaded->set_disp_level(Tango::OPERATOR); + // Not memorized + + // Overloaded does not fire change event + // Overloaded does not fire archive event + // Overloaded does not fire data_ready event + att_list.push_back(overloaded); + + // Attribute : Bypass + BypassAttrib *bypass = new BypassAttrib(); + Tango::UserDefaultAttrProp bypass_prop; + bypass_prop.set_description("0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected."); + // label not set for Bypass + bypass_prop.set_unit(" "); + // standard_unit not set for Bypass + // display_unit not set for Bypass + bypass_prop.set_format("%d"); + bypass_prop.set_max_value("2"); + bypass_prop.set_min_value("0"); + // max_alarm not set for Bypass + // min_alarm not set for Bypass + // max_warning not set for Bypass + // min_warning not set for Bypass + // delta_t not set for Bypass + // delta_val not set for Bypass + bypass->set_default_properties(bypass_prop); + // Not Polled + bypass->set_disp_level(Tango::OPERATOR); + // Not memorized + + // Bypass does not fire change event + // Bypass does not fire archive event + // Bypass does not fire data_ready event + att_list.push_back(bypass); + + // Attribute : filterState + filterStateAttrib *filterstate = new filterStateAttrib(); + Tango::UserDefaultAttrProp filterstate_prop; + filterstate_prop.set_description("State of the manual filter"); + // label not set for filterState + // unit not set for filterState + // standard_unit not set for filterState + // display_unit not set for filterState + // format not set for filterState + // max_value not set for filterState + // min_value not set for filterState + // max_alarm not set for filterState + // min_alarm not set for filterState + // max_warning not set for filterState + // min_warning not set for filterState + // delta_t not set for filterState + // delta_val not set for filterState + filterstate->set_default_properties(filterstate_prop); + // Not Polled + filterstate->set_disp_level(Tango::OPERATOR); + // Not memorized + + // filterState does not fire change event + // filterState does not fire archive event + // filterState does not fire data_ready event + att_list.push_back(filterstate); + + // Attribute : autoFilterState + autoFilterStateAttrib *autofilterstate = new autoFilterStateAttrib(); + Tango::UserDefaultAttrProp autofilterstate_prop; + autofilterstate_prop.set_description("State of the auto Filter"); + // label not set for autoFilterState + // unit not set for autoFilterState + // standard_unit not set for autoFilterState + // display_unit not set for autoFilterState + // format not set for autoFilterState + // max_value not set for autoFilterState + // min_value not set for autoFilterState + // max_alarm not set for autoFilterState + // min_alarm not set for autoFilterState + // max_warning not set for autoFilterState + // min_warning not set for autoFilterState + // delta_t not set for autoFilterState + // delta_val not set for autoFilterState + autofilterstate->set_default_properties(autofilterstate_prop); + // Not Polled + autofilterstate->set_disp_level(Tango::OPERATOR); + // Not memorized + + // autoFilterState does not fire change event + // autoFilterState does not fire archive event + // autoFilterState does not fire data_ready event + att_list.push_back(autofilterstate); + + // Attribute : RiseTime + RiseTimeAttrib *risetime = new RiseTimeAttrib(); + Tango::UserDefaultAttrProp risetime_prop; + risetime_prop.set_description("0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n"); + // label not set for RiseTime + risetime_prop.set_unit(" "); + // standard_unit not set for RiseTime + // display_unit not set for RiseTime + risetime_prop.set_format("%d"); + risetime_prop.set_max_value("9"); + risetime_prop.set_min_value("0"); + // max_alarm not set for RiseTime + // min_alarm not set for RiseTime + // max_warning not set for RiseTime + // min_warning not set for RiseTime + // delta_t not set for RiseTime + // delta_val not set for RiseTime + risetime->set_default_properties(risetime_prop); + // Not Polled + risetime->set_disp_level(Tango::OPERATOR); + risetime->set_memorized(); + risetime->set_memorized_init(true); + // RiseTime does not fire change event + // RiseTime does not fire archive event + // RiseTime does not fire data_ready event + att_list.push_back(risetime); + + // Attribute : RiseTimeStr + RiseTimeStrAttrib *risetimestr = new RiseTimeStrAttrib(); + Tango::UserDefaultAttrProp risetimestr_prop; + risetimestr_prop.set_description("0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n"); + // label not set for RiseTimeStr + risetimestr_prop.set_unit(" "); + // standard_unit not set for RiseTimeStr + // display_unit not set for RiseTimeStr + // format not set for RiseTimeStr + // max_value not set for RiseTimeStr + // min_value not set for RiseTimeStr + // max_alarm not set for RiseTimeStr + // min_alarm not set for RiseTimeStr + // max_warning not set for RiseTimeStr + // min_warning not set for RiseTimeStr + // delta_t not set for RiseTimeStr + // delta_val not set for RiseTimeStr + risetimestr->set_default_properties(risetimestr_prop); + // Not Polled + risetimestr->set_disp_level(Tango::OPERATOR); + // Not memorized + + // RiseTimeStr does not fire change event + // RiseTimeStr does not fire archive event + // RiseTimeStr does not fire data_ready event + att_list.push_back(risetimestr); + + + // Create a list of static attributes + create_static_attribute_list(get_class_attr()->get_attr_list()); + + /*----- PROTECTED REGION ID(Keithley428::Class::attribute_factory_after) ENABLED START -----*/ + + // Add your own code + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::attribute_factory_after + +} + + +//-------------------------------------------------------- +/** + * Method : Keithley428::Keithley428Class::command_factory() + * Description : Create the command object(s) + * and store them in the command list + */ +//-------------------------------------------------------- +void Keithley428Class::command_factory() +{ + /*----- PROTECTED REGION ID(Keithley428::Class::command_factory_before) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::command_factory_before + + PerformZeroCorrectClass *pPerformZeroCorrectCmd = + new PerformZeroCorrectClass("PerformZeroCorrect", + Tango::DEV_VOID, Tango::DEV_VOID, + "", + "", + Tango::OPERATOR); + command_list.push_back(pPerformZeroCorrectCmd); + FilterOnClass *pFilterOnCmd = + new FilterOnClass("FilterOn", + Tango::DEV_VOID, Tango::DEV_VOID, + "", + "", + Tango::OPERATOR); + command_list.push_back(pFilterOnCmd); + FilterOffClass *pFilterOffCmd = + new FilterOffClass("FilterOff", + Tango::DEV_VOID, Tango::DEV_VOID, + "", + "", + Tango::OPERATOR); + command_list.push_back(pFilterOffCmd); + AutoFilterOnClass *pAutoFilterOnCmd = + new AutoFilterOnClass("AutoFilterOn", + Tango::DEV_VOID, Tango::DEV_VOID, + "", + "", + Tango::OPERATOR); + command_list.push_back(pAutoFilterOnCmd); + AutoFilterOffClass *pAutoFilterOffCmd = + new AutoFilterOffClass("AutoFilterOff", + Tango::DEV_VOID, Tango::DEV_VOID, + "", + "", + Tango::OPERATOR); + command_list.push_back(pAutoFilterOffCmd); + + /*----- PROTECTED REGION ID(Keithley428::Class::command_factory_after) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::command_factory_after + +} + + + + +//=================================================================== +// Dynamic attributes related methods +//=================================================================== + + +//-------------------------------------------------------- +/** + * method : Keithley428Class::create_static_attribute_list + * description : Create the a list of static attributes + * + * @param att_list the ceated attribute list + */ +//-------------------------------------------------------- +void Keithley428Class::create_static_attribute_list(vector<Tango::Attr *> &att_list) +{ + for (unsigned long i=0 ; i<att_list.size() ; i++) + { + string att_name(att_list[i]->get_name()); + transform(att_name.begin(), att_name.end(), att_name.begin(), ::tolower); + defaultAttList.push_back(att_name); + } + + cout2 << defaultAttList.size() << " attributes in default list" << endl; + + + /*----- PROTECTED REGION ID(Keithley428::Class::create_static_att_list) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::create_static_att_list + +} + + +//-------------------------------------------------------- +/** + * method : Keithley428Class::erase_dynamic_attributes + * description : delete the dynamic attributes if any. + * + * @param devlist_ptr the device list pointer + * @param list of all attributes + */ +//-------------------------------------------------------- +void Keithley428Class::erase_dynamic_attributes(const Tango::DevVarStringArray *devlist_ptr, vector<Tango::Attr *> &att_list) +{ + Tango::Util *tg = Tango::Util::instance(); + + for (unsigned long i=0 ; i<devlist_ptr->length() ; i++) + { + Tango::DeviceImpl *dev_impl = tg->get_device_by_name(((string)(*devlist_ptr)[i]).c_str()); + Keithley428 *dev = static_cast<Keithley428 *> (dev_impl); + + vector<Tango::Attribute *> &dev_att_list = dev->get_device_attr()->get_attribute_list(); + vector<Tango::Attribute *>::iterator ite_att; + for (ite_att=dev_att_list.begin() ; ite_att != dev_att_list.end() ; ++ite_att) + { + string att_name((*ite_att)->get_name_lower()); + if ((att_name == "state") || (att_name == "status")) + continue; + vector<string>::iterator ite_str = find(defaultAttList.begin(), defaultAttList.end(), att_name); + if (ite_str == defaultAttList.end()) + { + cout2 << att_name << " is a UNWANTED dynamic attribute for device " << (*devlist_ptr)[i] << endl; + Tango::Attribute &att = dev->get_device_attr()->get_attr_by_name(att_name.c_str()); + dev->remove_attribute(att_list[att.get_attr_idx()],true); + --ite_att; + } + } + } + /*----- PROTECTED REGION ID(Keithley428::Class::erase_dynamic_attributes) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::erase_dynamic_attributes + +} + + + + /*----- PROTECTED REGION ID(Keithley428::Class::Additional Methods) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::Class::Additional Methods + +} // namespace diff --git a/Keithley428Class.h b/Keithley428Class.h index e5a99ac13d00f6bcc0a4ed2d405915fba3abc671..7eaae18b2a8753f283e86bc782df140d3eab026f 100644 --- a/Keithley428Class.h +++ b/Keithley428Class.h @@ -1,320 +1,350 @@ -//============================================================================= -// -// file : Keithley428Class.h -// -// description : Include for the Keithley428Class root class. -// This class is the singleton class for -// the Keithley428 device class. -// It contains all properties and methods which the -// Keithley428 requires only once e.g. the commands. -// -// project : TANGO Device Server -// -// $Author: $ -// -// $Revision: $ -// $Date: $ -// -// SVN only: -// $HeadURL: $ -// -// CVS only: -// $Source: $ -// $Log: $ -// -// copyleft : European Synchrotron Radiation Facility -// BP 220, Grenoble 38043 -// FRANCE -// -//============================================================================= -// -// This file is generated by POGO -// (Program Obviously used to Generate tango Object) -// -// (c) - Software Engineering Group - ESRF -//============================================================================= - -#ifndef _KEITHLEY428CLASS_H -#define _KEITHLEY428CLASS_H - -#include <tango.h> -#include <Keithley428.h> - - -namespace Keithley428_ns -{//===================================== -// Define classes for attributes -//===================================== -class RiseTimeStrAttrib: public Tango::Attr -{ -public: - RiseTimeStrAttrib():Attr("RiseTimeStr", Tango::DEV_STRING, Tango::READ) {}; - ~RiseTimeStrAttrib() {}; - - virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) - {(static_cast<Keithley428 *>(dev))->read_RiseTimeStr(att);} - virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) - {return (static_cast<Keithley428 *>(dev))->is_RiseTimeStr_allowed(ty);} -}; - -class RiseTimeAttrib: public Tango::Attr -{ -public: - RiseTimeAttrib():Attr("RiseTime", Tango::DEV_LONG, Tango::READ_WRITE) {}; - ~RiseTimeAttrib() {}; - - virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) - {(static_cast<Keithley428 *>(dev))->read_RiseTime(att);} - virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att) - {(static_cast<Keithley428 *>(dev))->write_RiseTime(att);} - virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) - {return (static_cast<Keithley428 *>(dev))->is_RiseTime_allowed(ty);} -}; - -class autoFilterStateAttrib: public Tango::Attr -{ -public: - autoFilterStateAttrib():Attr("autoFilterState", Tango::DEV_STRING, Tango::READ) {}; - ~autoFilterStateAttrib() {}; - - virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) - {(static_cast<Keithley428 *>(dev))->read_autoFilterState(att);} - virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) - {return (static_cast<Keithley428 *>(dev))->is_autoFilterState_allowed(ty);} -}; - -class filterStateAttrib: public Tango::Attr -{ -public: - filterStateAttrib():Attr("filterState", Tango::DEV_STRING, Tango::READ) {}; - ~filterStateAttrib() {}; - - virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) - {(static_cast<Keithley428 *>(dev))->read_filterState(att);} - virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) - {return (static_cast<Keithley428 *>(dev))->is_filterState_allowed(ty);} -}; - -class BypassAttrib: public Tango::Attr -{ -public: - BypassAttrib():Attr("Bypass", Tango::DEV_LONG, Tango::READ_WRITE) {}; - ~BypassAttrib() {}; - - virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) - {(static_cast<Keithley428 *>(dev))->read_Bypass(att);} - virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att) - {(static_cast<Keithley428 *>(dev))->write_Bypass(att);} - virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) - {return (static_cast<Keithley428 *>(dev))->is_Bypass_allowed(ty);} -}; - -class OverloadedAttrib: public Tango::Attr -{ -public: - OverloadedAttrib():Attr("Overloaded", Tango::DEV_LONG, Tango::READ) {}; - ~OverloadedAttrib() {}; - - virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) - {(static_cast<Keithley428 *>(dev))->read_Overloaded(att);} - virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) - {return (static_cast<Keithley428 *>(dev))->is_Overloaded_allowed(ty);} -}; - -class GainStrAttrib: public Tango::Attr -{ -public: - GainStrAttrib():Attr("GainStr", Tango::DEV_STRING, Tango::READ) {}; - ~GainStrAttrib() {}; - - virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) - {(static_cast<Keithley428 *>(dev))->read_GainStr(att);} - virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) - {return (static_cast<Keithley428 *>(dev))->is_GainStr_allowed(ty);} -}; - -class GainAttrib: public Tango::Attr -{ -public: - GainAttrib():Attr("Gain", Tango::DEV_LONG, Tango::READ_WRITE) {}; - ~GainAttrib() {}; - - virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) - {(static_cast<Keithley428 *>(dev))->read_Gain(att);} - virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att) - {(static_cast<Keithley428 *>(dev))->write_Gain(att);} - virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) - {return (static_cast<Keithley428 *>(dev))->is_Gain_allowed(ty);} -}; - -//========================================= -// Define classes for commands -//========================================= -class AutoFilterOffClass : public Tango::Command -{ -public: - AutoFilterOffClass(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out, - const char *in_desc, - const char *out_desc, - Tango::DispLevel level) - :Command(name,in,out,in_desc,out_desc, level) {}; - - AutoFilterOffClass(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out) - :Command(name,in,out) {}; - ~AutoFilterOffClass() {}; - - virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); - virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) - {return (static_cast<Keithley428 *>(dev))->is_AutoFilterOff_allowed(any);} -}; - - - -class AutoFilterOnClass : public Tango::Command -{ -public: - AutoFilterOnClass(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out, - const char *in_desc, - const char *out_desc, - Tango::DispLevel level) - :Command(name,in,out,in_desc,out_desc, level) {}; - - AutoFilterOnClass(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out) - :Command(name,in,out) {}; - ~AutoFilterOnClass() {}; - - virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); - virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) - {return (static_cast<Keithley428 *>(dev))->is_AutoFilterOn_allowed(any);} -}; - - - -class FilterOffCmd : public Tango::Command -{ -public: - FilterOffCmd(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out, - const char *in_desc, - const char *out_desc, - Tango::DispLevel level) - :Command(name,in,out,in_desc,out_desc, level) {}; - - FilterOffCmd(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out) - :Command(name,in,out) {}; - ~FilterOffCmd() {}; - - virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); - virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) - {return (static_cast<Keithley428 *>(dev))->is_FilterOff_allowed(any);} -}; - - - -class FilterOnCmd : public Tango::Command -{ -public: - FilterOnCmd(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out, - const char *in_desc, - const char *out_desc, - Tango::DispLevel level) - :Command(name,in,out,in_desc,out_desc, level) {}; - - FilterOnCmd(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out) - :Command(name,in,out) {}; - ~FilterOnCmd() {}; - - virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); - virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) - {return (static_cast<Keithley428 *>(dev))->is_FilterOn_allowed(any);} -}; - - - -class PerformZeroCorrectClass : public Tango::Command -{ -public: - PerformZeroCorrectClass(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out, - const char *in_desc, - const char *out_desc, - Tango::DispLevel level) - :Command(name,in,out,in_desc,out_desc, level) {}; - - PerformZeroCorrectClass(const char *name, - Tango::CmdArgType in, - Tango::CmdArgType out) - :Command(name,in,out) {}; - ~PerformZeroCorrectClass() {}; - - virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); - virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) - {return (static_cast<Keithley428 *>(dev))->is_PerformZeroCorrect_allowed(any);} -}; - - - -// -// The Keithley428Class singleton definition -// - -class -#ifdef WIN32 - __declspec(dllexport) -#endif - Keithley428Class : public Tango::DeviceClass -{ -public: -// properties member data - -// add your own data members here -//------------------------------------ - -public: - Tango::DbData cl_prop; - Tango::DbData cl_def_prop; - Tango::DbData dev_def_prop; - -// Method prototypes - static Keithley428Class *init(const char *); - static Keithley428Class *instance(); - ~Keithley428Class(); - Tango::DbDatum get_class_property(string &); - Tango::DbDatum get_default_device_property(string &); - Tango::DbDatum get_default_class_property(string &); - -protected: - Keithley428Class(string &); - static Keithley428Class *_instance; - void command_factory(); - void get_class_property(); - void attribute_factory(vector<Tango::Attr *> &); - void write_class_property(); - void set_default_property(); - string get_cvstag(); - string get_cvsroot(); - -private: - void device_factory(const Tango::DevVarStringArray *); -}; - - -} // namespace Keithley428_ns - -#endif // _KEITHLEY428CLASS_H +/*----- PROTECTED REGION ID(Keithley428Class.h) ENABLED START -----*/ +//============================================================================= +// +// file : Keithley428Class.h +// +// description : Include for the Keithley428Class root class. +// This class is the singleton class for. +// the Keithley428 device class.. +// It contains all properties and methods which the . +// Keithley428 requires only once e.g. the commands. +// +// project : Keithley428 Current Amplifier. +// +// $Author: $ +// +// $Revision: $ +// $Date: $ +// +// SVN only: +// $HeadURL: $ +// +// CVS only: +// $Source: $ +// $Log: $ +// +//============================================================================= +// This file is generated by POGO +// (Program Obviously used to Generate tango Object) +//============================================================================= + + +#ifndef KEITHLEY428CLASS_H +#define KEITHLEY428CLASS_H + +#include <tango.h> +#include <Keithley428.h> + +/*----- PROTECTED REGION END -----*/ + +namespace Keithley428_ns +{ + /*----- PROTECTED REGION ID(Keithley428::classes for dynamic creation) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::classes for dynamic creation + + + +//========================================= +// Define classes for attributes +//========================================= +// Attribute Gain class definition +class GainAttrib: public Tango::Attr +{ +public: + GainAttrib():Attr("Gain", + Tango::DEV_LONG, Tango::READ_WRITE) {}; + ~GainAttrib() {}; + + virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) + {(static_cast<Keithley428 *>(dev))->read_Gain(att);} + virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att) + {(static_cast<Keithley428 *>(dev))->write_Gain(att);} + virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) + {return (static_cast<Keithley428 *>(dev))->is_Gain_allowed(ty);} +}; + +// Attribute GainStr class definition +class GainStrAttrib: public Tango::Attr +{ +public: + GainStrAttrib():Attr("GainStr", + Tango::DEV_STRING, Tango::READ) {}; + ~GainStrAttrib() {}; + + virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) + {(static_cast<Keithley428 *>(dev))->read_GainStr(att);} + virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) + {return (static_cast<Keithley428 *>(dev))->is_GainStr_allowed(ty);} +}; + +// Attribute Overloaded class definition +class OverloadedAttrib: public Tango::Attr +{ +public: + OverloadedAttrib():Attr("Overloaded", + Tango::DEV_LONG, Tango::READ) {}; + ~OverloadedAttrib() {}; + + virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) + {(static_cast<Keithley428 *>(dev))->read_Overloaded(att);} + virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) + {return (static_cast<Keithley428 *>(dev))->is_Overloaded_allowed(ty);} +}; + +// Attribute Bypass class definition +class BypassAttrib: public Tango::Attr +{ +public: + BypassAttrib():Attr("Bypass", + Tango::DEV_LONG, Tango::READ_WRITE) {}; + ~BypassAttrib() {}; + + virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) + {(static_cast<Keithley428 *>(dev))->read_Bypass(att);} + virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att) + {(static_cast<Keithley428 *>(dev))->write_Bypass(att);} + virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) + {return (static_cast<Keithley428 *>(dev))->is_Bypass_allowed(ty);} +}; + +// Attribute filterState class definition +class filterStateAttrib: public Tango::Attr +{ +public: + filterStateAttrib():Attr("filterState", + Tango::DEV_STRING, Tango::READ) {}; + ~filterStateAttrib() {}; + + virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) + {(static_cast<Keithley428 *>(dev))->read_filterState(att);} + virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) + {return (static_cast<Keithley428 *>(dev))->is_filterState_allowed(ty);} +}; + +// Attribute autoFilterState class definition +class autoFilterStateAttrib: public Tango::Attr +{ +public: + autoFilterStateAttrib():Attr("autoFilterState", + Tango::DEV_STRING, Tango::READ) {}; + ~autoFilterStateAttrib() {}; + + virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) + {(static_cast<Keithley428 *>(dev))->read_autoFilterState(att);} + virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) + {return (static_cast<Keithley428 *>(dev))->is_autoFilterState_allowed(ty);} +}; + +// Attribute RiseTime class definition +class RiseTimeAttrib: public Tango::Attr +{ +public: + RiseTimeAttrib():Attr("RiseTime", + Tango::DEV_LONG, Tango::READ_WRITE) {}; + ~RiseTimeAttrib() {}; + + virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) + {(static_cast<Keithley428 *>(dev))->read_RiseTime(att);} + virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att) + {(static_cast<Keithley428 *>(dev))->write_RiseTime(att);} + virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) + {return (static_cast<Keithley428 *>(dev))->is_RiseTime_allowed(ty);} +}; + +// Attribute RiseTimeStr class definition +class RiseTimeStrAttrib: public Tango::Attr +{ +public: + RiseTimeStrAttrib():Attr("RiseTimeStr", + Tango::DEV_STRING, Tango::READ) {}; + ~RiseTimeStrAttrib() {}; + + virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att) + {(static_cast<Keithley428 *>(dev))->read_RiseTimeStr(att);} + virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty) + {return (static_cast<Keithley428 *>(dev))->is_RiseTimeStr_allowed(ty);} +}; + + + + + +//========================================= +// Define classes for commands +//========================================= +// Command PerformZeroCorrect class definition +class PerformZeroCorrectClass : public Tango::Command +{ +public: + PerformZeroCorrectClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out, + const char *in_desc, + const char *out_desc, + Tango::DispLevel level) + :Command(name,in,out,in_desc,out_desc, level) {}; + + PerformZeroCorrectClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out) + :Command(name,in,out) {}; + ~PerformZeroCorrectClass() {}; + + virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); + virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) + {return (static_cast<Keithley428 *>(dev))->is_PerformZeroCorrect_allowed(any);} +}; + +// Command FilterOn class definition +class FilterOnClass : public Tango::Command +{ +public: + FilterOnClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out, + const char *in_desc, + const char *out_desc, + Tango::DispLevel level) + :Command(name,in,out,in_desc,out_desc, level) {}; + + FilterOnClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out) + :Command(name,in,out) {}; + ~FilterOnClass() {}; + + virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); + virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) + {return (static_cast<Keithley428 *>(dev))->is_FilterOn_allowed(any);} +}; + +// Command FilterOff class definition +class FilterOffClass : public Tango::Command +{ +public: + FilterOffClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out, + const char *in_desc, + const char *out_desc, + Tango::DispLevel level) + :Command(name,in,out,in_desc,out_desc, level) {}; + + FilterOffClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out) + :Command(name,in,out) {}; + ~FilterOffClass() {}; + + virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); + virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) + {return (static_cast<Keithley428 *>(dev))->is_FilterOff_allowed(any);} +}; + +// Command AutoFilterOn class definition +class AutoFilterOnClass : public Tango::Command +{ +public: + AutoFilterOnClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out, + const char *in_desc, + const char *out_desc, + Tango::DispLevel level) + :Command(name,in,out,in_desc,out_desc, level) {}; + + AutoFilterOnClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out) + :Command(name,in,out) {}; + ~AutoFilterOnClass() {}; + + virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); + virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) + {return (static_cast<Keithley428 *>(dev))->is_AutoFilterOn_allowed(any);} +}; + +// Command AutoFilterOff class definition +class AutoFilterOffClass : public Tango::Command +{ +public: + AutoFilterOffClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out, + const char *in_desc, + const char *out_desc, + Tango::DispLevel level) + :Command(name,in,out,in_desc,out_desc, level) {}; + + AutoFilterOffClass(const char *name, + Tango::CmdArgType in, + Tango::CmdArgType out) + :Command(name,in,out) {}; + ~AutoFilterOffClass() {}; + + virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); + virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) + {return (static_cast<Keithley428 *>(dev))->is_AutoFilterOff_allowed(any);} +}; + + + + + +/** + * The TemplateDevServClass singleton definition + */ + +class +#ifdef _TG_WINDOWS_ + __declspec(dllexport) +#endif + Keithley428Class : public Tango::DeviceClass +{ + /*----- PROTECTED REGION ID(Keithley428::Additionnal DServer data members) ENABLED START -----*/ +public: + + + /*----- PROTECTED REGION END -----*/ // Keithley428::Additionnal DServer data members + + + +public: +// write class properties data members + Tango::DbData cl_prop; + Tango::DbData cl_def_prop; + Tango::DbData dev_def_prop; + +// Method prototypes + static Keithley428Class *init(const char *); + static Keithley428Class *instance(); + ~Keithley428Class(); + Tango::DbDatum get_class_property(string &); + Tango::DbDatum get_default_device_property(string &); + Tango::DbDatum get_default_class_property(string &); + +protected: + Keithley428Class(string &); + static Keithley428Class *_instance; + void command_factory(); + void attribute_factory(vector<Tango::Attr *> &); + void write_class_property(); + void set_default_property(); + void get_class_property(); + string get_cvstag(); + string get_cvsroot(); + +private: + void device_factory(const Tango::DevVarStringArray *); + void create_static_attribute_list(vector<Tango::Attr *> &); + void erase_dynamic_attributes(const Tango::DevVarStringArray *,vector<Tango::Attr *> &); + vector<string> defaultAttList; + + +}; + +} // namespace + +#endif // KEITHLEY428CLASS_H + diff --git a/Keithley428StateMachine.cpp b/Keithley428StateMachine.cpp index 0b63358a4fbf02c23c48545a9f424bc0d32a999c..6ba665e0a96cde708d0fa36b652e24467001abe5 100644 --- a/Keithley428StateMachine.cpp +++ b/Keithley428StateMachine.cpp @@ -1,289 +1,385 @@ -static const char *RcsId = "$Id $"; -//+============================================================================= -// -// file : Keithley428StateMachine.cpp -// -// description : C++ source for the Keithley428 and its alowed -// methods for commands and attributes -// -// project : TANGO Device Server -// -// $Author: $ -// -// $Revision: $ -// $Date: $ -// -// SVN only: -// $HeadURL: $ -// -// CVS only: -// $Source: $ -// $Log: $ -// -// copyleft : European Synchrotron Radiation Facility -// BP 220, Grenoble 38043 -// FRANCE -// -//-============================================================================= -// -// This file is generated by POGO -// (Program Obviously used to Generate tango Object) -// -// (c) - Software Engineering Group - ESRF -//============================================================================= - -#include <tango.h> -#include <Keithley428.h> -#include <Keithley428Class.h> - -/*==================================================================== - * This file contains the methods to allow commands and attributes - * read or write execution. - * - * If you wand to add your own code, add it between - * the "End/Re-Start of Generated Code" comments. - * - * If you want, you can also add your own methods. - *==================================================================== - */ - -namespace Keithley428_ns -{ - -//================================================= -// Attributes Allowed Methods -//================================================= - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_Gain_allowed -// -// description : Read/Write allowed for Gain attribute. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_Gain_allowed(Tango::AttReqType type) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_GainStr_allowed -// -// description : Read/Write allowed for GainStr attribute. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_GainStr_allowed(Tango::AttReqType type) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_Overloaded_allowed -// -// description : Read/Write allowed for Overloaded attribute. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_Overloaded_allowed(Tango::AttReqType type) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_RiseTime_allowed -// -// description : Read/Write allowed for RiseTime attribute. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_RiseTime_allowed(Tango::AttReqType type) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_Bypass_allowed -// -// description : Read/Write allowed for Bypass attribute. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_Bypass_allowed(Tango::AttReqType type) -{ - // End of Generated Code - - // Re-Start of Generated Code - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_filterState_allowed -// -// description : Read/Write allowed for filterState attribute. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_filterState_allowed(Tango::AttReqType type) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_autoFilterState_allowed -// -// description : Read/Write allowed for autoFilterState attribute. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_autoFilterState_allowed(Tango::AttReqType type) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_RiseTimeStr_allowed -// -// description : Read/Write allowed for RiseTimeStr attribute. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_RiseTimeStr_allowed(Tango::AttReqType type) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} - -//================================================= -// Commands Allowed Methods -//================================================= - -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_PerformZeroCorrect_allowed -// -// description : Execution allowed for PerformZeroCorrect command. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_PerformZeroCorrect_allowed(const CORBA::Any &any) -{ - // End of Generated Code - - // Re-Start of Generated Code - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_FilterOn_allowed -// -// description : Execution allowed for FilterOn command. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_FilterOn_allowed(const CORBA::Any &any) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_FilterOff_allowed -// -// description : Execution allowed for FilterOff command. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_FilterOff_allowed(const CORBA::Any &any) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_AutoFilterOn_allowed -// -// description : Execution allowed for AutoFilterOn command. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_AutoFilterOn_allowed(const CORBA::Any &any) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} -//+---------------------------------------------------------------------------- -// -// method : Keithley428::is_AutoFilterOff_allowed -// -// description : Execution allowed for AutoFilterOff command. -// -//----------------------------------------------------------------------------- -bool Keithley428::is_AutoFilterOff_allowed(const CORBA::Any &any) -{ - if (get_state() == Tango::FAULT) - { - // End of Generated Code - - // Re-Start of Generated Code - return false; - } - return true; -} - -} // namespace Keithley428_ns +/*----- PROTECTED REGION ID(Keithley428StateMachine.cpp) ENABLED START -----*/ +static const char *RcsId = "$Id: $"; +//============================================================================= +// +// file : Keithley428StateMachine.cpp +// +// description : C++ source for the �name� and its alowed +// methods for commands and attributes +// +// project : Keithley428 Current Amplifier. +// +// $Author: $ +// +// $Revision: $ +// $Date: $ +// +// SVN only: +// $HeadURL: $ +// +// CVS only: +// $Source: $ +// $Log: $ +// +//============================================================================= +// This file is generated by POGO +// (Program Obviously used to Generate tango Object) +//============================================================================= + + + +#include <Keithley428.h> +#include <Keithley428Class.h> + +/*----- PROTECTED REGION END -----*/ + + +/* + * Keithley428 states description: + * + * ON : + * FAULT : + */ + +namespace Keithley428_ns +{ + +//================================================= +// Attributes Allowed Methods +//================================================= + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_GainState_allowed() + * Description : Execution allowed for Gain attribute. + */ +//-------------------------------------------------------- + +bool Keithley428::is_Gain_allowed(Tango::AttReqType type) +{ + // Check if access type. + if ( type!=Tango::READ_REQ ) + { + // Not any excluded states for Gain attribute in WRITE access. + + /*----- PROTECTED REGION ID(Keithley428::GainStateAllowed_WRITE) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::GainStateAllowed_WRITE + + return true; + } + else + if ( // Compare device state with not allowed states for READ + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::read_GainStateAllowed_READ) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_GainStateAllowed_READ + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_GainStrState_allowed() + * Description : Execution allowed for GainStr attribute. + */ +//-------------------------------------------------------- + +bool Keithley428::is_GainStr_allowed(Tango::AttReqType type) +{ + if ( // Compare device state with not allowed states for READ + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::read_GainStrStateAllowed_READ) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_GainStrStateAllowed_READ + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_OverloadedState_allowed() + * Description : Execution allowed for Overloaded attribute. + */ +//-------------------------------------------------------- + +bool Keithley428::is_Overloaded_allowed(Tango::AttReqType type) +{ + if ( // Compare device state with not allowed states for READ + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::read_OverloadedStateAllowed_READ) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_OverloadedStateAllowed_READ + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_BypassState_allowed() + * Description : Execution allowed for Bypass attribute. + */ +//-------------------------------------------------------- + +bool Keithley428::is_Bypass_allowed(Tango::AttReqType type) +{ + // Check if access type. + if ( type!=Tango::READ_REQ ) + { + // Not any excluded states for Bypass attribute in WRITE access. + + /*----- PROTECTED REGION ID(Keithley428::BypassStateAllowed_WRITE) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::BypassStateAllowed_WRITE + + return true; + } + else + // Not any excluded states for Bypass attribute in READ access. + + /*----- PROTECTED REGION ID(Keithley428::read_BypassStateAllowed_READ) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_BypassStateAllowed_READ + + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_filterStateState_allowed() + * Description : Execution allowed for filterState attribute. + */ +//-------------------------------------------------------- + +bool Keithley428::is_filterState_allowed(Tango::AttReqType type) +{ + if ( // Compare device state with not allowed states for READ + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::read_filterStateStateAllowed_READ) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_filterStateStateAllowed_READ + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_autoFilterStateState_allowed() + * Description : Execution allowed for autoFilterState attribute. + */ +//-------------------------------------------------------- + +bool Keithley428::is_autoFilterState_allowed(Tango::AttReqType type) +{ + if ( // Compare device state with not allowed states for READ + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::read_autoFilterStateStateAllowed_READ) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_autoFilterStateStateAllowed_READ + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_RiseTimeState_allowed() + * Description : Execution allowed for RiseTime attribute. + */ +//-------------------------------------------------------- + +bool Keithley428::is_RiseTime_allowed(Tango::AttReqType type) +{ + // Check if access type. + if ( type!=Tango::READ_REQ ) + { + // Not any excluded states for RiseTime attribute in WRITE access. + + /*----- PROTECTED REGION ID(Keithley428::RiseTimeStateAllowed_WRITE) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::RiseTimeStateAllowed_WRITE + + return true; + } + else + if ( // Compare device state with not allowed states for READ + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::read_RiseTimeStateAllowed_READ) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_RiseTimeStateAllowed_READ + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_RiseTimeStrState_allowed() + * Description : Execution allowed for RiseTimeStr attribute. + */ +//-------------------------------------------------------- + +bool Keithley428::is_RiseTimeStr_allowed(Tango::AttReqType type) +{ + if ( // Compare device state with not allowed states for READ + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::read_RiseTimeStrStateAllowed_READ) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::read_RiseTimeStrStateAllowed_READ + + return false; + } + return true; +} + + + /*----- PROTECTED REGION ID(Keithley428::are_dynamic_attributes_allowed) ENABLED START -----*/ + + // Add your code to check if dynamic attributes are alowed + + /*----- PROTECTED REGION END -----*/ // Keithley428::are_dynamic_attributes_allowed + + +//================================================= +// Commands Allowed Methods +//================================================= + + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_PerformZeroCorrectState_allowed() + * Description : Execution allowed for PerformZeroCorrect command. + */ +//-------------------------------------------------------- + +bool Keithley428::is_PerformZeroCorrect_allowed(const CORBA::Any &any) +{ + // Not any excluded states for PerformZeroCorrect command. + + /*----- PROTECTED REGION ID(Keithley428::PerformZeroCorrectStateAllowed) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::PerformZeroCorrectStateAllowed + + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_FilterOnState_allowed() + * Description : Execution allowed for FilterOn command. + */ +//-------------------------------------------------------- + +bool Keithley428::is_FilterOn_allowed(const CORBA::Any &any) +{ + if ( // Compare device state with not allowed states for command + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::FilterOnStateAllowed) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::FilterOnStateAllowed + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_FilterOffState_allowed() + * Description : Execution allowed for FilterOff command. + */ +//-------------------------------------------------------- + +bool Keithley428::is_FilterOff_allowed(const CORBA::Any &any) +{ + if ( // Compare device state with not allowed states for command + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::FilterOffStateAllowed) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::FilterOffStateAllowed + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_AutoFilterOnState_allowed() + * Description : Execution allowed for AutoFilterOn command. + */ +//-------------------------------------------------------- + +bool Keithley428::is_AutoFilterOn_allowed(const CORBA::Any &any) +{ + if ( // Compare device state with not allowed states for command + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::AutoFilterOnStateAllowed) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::AutoFilterOnStateAllowed + + return false; + } + return true; +} + +//-------------------------------------------------------- +/** + * Method : Keithley428::is_AutoFilterOffState_allowed() + * Description : Execution allowed for AutoFilterOff command. + */ +//-------------------------------------------------------- + +bool Keithley428::is_AutoFilterOff_allowed(const CORBA::Any &any) +{ + if ( // Compare device state with not allowed states for command + get_state() == Tango::FAULT) + { + + /*----- PROTECTED REGION ID(Keithley428::AutoFilterOffStateAllowed) ENABLED START -----*/ + + /*----- PROTECTED REGION END -----*/ // Keithley428::AutoFilterOffStateAllowed + + return false; + } + return true; +} + + + /*----- PROTECTED REGION ID(Keithley428::are_dynamic_commands_allowed) ENABLED START -----*/ + + // Add your code to check if dynamic commands are alowed + + /*----- PROTECTED REGION END -----*/ // Keithley428::are_dynamic_commands_allowed + +} // namespace Keithley428_ns diff --git a/Makefile b/Makefile index 6d8b6281ca03e27e1c860f0ef4c10203462fab60..dfd299ec990181d5622f3004ecfc6f01e7a060ad 100644 --- a/Makefile +++ b/Makefile @@ -1,158 +1,162 @@ +#PROTECTED REGION ID(Keithley428::Makefile) ENABLED START# #============================================================================= # # file : Makefile # -# description : Include for the Keithley428 class. +# description : Makefile to generate a TANGO device server. # -# project : Makefile to generate a Tango server +# project : Keithley428 Current Amplifier # # $Author: $ # -# $Revision: $ +# $Revision: $ # +# $Log: $ # -# copyleft : European Synchrotron Radiation Facility -# BP 220, Grenoble 38043 -# FRANCE -# #============================================================================= -# This file is generated by POGO -# (Program Obviously used to Generate tango Object) +# This file is generated by POGO +# (Program Obviously used to Generate tango Object) +#============================================================================= +# # -# (c) - Software Engineering Group - ESRF #============================================================================= +# MAKE_ENV is the path to find common environment to buil project # +MAKE_ENV = $(TANGO_DIR)/Libraries/cppserver/common -CLASS = Keithley428 -MAJOR_VERS = 1 -MINOR_VERS = 1 -RELEASE = Release_$(MAJOR_VERS)_$(MINOR_VERS) - -ifndef _ARCH - _ARCH = $(shell uname -m) -endif -ifeq ($(_ARCH), x86_64) - libdir=lib64 -else - libdir=lib -endif -#----------------------------------------- -# Set default home directories -#----------------------------------------- +#============================================================================= +# PACKAGE_NAME is the name of the library/device/exe you want to build +# +PACKAGE_NAME = Keithley428 +MAJOR_VERS = 1 +MINOR_VERS = 3 +RELEASE = Release_$(MAJOR_VERS)_$(MINOR_VERS) + +# #============================================================================= +# # RELEASE_TYPE +# # - DEBUG : debug symbols - no optimization +# # - OPTIMIZED : no debug symbols - optimization level set to O2 +# #----------------------------------------------------------------------------- +RELEASE_TYPE = DEBUG +#============================================================================= +# OUTPUT_TYPE can be one of the following : +# - 'STATIC_LIB' for a static library (.a) +# - 'SHARED_LIB' for a dynamic library (.so) +# - 'DEVICE' for a device server (will automatically include and link +# with Tango dependencies) +# - 'SIMPLE_EXE' for an executable with no dependency (for exemple the test tool +# of a library with no Tango dependencies) +# +OUTPUT_TYPE = DEVICE -TANGO_HOME = /usr/local -ABS_CLASS = -CPP_SERVERS = $(TANGO_DIR)/Libraries/cppserver -UTIL_DIR=$(TANGO_DIR)/Libraries/util/trunk +#============================================================================= +# OUTPUT_DIR is the directory which contains the build result. +# if not set, the standard location is : +# - $HOME/DeviceServers if OUTPUT_TYPE is DEVICE +# - ../bin for others +# +OUTPUT_DIR = ./bin/$(BIN_DIR) -ifdef no_debug - DEBUG = -O -else - DEBUG = -g -endif # # if 'make using_trunk=1' use the trunk directories # ifdef using_trunk - CTRL_DIR = $(TANGO_DIR)/DeviceClasses/Communication/GpibDeviceServer/trunk + GPIB_DIR = $(TANGO_DIR)/DeviceClasses/Communication/GpibDeviceServer/trunk else - CTRL_DIR = $(shell find $(TANGO_DIR)/DeviceClasses/Communication/GpibDeviceServer/tags -type d -regex '.*Release_[0-9]*_[0-9]*' | sort -t '_' -k2 -k3 -nr | head -1) + GPIB_DIR = $(shell find $(TANGO_DIR)/DeviceClasses/Communication/GpibDeviceServer/tags -type d -regex '.*Release_[0-9]*_[0-9]*' | sort -t '_' -k2 -k3 -nr | head -1) endif -INCLUDE_DIRS = -I$(TANGO_HOME)/include/tango \ - -I/usr/local/include \ - -I. \ - -I$(CTRL_DIR) \ - -I$(CPP_SERVERS)/include - -OBJS_DIR = obj -LIB_DIRS = -L $(TANGO_HOME)/$(libdir) \ - -L /usr/local/$(libdir) \ - -L $(CPP_SERVERS)/$(libdir) - +#============================================================================= +# INC_DIR_USER is the list of all include path needed by your sources +# - for a device server, tango dependencies are automatically appended +# - '-I ../include' and '-I .' are automatically appended in all cases +# +# +INC_DIR_USER= -I . -I$(GPIB_DIR) -#----------------------------------------- -# Set CXXFLAGS and LFLAGS -#----------------------------------------- -CXXFLAGS = $(DEBUG) -D_REENTRANT $(INCLUDE_DIRS) -LFLAGS = $(DEBUG) $(LIB_DIRS) \ - -ltango \ - -llog4tango \ - -lomniORB4 \ - -lomniDynamic4 \ - -lomnithread \ - -lCOS4 \ - -lGpibDeviceServer \ - /usr/local/$(libdir)/libgpib.a \ - -ldl -lpthread +#============================================================================= +# LIB_DIR_USER is the list of user library directories +# - for a device server, tango libraries directories are automatically appended +# - '-L ../lib' is automatically appended in all cases +# +LIB_DIR_USER= +#============================================================================= +# LFLAGS_USR is the list of user link flags +# - for a device server, tango libraries directories are automatically appended +# - '-ldl -lpthread' is automatically appended in all cases +# +# !!! ATTENTION !!! +# Be aware that the order matters. +# For example if you must link with libA, and if libA depends itself on libB +# you must use '-lA -lB' in this order as link flags, otherwise you will get +# 'undefined reference' errors +# +LFLAGS_USR+= $(GPIB_DIR)/bin/libGpibDeviceServer.a $(TANGO_HOME)/$(_libdir)/libgpib.a +#============================================================================= +# CXXFLAGS_USR lists the compilation flags specific for your library/device/exe +# This is the place where to put your compile-time macros using '-Dmy_macro' +# +# -DACE_HAS_EXCEPTIONS -D__ACE_INLINE__ for ACE +# +#CXXFLAGS_USR+= -Wall -#----------------------------------------- -# Set dependences -#----------------------------------------- -SVC_OBJS = $(OBJS_DIR)/main.o \ - $(OBJS_DIR)/ClassFactory.o \ - $(OBJS_DIR)/$(CLASS)Class.o \ - $(OBJS_DIR)/$(CLASS)StateMachine.o \ - $(OBJS_DIR)/$(CLASS).o +#============================================================================= +# TANGO_REQUIRED +# - TRUE : your project depends on TANGO +# - FALSE : your project does not depend on TANGO +#----------------------------------------------------------------------------- +# - NOTE : if PROJECT_TYPE is set to DEVICE, TANGO will be auto. added +#----------------------------------------------------------------------------- +TANGO_REQUIRED = TRUE -SVC_INC = $(CLASS)Class.h \ - $(CLASS).h -$(OBJS_DIR)/%.o: %.cpp $(SVC_INC) - $(CXX) $(CXXFLAGS) -c $< -o $(OBJS_DIR)/$*.o +#============================================================================= +# include Standard TANGO compilation options +# +include $(MAKE_ENV)/tango.opt -#----------------------------------------- -# Make Entry -#----------------------------------------- -all: other_classes $(CLASS) +#============================================================================= +# POST_PROCESSING: action to be done after normal make. +# e.g.: change executable file name, ..... +#POST_PROCESSING = \ +# mv bin/$(BIN_DIR)/$(PACKAGE_NAME) bin/$(BIN_DIR)/$(PACKAGE_NAME)_DS -other_classes: - @echo -e "\n >>> Making $(CPP_SERVERS)/$(libdir)/libGpibDeviceServer.a \n" - cd $(CTRL_DIR) && make linux=1 lib +#============================================================================= +# SVC_OBJS is the list of all objects needed to make the output +# +SVC_INCL = $(PACKAGE_NAME).h $(PACKAGE_NAME)Class.h -$(CLASS): make_obj_dir make_bin_dir $(SVC_OBJS) - $(CXX) $(SVC_OBJS) -o $(CLASS) $(LFLAGS) - @mv $(CLASS) bin/$(CLASS) -clean: - rm -f $(OBJS_DIR)/*.o \ - $(OBJS_DIR)/*.so.o \ - bin/$(CLASS) \ - core +SVC_OBJS = \ + $(OBJDIR)/$(PACKAGE_NAME).o \ + $(OBJDIR)/$(PACKAGE_NAME)Class.o \ + $(OBJDIR)/$(PACKAGE_NAME)StateMachine.o \ + $(OBJDIR)/ClassFactory.o \ + $(OBJDIR)/main.o \ + $(ADDITIONAL_OBJS) -make_obj_dir: - @mkdir -p obj -make_bin_dir: - @mkdir -p bin +#------------ Object files for additional files ------------ +SPECIFIC_ALL_TARGET= libGpibDeviceServer.a -#----------------------------------------- -# Install binary file -#----------------------------------------- -install: - cp bin/$(CLASS) $(DESTDIR) +ADDITIONAL_OBJS = +#============================================================================= +# include common targets +# +include $(MAKE_ENV)/common_target.opt -#---------------------------------------------------- -# Tag the SVN module corresponding to this class -#---------------------------------------------------- -tag: -ifeq ($(shell ls -d ../tags/$(RELEASE) 2>/dev/null ), ../tags/$(RELEASE)) - @echo $(RELEASE) exists, specify new version numbers -else - svn copy ../trunk ../tags/$(RELEASE) - svn commit ../tags/$(RELEASE) \ - -m "Tagging the $(RELEASE) of the $(CLASS) project." -endif -show_tag: - @cvstag -d +libGpibDeviceServer.a: + @echo -e "\n >>> Making $(GPIB_DIR)/bin/libGpibDeviceServer.a \n" + cd $(GPIB_DIR) && make OUTPUT_TYPE=STATIC_LIB +#PROTECTED REGION END# diff --git a/TangoClassID.txt b/TangoClassID.txt deleted file mode 100644 index d716b70f5f7d0477547863ee5a6eba7353ed2f07..0000000000000000000000000000000000000000 --- a/TangoClassID.txt +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Device Class Identification: - * - * Class Name : Keithley428 - * Contact : tnunez@mail.desy.de - * Class Family : Instrumentation - * Platform : Unix Like - * Bus : GPIB - * Manufacturer : Keithley - * Reference : 428 - */ diff --git a/doc_html/AttrBypass.html b/doc_html/AttrBypass.html new file mode 100644 index 0000000000000000000000000000000000000000..23f9b5a446ee3764e3871afe49c8b90c11ca1a29 --- /dev/null +++ b/doc_html/AttrBypass.html @@ -0,0 +1,267 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + Bypass Attribute +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + 0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected. + </ul> + <Br> + <Br> + + + + <Table Border=0 Cellpadding=0 CELLSPACING=10> + <TR> + <TD ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attribute Definition + </b></Font></Center></td> + </Tr> + <!---------- Attribute type -----------> + <Tr> + <Td> <Font=+1><b> Attribute Type </b></Font></Td> + <Td> Scalar </Td> + </Tr> + + <!---------- R/W type -----------> + <Tr> + <Td> <Font=+1><b> R/W Type </b></Font></Td> + <Td> READ_WRITE </Td> + </Tr> + + <!---------- Data type -----------> + <Tr> + <Td> <Font=+1><b> Data Type </b></Font></Td> + <Td> Tango::DEV_LONG </Td> + </Tr> + + <!---------- Allowed State -----------> + + <!--- Read access ---> + <Tr> + <Td> <Font=+1><b> Read allowed for </b></Font></Td> + <Td> All states </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Write allowed for </b></Font></Td> + <Td> All states </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </b></Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </b></Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </b></Font></Td> + <Td> false </Td> + </Tr> + + <!---------- Polling -----------> + <Tr> + <Td> <Font=+1><b> Polling Period </b></Font></Td> + <Td> 0 ms </Td> + </Tr> + + <!---------- Memorized -----------> + + <!---------- Change Event -----------> + + <!---------- Archive Event -----------> + + </Table> + </Td> + <Td ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attrribute Properties + </b></Font></Center></td> + </Tr> + <Tr><Td> <Font=+1><b> label </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> standard unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> display unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> format </b></Font></Td> <Td> %d</Td></Tr> + <Tr><Td> <Font=+1><b> max_value </b></Font></Td> <Td> 2</Td></Tr> + <Tr><Td> <Font=+1><b> min_value </b></Font></Td> <Td> 0</Td></Tr> + <Tr><Td> <Font=+1><b> max_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_time </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_val </b></Font></Td> <Td> </Td></Tr> + <!--- Tr><Td> <Font=+1><b> description </b></Font></Td> <Td> 0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected.</Td></Tr---> + </Table> + </Td> + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/AttrBypass.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/AttrGain.html b/doc_html/AttrGain.html new file mode 100644 index 0000000000000000000000000000000000000000..df20d8ef08083de9cb03b871062ee0545f9cdaad --- /dev/null +++ b/doc_html/AttrGain.html @@ -0,0 +1,273 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + Gain Attribute +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + 0, 1, 2, 3 -> 10e3 V/A\n4 -> 10e4 V/A\n5 -> 10e5 V/A\n6 -> 10e6 V/A\n7 -> 10e7 V/A\n8 -> 10e8 V/A\n9 -> 10e9 V/A\n10 -> 10e10 V/A\n11 -> 10e11 V/A + </ul> + <Br> + <Br> + + + + <Table Border=0 Cellpadding=0 CELLSPACING=10> + <TR> + <TD ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attribute Definition + </b></Font></Center></td> + </Tr> + <!---------- Attribute type -----------> + <Tr> + <Td> <Font=+1><b> Attribute Type </b></Font></Td> + <Td> Scalar </Td> + </Tr> + + <!---------- R/W type -----------> + <Tr> + <Td> <Font=+1><b> R/W Type </b></Font></Td> + <Td> READ_WRITE </Td> + </Tr> + + <!---------- Data type -----------> + <Tr> + <Td> <Font=+1><b> Data Type </b></Font></Td> + <Td> Tango::DEV_LONG </Td> + </Tr> + + <!---------- Allowed State -----------> + + <!--- Read access ---> + <Tr> + <Td> <Font=+1><b> Read NOT allowed for </b></Font></Td> + <Td> + - FAULT <Br> + </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Write allowed for </b></Font></Td> + <Td> All states </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </b></Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </b></Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </b></Font></Td> + <Td> false </Td> + </Tr> + + <!---------- Polling -----------> + <Tr> + <Td> <Font=+1><b> Polling Period </b></Font></Td> + <Td> 0 ms </Td> + </Tr> + + <!---------- Memorized -----------> + <Tr> + <Td> <Font=+1><b> Memorized </b></Font></Td> + <Td> Hardware written at init</Td> + </Tr> + + <!---------- Change Event -----------> + + <!---------- Archive Event -----------> + + </Table> + </Td> + <Td ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attrribute Properties + </b></Font></Center></td> + </Tr> + <Tr><Td> <Font=+1><b> label </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> standard unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> display unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> format </b></Font></Td> <Td> %d</Td></Tr> + <Tr><Td> <Font=+1><b> max_value </b></Font></Td> <Td> 11</Td></Tr> + <Tr><Td> <Font=+1><b> min_value </b></Font></Td> <Td> 0</Td></Tr> + <Tr><Td> <Font=+1><b> max_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_time </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_val </b></Font></Td> <Td> </Td></Tr> + <!--- Tr><Td> <Font=+1><b> description </b></Font></Td> <Td> 0, 1, 2, 3 -> 10e3 V/A\n4 -> 10e4 V/A\n5 -> 10e5 V/A\n6 -> 10e6 V/A\n7 -> 10e7 V/A\n8 -> 10e8 V/A\n9 -> 10e9 V/A\n10 -> 10e10 V/A\n11 -> 10e11 V/A</Td></Tr---> + </Table> + </Td> + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/AttrGain.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/AttrGainStr.html b/doc_html/AttrGainStr.html new file mode 100644 index 0000000000000000000000000000000000000000..f98d3365e79656431b70c4e0ca5fa2ab81df077a --- /dev/null +++ b/doc_html/AttrGainStr.html @@ -0,0 +1,265 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + GainStr Attribute +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + + </ul> + <Br> + <Br> + + + + <Table Border=0 Cellpadding=0 CELLSPACING=10> + <TR> + <TD ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attribute Definition + </b></Font></Center></td> + </Tr> + <!---------- Attribute type -----------> + <Tr> + <Td> <Font=+1><b> Attribute Type </b></Font></Td> + <Td> Scalar </Td> + </Tr> + + <!---------- R/W type -----------> + <Tr> + <Td> <Font=+1><b> R/W Type </b></Font></Td> + <Td> READ </Td> + </Tr> + + <!---------- Data type -----------> + <Tr> + <Td> <Font=+1><b> Data Type </b></Font></Td> + <Td> Tango::DEV_STRING </Td> + </Tr> + + <!---------- Allowed State -----------> + + <!--- Read access ---> + <Tr> + <Td> <Font=+1><b> Read NOT allowed for </b></Font></Td> + <Td> + - FAULT <Br> + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </b></Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </b></Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </b></Font></Td> + <Td> false </Td> + </Tr> + + <!---------- Polling -----------> + <Tr> + <Td> <Font=+1><b> Polling Period </b></Font></Td> + <Td> 0 ms </Td> + </Tr> + + <!---------- Memorized -----------> + + <!---------- Change Event -----------> + + <!---------- Archive Event -----------> + + </Table> + </Td> + <Td ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attrribute Properties + </b></Font></Center></td> + </Tr> + <Tr><Td> <Font=+1><b> label </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> standard unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> display unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> format </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_time </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_val </b></Font></Td> <Td> </Td></Tr> + <!--- Tr><Td> <Font=+1><b> description </b></Font></Td> <Td> </Td></Tr---> + </Table> + </Td> + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/AttrGainStr.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/AttrOverloaded.html b/doc_html/AttrOverloaded.html new file mode 100644 index 0000000000000000000000000000000000000000..83b2f11821b14cc34ddff17ffba890a4f8c9749f --- /dev/null +++ b/doc_html/AttrOverloaded.html @@ -0,0 +1,265 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + Overloaded Attribute +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + 1 if device is overloaded + </ul> + <Br> + <Br> + + + + <Table Border=0 Cellpadding=0 CELLSPACING=10> + <TR> + <TD ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attribute Definition + </b></Font></Center></td> + </Tr> + <!---------- Attribute type -----------> + <Tr> + <Td> <Font=+1><b> Attribute Type </b></Font></Td> + <Td> Scalar </Td> + </Tr> + + <!---------- R/W type -----------> + <Tr> + <Td> <Font=+1><b> R/W Type </b></Font></Td> + <Td> READ </Td> + </Tr> + + <!---------- Data type -----------> + <Tr> + <Td> <Font=+1><b> Data Type </b></Font></Td> + <Td> Tango::DEV_LONG </Td> + </Tr> + + <!---------- Allowed State -----------> + + <!--- Read access ---> + <Tr> + <Td> <Font=+1><b> Read NOT allowed for </b></Font></Td> + <Td> + - FAULT <Br> + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </b></Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </b></Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </b></Font></Td> + <Td> false </Td> + </Tr> + + <!---------- Polling -----------> + <Tr> + <Td> <Font=+1><b> Polling Period </b></Font></Td> + <Td> 0 ms </Td> + </Tr> + + <!---------- Memorized -----------> + + <!---------- Change Event -----------> + + <!---------- Archive Event -----------> + + </Table> + </Td> + <Td ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attrribute Properties + </b></Font></Center></td> + </Tr> + <Tr><Td> <Font=+1><b> label </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> standard unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> display unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> format </b></Font></Td> <Td> %d</Td></Tr> + <Tr><Td> <Font=+1><b> max_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_time </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_val </b></Font></Td> <Td> </Td></Tr> + <!--- Tr><Td> <Font=+1><b> description </b></Font></Td> <Td> 1 if device is overloaded</Td></Tr---> + </Table> + </Td> + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/AttrOverloaded.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/AttrRiseTime.html b/doc_html/AttrRiseTime.html new file mode 100644 index 0000000000000000000000000000000000000000..c471b7cfa8a5e25c7148dd9b8f9d2f3f9b0e1fc5 --- /dev/null +++ b/doc_html/AttrRiseTime.html @@ -0,0 +1,273 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + RiseTime Attribute +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n + </ul> + <Br> + <Br> + + + + <Table Border=0 Cellpadding=0 CELLSPACING=10> + <TR> + <TD ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attribute Definition + </b></Font></Center></td> + </Tr> + <!---------- Attribute type -----------> + <Tr> + <Td> <Font=+1><b> Attribute Type </b></Font></Td> + <Td> Scalar </Td> + </Tr> + + <!---------- R/W type -----------> + <Tr> + <Td> <Font=+1><b> R/W Type </b></Font></Td> + <Td> READ_WRITE </Td> + </Tr> + + <!---------- Data type -----------> + <Tr> + <Td> <Font=+1><b> Data Type </b></Font></Td> + <Td> Tango::DEV_LONG </Td> + </Tr> + + <!---------- Allowed State -----------> + + <!--- Read access ---> + <Tr> + <Td> <Font=+1><b> Read NOT allowed for </b></Font></Td> + <Td> + - FAULT <Br> + </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Write allowed for </b></Font></Td> + <Td> All states </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </b></Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </b></Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </b></Font></Td> + <Td> false </Td> + </Tr> + + <!---------- Polling -----------> + <Tr> + <Td> <Font=+1><b> Polling Period </b></Font></Td> + <Td> 0 ms </Td> + </Tr> + + <!---------- Memorized -----------> + <Tr> + <Td> <Font=+1><b> Memorized </b></Font></Td> + <Td> Hardware written at init</Td> + </Tr> + + <!---------- Change Event -----------> + + <!---------- Archive Event -----------> + + </Table> + </Td> + <Td ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attrribute Properties + </b></Font></Center></td> + </Tr> + <Tr><Td> <Font=+1><b> label </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> standard unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> display unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> format </b></Font></Td> <Td> %d</Td></Tr> + <Tr><Td> <Font=+1><b> max_value </b></Font></Td> <Td> 9</Td></Tr> + <Tr><Td> <Font=+1><b> min_value </b></Font></Td> <Td> 0</Td></Tr> + <Tr><Td> <Font=+1><b> max_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_time </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_val </b></Font></Td> <Td> </Td></Tr> + <!--- Tr><Td> <Font=+1><b> description </b></Font></Td> <Td> 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n</Td></Tr---> + </Table> + </Td> + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/AttrRiseTime.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/AttrRiseTimeStr.html b/doc_html/AttrRiseTimeStr.html new file mode 100644 index 0000000000000000000000000000000000000000..2341bb53b9dccd58e23dc9b66c6d4d9b736a0394 --- /dev/null +++ b/doc_html/AttrRiseTimeStr.html @@ -0,0 +1,265 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + RiseTimeStr Attribute +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n + </ul> + <Br> + <Br> + + + + <Table Border=0 Cellpadding=0 CELLSPACING=10> + <TR> + <TD ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attribute Definition + </b></Font></Center></td> + </Tr> + <!---------- Attribute type -----------> + <Tr> + <Td> <Font=+1><b> Attribute Type </b></Font></Td> + <Td> Scalar </Td> + </Tr> + + <!---------- R/W type -----------> + <Tr> + <Td> <Font=+1><b> R/W Type </b></Font></Td> + <Td> READ </Td> + </Tr> + + <!---------- Data type -----------> + <Tr> + <Td> <Font=+1><b> Data Type </b></Font></Td> + <Td> Tango::DEV_STRING </Td> + </Tr> + + <!---------- Allowed State -----------> + + <!--- Read access ---> + <Tr> + <Td> <Font=+1><b> Read NOT allowed for </b></Font></Td> + <Td> + - FAULT <Br> + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </b></Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </b></Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </b></Font></Td> + <Td> false </Td> + </Tr> + + <!---------- Polling -----------> + <Tr> + <Td> <Font=+1><b> Polling Period </b></Font></Td> + <Td> 0 ms </Td> + </Tr> + + <!---------- Memorized -----------> + + <!---------- Change Event -----------> + + <!---------- Archive Event -----------> + + </Table> + </Td> + <Td ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attrribute Properties + </b></Font></Center></td> + </Tr> + <Tr><Td> <Font=+1><b> label </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> standard unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> display unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> format </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_time </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_val </b></Font></Td> <Td> </Td></Tr> + <!--- Tr><Td> <Font=+1><b> description </b></Font></Td> <Td> 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n</Td></Tr---> + </Table> + </Td> + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/AttrRiseTimeStr.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/AttrautoFilterState.html b/doc_html/AttrautoFilterState.html new file mode 100644 index 0000000000000000000000000000000000000000..5c88542b9ccb237a7ca0311c23d8d3aa0473bfdf --- /dev/null +++ b/doc_html/AttrautoFilterState.html @@ -0,0 +1,265 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + autoFilterState Attribute +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + State of the auto Filter + </ul> + <Br> + <Br> + + + + <Table Border=0 Cellpadding=0 CELLSPACING=10> + <TR> + <TD ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attribute Definition + </b></Font></Center></td> + </Tr> + <!---------- Attribute type -----------> + <Tr> + <Td> <Font=+1><b> Attribute Type </b></Font></Td> + <Td> Scalar </Td> + </Tr> + + <!---------- R/W type -----------> + <Tr> + <Td> <Font=+1><b> R/W Type </b></Font></Td> + <Td> READ </Td> + </Tr> + + <!---------- Data type -----------> + <Tr> + <Td> <Font=+1><b> Data Type </b></Font></Td> + <Td> Tango::DEV_STRING </Td> + </Tr> + + <!---------- Allowed State -----------> + + <!--- Read access ---> + <Tr> + <Td> <Font=+1><b> Read NOT allowed for </b></Font></Td> + <Td> + - FAULT <Br> + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </b></Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </b></Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </b></Font></Td> + <Td> false </Td> + </Tr> + + <!---------- Polling -----------> + <Tr> + <Td> <Font=+1><b> Polling Period </b></Font></Td> + <Td> 0 ms </Td> + </Tr> + + <!---------- Memorized -----------> + + <!---------- Change Event -----------> + + <!---------- Archive Event -----------> + + </Table> + </Td> + <Td ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attrribute Properties + </b></Font></Center></td> + </Tr> + <Tr><Td> <Font=+1><b> label </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> standard unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> display unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> format </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_time </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_val </b></Font></Td> <Td> </Td></Tr> + <!--- Tr><Td> <Font=+1><b> description </b></Font></Td> <Td> State of the auto Filter</Td></Tr---> + </Table> + </Td> + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/AttrautoFilterState.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/AttrfilterState.html b/doc_html/AttrfilterState.html new file mode 100644 index 0000000000000000000000000000000000000000..e4923f520e104444bcf6f3dce3515d38989b48fd --- /dev/null +++ b/doc_html/AttrfilterState.html @@ -0,0 +1,265 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + filterState Attribute +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + State of the manual filter + </ul> + <Br> + <Br> + + + + <Table Border=0 Cellpadding=0 CELLSPACING=10> + <TR> + <TD ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attribute Definition + </b></Font></Center></td> + </Tr> + <!---------- Attribute type -----------> + <Tr> + <Td> <Font=+1><b> Attribute Type </b></Font></Td> + <Td> Scalar </Td> + </Tr> + + <!---------- R/W type -----------> + <Tr> + <Td> <Font=+1><b> R/W Type </b></Font></Td> + <Td> READ </Td> + </Tr> + + <!---------- Data type -----------> + <Tr> + <Td> <Font=+1><b> Data Type </b></Font></Td> + <Td> Tango::DEV_STRING </Td> + </Tr> + + <!---------- Allowed State -----------> + + <!--- Read access ---> + <Tr> + <Td> <Font=+1><b> Read NOT allowed for </b></Font></Td> + <Td> + - FAULT <Br> + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </b></Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </b></Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </b></Font></Td> + <Td> false </Td> + </Tr> + + <!---------- Polling -----------> + <Tr> + <Td> <Font=+1><b> Polling Period </b></Font></Td> + <Td> 0 ms </Td> + </Tr> + + <!---------- Memorized -----------> + + <!---------- Change Event -----------> + + <!---------- Archive Event -----------> + + </Table> + </Td> + <Td ALIGN="left" VALIGN=top> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Attrribute Properties + </b></Font></Center></td> + </Tr> + <Tr><Td> <Font=+1><b> label </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> standard unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> display unit </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> format </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_value </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_alarm </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> max_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> min_warning </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_time </b></Font></Td> <Td> </Td></Tr> + <Tr><Td> <Font=+1><b> delta_val </b></Font></Td> <Td> </Td></Tr> + <!--- Tr><Td> <Font=+1><b> description </b></Font></Td> <Td> State of the manual filter</Td></Tr---> + </Table> + </Td> + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/AttrfilterState.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/Attributes.html b/doc_html/Attributes.html index f0a66746bf96ce52a3023875780ea1136295678b..9964cf300e55f9e8b8815968a2d4eeeb6c7b1491 100644 --- a/doc_html/Attributes.html +++ b/doc_html/Attributes.html @@ -1,91 +1,233 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> -<Title> Tango Device Server User's Guide </Title> +<Title> Tango Device Server User s Guide </Title> </HEAD> <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> <P><!-------TITLE------></P> - <TABLE BORDER="0" WIDTH="100%"> <TR> <TD ALIGN="left"> - <A HREF="http://www.esrf.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> - </Td> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> <TD ALIGN="center"> - <A HREF="http://www.elettra.trieste.it/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> - - </Td> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> <TD ALIGN="center"> - <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.cells.es/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A> - </Td> - <Td> - <H2><FONT COLOR="#7F00FF"> - <Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> - TANGO </a> <Br> Device Server - </Center></FONT> - </Td> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> </TR> </TABLE> <HR WIDTH="100%"></H5> -<Br> -<center> -<h1> -Keithley428 Current Amplifier <Br> -Device Attributes Description <Br> <Br> -Keithley428 Class <Br> -</h1> -<b> -Revision: - Author: -</b> -</center> + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> <Br> -<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td COLSPAN=4> <Font Size=+2><Center><b>Scalar Attributes</b></td></Font></Center> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td><Center><b>Attribute name</b></td></Center> -<Td><Center><b>Data Type</b></td></Center> -<Td><Center><b>R/W Type</b></td></Center> -<Td><Center><b>Expert</b></td></Center> -<Tr><Td><b>Gain</b>: <Font Size=-1>0, 1, 2, 3 -> 10e3 V/A 4 -> 10e4 V/A 5 -> 10e5 V/A 6 -> 10e6 V/A 7 -> 10e7 V/A 8 -> 10e8 V/A 9 -> 10e9 V/A 10 -> 10e10 V/A 11 -> 10e11 V/A</Font></Td> -<Td><Center><Font Size=-1>DEV_LONG</Font></Center></Td><Td><Center><Font Size=-1>READ_WRITE</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> +<Br> +<FONT SIZE="+2"><u> + Attributes +</u></Font> +</Center> -<Tr><Td><b>GainStr</b></Td> -<Td><Center><Font Size=-1>DEV_STRING</Font></Center></Td><Td><Center><Font Size=-1>READ</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> -<Tr><Td><b>Overloaded</b>: <Font Size=-1>1 if device is overloaded</Font></Td> -<Td><Center><Font Size=-1>DEV_LONG</Font></Center></Td><Td><Center><Font Size=-1>READ</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> -<Tr><Td><b>Bypass</b>: <Font Size=-1>0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected.</Font></Td> -<Td><Center><Font Size=-1>DEV_LONG</Font></Center></Td><Td><Center><Font Size=-1>READ_WRITE</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=8> <Font Size=+1> <Center><b> + 8 Device Attributes + </b></Font></Center></td> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td><Center><b> + Name + </b></Center></td> + <Td><Center><b> + Inherited + </b></Center></td> + <Td><Center><b> + Abstract + </b></Center></td> + <Td><Center><b> + Attr. type + </b></Center></td> + <Td><Center><b> + R/W type + </b></Center></td> + <Td><Center><b> + Data type + </b></Center></td> + <Td><Center><b> + Level + </b></Center></td> + <Td><Center><b> + Description + </b></Center></td> + </Tr> + <Tr> + <Td> <a href=AttrGain.html> Gain </a></Td> + <Td> false </Td> + <Td> false </Td> + <Td> Scalar </Td> + <Td> READ_WRITE </Td> + <Td> Tango::DEV_LONG </Td> + <Td> OPERATOR </Td> + <Td> 0, 1, 2, 3 -> 10e3 V/A\n4 -> 10e4 V/A\n5 -> 10e5 V/A\n6 -> 10e6 V/A\n7 -> 10e7 V/A\n8 -> 10e8 V/A\n9 -> 10e9 V/A\n10 -> 10e10 V/A\n11 -> 10e11 V/A </Td> + </Tr> + <Tr> + <Td> <a href=AttrGainStr.html> GainStr </a></Td> + <Td> false </Td> + <Td> false </Td> + <Td> Scalar </Td> + <Td> READ </Td> + <Td> Tango::DEV_STRING </Td> + <Td> OPERATOR </Td> + <Td> </Td> + </Tr> + <Tr> + <Td> <a href=AttrOverloaded.html> Overloaded </a></Td> + <Td> false </Td> + <Td> false </Td> + <Td> Scalar </Td> + <Td> READ </Td> + <Td> Tango::DEV_LONG </Td> + <Td> OPERATOR </Td> + <Td> 1 if device is overloaded </Td> + </Tr> + <Tr> + <Td> <a href=AttrBypass.html> Bypass </a></Td> + <Td> false </Td> + <Td> false </Td> + <Td> Scalar </Td> + <Td> READ_WRITE </Td> + <Td> Tango::DEV_LONG </Td> + <Td> OPERATOR </Td> + <Td> 0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected. </Td> + </Tr> + <Tr> + <Td> <a href=AttrfilterState.html> filterState </a></Td> + <Td> false </Td> + <Td> false </Td> + <Td> Scalar </Td> + <Td> READ </Td> + <Td> Tango::DEV_STRING </Td> + <Td> OPERATOR </Td> + <Td> State of the manual filter </Td> + </Tr> + <Tr> + <Td> <a href=AttrautoFilterState.html> autoFilterState </a></Td> + <Td> false </Td> + <Td> false </Td> + <Td> Scalar </Td> + <Td> READ </Td> + <Td> Tango::DEV_STRING </Td> + <Td> OPERATOR </Td> + <Td> State of the auto Filter </Td> + </Tr> + <Tr> + <Td> <a href=AttrRiseTime.html> RiseTime </a></Td> + <Td> false </Td> + <Td> false </Td> + <Td> Scalar </Td> + <Td> READ_WRITE </Td> + <Td> Tango::DEV_LONG </Td> + <Td> OPERATOR </Td> + <Td> 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n </Td> + </Tr> + <Tr> + <Td> <a href=AttrRiseTimeStr.html> RiseTimeStr </a></Td> + <Td> false </Td> + <Td> false </Td> + <Td> Scalar </Td> + <Td> READ </Td> + <Td> Tango::DEV_STRING </Td> + <Td> OPERATOR </Td> + <Td> 0 -> 10e-6 sec\n1 -> 30e-6 sec\n2 -> 100e-6 sec\n3 -> 300e-6 sec\n4 -> 1e-3 sec\n5 -> 3e-3 sec\n6 -> 10e-3 sec\n7 -> 30e-3 sec\n8 -> 100e-3 sec\n9 -> 300e-3 sec\n </Td> + </Tr> + </table> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/Attributes.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> -<Tr><Td><b>filterState</b>: <Font Size=-1>State of the manual filter</Font></Td> -<Td><Center><Font Size=-1>DEV_STRING</Font></Center></Td><Td><Center><Font Size=-1>READ</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> + </ul> +<!--- /*PROTECTED REGION END*/ ---> -<Tr><Td><b>autoFilterState</b>: <Font Size=-1>State of the auto Filter</Font></Td> -<Td><Center><Font Size=-1>DEV_STRING</Font></Center></Td><Td><Center><Font Size=-1>READ</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> + <Br> + <Br> +</ul> +</FONT> -</Table> -</Center> -<Br><Br><Br><Br><Br> <!--- html Footer ---> - <Center> <Font size=-1> <br> @@ -107,16 +249,14 @@ Revision: - Author: <Td Align="Center"> <Font size=-1> Core and Tools : - <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new"> + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> CVS repository</a> on <a href="https://sourceforge.net/projects/tango-cs" Target=new> tango-cs project</a> - <br> - Device Servers : - <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new"> - CVS repository</a> on + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on <a href="https://sourceforge.net/projects/tango-ds" Target=new> tango-ds project</a> </Font> @@ -127,3 +267,4 @@ Revision: - Author: </Center> </body> </html> + diff --git a/doc_html/CmdAutoFilterOff.html b/doc_html/CmdAutoFilterOff.html new file mode 100644 index 0000000000000000000000000000000000000000..d45904d965f71c1328fc8224563d32e35fb44b27 --- /dev/null +++ b/doc_html/CmdAutoFilterOff.html @@ -0,0 +1,221 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + AutoFilterOff Command +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + Disable Auto Filter + </ul> + <Br> + <Br> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + AutoFilterOff Command + </b></Font></Center></td> + </Tr> + <!---------- Input Argument -----------> + <Tr> + <Td> <Font=+1><b> Input Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Output Argument -----------> + <Tr> + <Td> <Font=+1><b> Output Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Allowed State -----------> + + <Tr> + <Td> <Font=+1><b> Command NOT allowed for </Font></Td> + <Td> + + - FAULT <Br> + + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </Font></Td> + <Td> false </Td> + </Tr> + + + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/CmdAutoFilterOff.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/CmdAutoFilterOn.html b/doc_html/CmdAutoFilterOn.html new file mode 100644 index 0000000000000000000000000000000000000000..5b1425d3a1a33151a13cfb8d464dc738792b71b4 --- /dev/null +++ b/doc_html/CmdAutoFilterOn.html @@ -0,0 +1,221 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + AutoFilterOn Command +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + Enable Auto Filter + </ul> + <Br> + <Br> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + AutoFilterOn Command + </b></Font></Center></td> + </Tr> + <!---------- Input Argument -----------> + <Tr> + <Td> <Font=+1><b> Input Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Output Argument -----------> + <Tr> + <Td> <Font=+1><b> Output Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Allowed State -----------> + + <Tr> + <Td> <Font=+1><b> Command NOT allowed for </Font></Td> + <Td> + + - FAULT <Br> + + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </Font></Td> + <Td> false </Td> + </Tr> + + + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/CmdAutoFilterOn.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/CmdFilterOff.html b/doc_html/CmdFilterOff.html new file mode 100644 index 0000000000000000000000000000000000000000..633588ae081a4241e9259d8514154645b40e3648 --- /dev/null +++ b/doc_html/CmdFilterOff.html @@ -0,0 +1,221 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + FilterOff Command +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + Turn the filter OFF + </ul> + <Br> + <Br> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + FilterOff Command + </b></Font></Center></td> + </Tr> + <!---------- Input Argument -----------> + <Tr> + <Td> <Font=+1><b> Input Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Output Argument -----------> + <Tr> + <Td> <Font=+1><b> Output Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Allowed State -----------> + + <Tr> + <Td> <Font=+1><b> Command NOT allowed for </Font></Td> + <Td> + + - FAULT <Br> + + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </Font></Td> + <Td> false </Td> + </Tr> + + + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/CmdFilterOff.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/CmdFilterOn.html b/doc_html/CmdFilterOn.html new file mode 100644 index 0000000000000000000000000000000000000000..f7e7b1c0661f4eeb82f957c60f26cc5e2a9b7d83 --- /dev/null +++ b/doc_html/CmdFilterOn.html @@ -0,0 +1,221 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + FilterOn Command +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + Turn the filter ON + </ul> + <Br> + <Br> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + FilterOn Command + </b></Font></Center></td> + </Tr> + <!---------- Input Argument -----------> + <Tr> + <Td> <Font=+1><b> Input Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Output Argument -----------> + <Tr> + <Td> <Font=+1><b> Output Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Allowed State -----------> + + <Tr> + <Td> <Font=+1><b> Command NOT allowed for </Font></Td> + <Td> + + - FAULT <Br> + + </Td> + </Tr> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </Font></Td> + <Td> false </Td> + </Tr> + + + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/CmdFilterOn.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/CmdPerformZeroCorrect.html b/doc_html/CmdPerformZeroCorrect.html new file mode 100644 index 0000000000000000000000000000000000000000..8c4c3fb4716416e48b5683ad487ee10c23f38909 --- /dev/null +++ b/doc_html/CmdPerformZeroCorrect.html @@ -0,0 +1,212 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + PerformZeroCorrect Command +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + Perform Zero correction. + </ul> + <Br> + <Br> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + PerformZeroCorrect Command + </b></Font></Center></td> + </Tr> + <!---------- Input Argument -----------> + <Tr> + <Td> <Font=+1><b> Input Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Output Argument -----------> + <Tr> + <Td> <Font=+1><b> Output Argument </Font></Td> + <Td> Tango::DEV_VOID + (...) + + </Td> + </Tr> + + <!---------- Allowed State -----------> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </Font></Td> + <Td> false </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </Font></Td> + <Td> false </Td> + </Tr> + + + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/CmdPerformZeroCorrect.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/CmdState.html b/doc_html/CmdState.html new file mode 100644 index 0000000000000000000000000000000000000000..69b464f0efda68b69c97a56a64f21aaf17cc2226 --- /dev/null +++ b/doc_html/CmdState.html @@ -0,0 +1,212 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + State Command +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller. + </ul> + <Br> + <Br> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + State Command + </b></Font></Center></td> + </Tr> + <!---------- Input Argument -----------> + <Tr> + <Td> <Font=+1><b> Input Argument </Font></Td> + <Td> Tango::DEV_VOID + (none.) + + </Td> + </Tr> + + <!---------- Output Argument -----------> + <Tr> + <Td> <Font=+1><b> Output Argument </Font></Td> + <Td> Tango::DEV_STATE + (State Code) + + </Td> + </Tr> + + <!---------- Allowed State -----------> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </Font></Td> + <Td> true </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </Font></Td> + <Td> true </Td> + </Tr> + + + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/CmdState.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/CmdStatus.html b/doc_html/CmdStatus.html new file mode 100644 index 0000000000000000000000000000000000000000..b9192978a94c9ffc980b9d2a5813e5e3e754ff9e --- /dev/null +++ b/doc_html/CmdStatus.html @@ -0,0 +1,212 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + Status Command +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + <Font SIZE="+0"> <b><u> Description :</u></b> </Font> + <ul> + This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller. + </ul> + <Br> + <Br> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=0> <Font Size=+1> <Center><b> + Status Command + </b></Font></Center></td> + </Tr> + <!---------- Input Argument -----------> + <Tr> + <Td> <Font=+1><b> Input Argument </Font></Td> + <Td> Tango::DEV_VOID + (none.) + + </Td> + </Tr> + + <!---------- Output Argument -----------> + <Tr> + <Td> <Font=+1><b> Output Argument </Font></Td> + <Td> Tango::CONST_DEV_STRING + (Status description) + + </Td> + </Tr> + + <!---------- Allowed State -----------> + + + <!---------- Display Level -----------> + <Tr> + <Td> <Font=+1><b> Display Level </Font></Td> + <Td> OPERATOR </Td> + </Tr> + + <!---------- Inheritance -----------> + <Tr> + <Td> <Font=+1><b> Inherited </Font></Td> + <Td> true </Td> + </Tr> + <Tr> + <Td> <Font=+1><b> Abstract </Font></Td> + <Td> true </Td> + </Tr> + + + </Table> + <Br> + <Br> + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/CmdStatus.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> +<Br> +<Br> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/Commands.html b/doc_html/Commands.html new file mode 100644 index 0000000000000000000000000000000000000000..0ad5c4855adb2d8ad6bfa5a18dfc958a70a4a11e --- /dev/null +++ b/doc_html/Commands.html @@ -0,0 +1,250 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + Commands +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=7> <Font Size=+1> <Center><b> + 7 Device Commands + </b></Font></Center></td> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td><Center><b> + Name + </b></Center></td> + <Td><Center><b> + Inherited + </b></Center></td> + <Td><Center><b> + Concrete + </b></Center></td> + <Td><Center><b> + Input type + </b></Center></td> + <Td><Center><b> + Output type + </b></Center></td> + <Td><Center><b> + Level + </b></Center></td> + <Td><Center><b> + Description + </b></Center></td> + </Tr> + <Tr> + <Td> <a href=CmdState.html> State </a></Td> + <Td> true </Td> + <Td> true </Td> + <Td> Tango::DEV_VOID </Td> + <Td> Tango::DEV_STATE </Td> + <Td> OPERATOR </Td> + <Td> This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller. </Td> + </Tr> + <Tr> + <Td> <a href=CmdStatus.html> Status </a></Td> + <Td> true </Td> + <Td> true </Td> + <Td> Tango::DEV_VOID </Td> + <Td> Tango::CONST_DEV_STRING </Td> + <Td> OPERATOR </Td> + <Td> This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller. </Td> + </Tr> + <Tr> + <Td> <a href=CmdPerformZeroCorrect.html> PerformZeroCorrect </a></Td> + <Td> false </Td> + <Td> true </Td> + <Td> Tango::DEV_VOID </Td> + <Td> Tango::DEV_VOID </Td> + <Td> OPERATOR </Td> + <Td> Perform Zero correction. </Td> + </Tr> + <Tr> + <Td> <a href=CmdFilterOn.html> FilterOn </a></Td> + <Td> false </Td> + <Td> true </Td> + <Td> Tango::DEV_VOID </Td> + <Td> Tango::DEV_VOID </Td> + <Td> OPERATOR </Td> + <Td> Turn the filter ON </Td> + </Tr> + <Tr> + <Td> <a href=CmdFilterOff.html> FilterOff </a></Td> + <Td> false </Td> + <Td> true </Td> + <Td> Tango::DEV_VOID </Td> + <Td> Tango::DEV_VOID </Td> + <Td> OPERATOR </Td> + <Td> Turn the filter OFF </Td> + </Tr> + <Tr> + <Td> <a href=CmdAutoFilterOn.html> AutoFilterOn </a></Td> + <Td> false </Td> + <Td> true </Td> + <Td> Tango::DEV_VOID </Td> + <Td> Tango::DEV_VOID </Td> + <Td> OPERATOR </Td> + <Td> Enable Auto Filter </Td> + </Tr> + <Tr> + <Td> <a href=CmdAutoFilterOff.html> AutoFilterOff </a></Td> + <Td> false </Td> + <Td> true </Td> + <Td> Tango::DEV_VOID </Td> + <Td> Tango::DEV_VOID </Td> + <Td> OPERATOR </Td> + <Td> Disable Auto Filter </Td> + </Tr> + </table> +<Br> +<Br> + +<!--- /*PROTECTED REGION ID(./doc_html/Commands.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/Description.html b/doc_html/Description.html deleted file mode 100644 index 43671a6307abf18043a3fb4d3dbd6978d6607ff8..0000000000000000000000000000000000000000 --- a/doc_html/Description.html +++ /dev/null @@ -1,105 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<Title> Tango Device Server User's Guide </Title> -</HEAD> -<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> - -<P><!-------TITLE------></P> -<TABLE BORDER="0" WIDTH="100%"> - <TR> - <TD ALIGN="left"> - <A HREF="http://www.esrf.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="center"> - <A HREF="http://www.elettra.trieste.it/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> - - </Td> - <TD ALIGN="center"> - <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.cells.es/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A> - </Td> - <Td> - <H2><FONT COLOR="#7F00FF"> - <Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> - TANGO </a> <Br> Device Server - </Center></FONT> - </Td> - </TR> -</TABLE> -<Br> - - -<HR WIDTH="100%"></H5> -<Br> -<center> -<h1> -Keithley428 Current Amplifier <Br> -Device Description <Br> <Br> -Keithley428 Class <Br> -</h1> -<b> -Revision: - Author: -</b> -</center> - - -<Center> -Class for controlling the Keithley428 current amplifier. -<Br> -<Br> -</Center> - -<!--- html Footer ---> - -<Center> -<Font size=-1> -<br> -<br> -<TABLE BORDER="1" WIDTH="100%"> - <Tr> - <!--- Hosted by Sourceforge ---> - <Td Align="Center"> - <Font size=-1> - <b>TANGO</b> is an open source project hosted by :<br> - <A href="http://sourceforge.net" Target="new"> - <IMG title="Sourceforge logo" - alt="Sourceforge logo small" - src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" - border=0> </a> - </Font> - </Td> - <!--- 2 Sourceforge Repositories ---> - <Td Align="Center"> - <Font size=-1> - Core and Tools : - <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-cs" Target=new> - tango-cs project</a> - - <br> - - Device Servers : - <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-ds" Target=new> - tango-ds project</a> - </Font> - </Td> - </Tr> -</Table> -</Font> -</Center> -</body> -</html> diff --git a/doc_html/DevCommands.html b/doc_html/DevCommands.html deleted file mode 100644 index b24574da84f3d4173c70517cbbbe97566e8f4c2d..0000000000000000000000000000000000000000 --- a/doc_html/DevCommands.html +++ /dev/null @@ -1,218 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<Title> Tango Device Server User's Guide </Title> -</HEAD> -<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> - -<P><!-------TITLE------></P> - -<TABLE BORDER="0" WIDTH="100%"> - <TR> - <TD ALIGN="left"> - <A HREF="http://www.esrf.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="center"> - <A HREF="http://www.elettra.trieste.it/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> - - </Td> - <TD ALIGN="center"> - <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.cells.es/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A> - </Td> - <Td> - <H2><FONT COLOR="#7F00FF"> - <Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> - TANGO </a> <Br> Device Server - </Center></FONT> - </Td> - </TR> -</TABLE> - -<HR WIDTH="100%"></H5> -<Br> -<center> -<h1> -Keithley428 Current Amplifier <Br> -Device Commands Description <Br> <Br> -Keithley428 Class <Br> -</h1> -<b> -Revision: - Author: -</b> -</center> - - -<Br> -<Br> -<Br> -<A NAME="Init"><!-- --></A> -<A NAME="Init"><!-- --></A> -<h2>1 - Init</h2> -<ul> -<Li><Strong>Description: </Strong> This commands re-initialise a device keeping the same network connection.<Br> -After an Init command executed on a device, it is not necessary for client to re-connect to the device.<Br> -This command first calls the device <i> delete_device() </i>method and then execute its <i> init_device()</i> method.<Br> -For C++ device server, all the memory allocated in the <i> nit_device() </i> method must be freed in the <i> delete_device() </i> method.<Br> -The language device desctructor automatically calls the <i> delete_device() </i> method.<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : none.<Br>  -<Li><Strong>Argout:<Br>DEV_VOID</Strong> - : none.<Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON<Li>Tango::FAULT</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="State"><!-- --></A> -<A NAME="State"><!-- --></A> -<h2>2 - State</h2> -<ul> -<Li><Strong>Description: </Strong> This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller.<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : none.<Br>  -<Li><Strong>Argout:<Br>DEV_STATE</Strong> - : State Code<Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON<Li>Tango::FAULT</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="Status"><!-- --></A> -<A NAME="Status"><!-- --></A> -<h2>3 - Status</h2> -<ul> -<Li><Strong>Description: </Strong> This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller.<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : none.<Br>  -<Li><Strong>Argout:<Br>CONST_DEV_STRING</Strong> - : Status description<Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON<Li>Tango::FAULT</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="PerformZeroCorrect"><!-- --></A> -<A NAME="PerformZeroCorrect"><!-- --></A> -<h2>4 - PerformZeroCorrect</h2> -<ul> -<Li><Strong>Description: </Strong> Perform Zero correction.<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Argout:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON<Li>Tango::FAULT</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="FilterOn"><!-- --></A> -<A NAME="FilterOn"><!-- --></A> -<h2>5 - FilterOn</h2> -<ul> -<Li><Strong>Description: </Strong> Turn the filter ON<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Argout:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="FilterOff"><!-- --></A> -<A NAME="FilterOff"><!-- --></A> -<h2>6 - FilterOff</h2> -<ul> -<Li><Strong>Description: </Strong> Turn the filter OFF<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Argout:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="AutoFilterOn"><!-- --></A> -<A NAME="AutoFilterOn"><!-- --></A> -<h2>7 - AutoFilterOn</h2> -<ul> -<Li><Strong>Description: </Strong> Enable Auto Filter<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Argout:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="AutoFilterOff"><!-- --></A> -<A NAME="AutoFilterOff"><!-- --></A> -<h2>8 - AutoFilterOff</h2> -<ul> -<Li><Strong>Description: </Strong> Disable Auto Filter<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Argout:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON</Ul> -<Br>  -</ul><Br> -<Br> - -<!--- html Footer ---> - -<Center> -<Font size=-1> -<br> -<br> -<TABLE BORDER="1" WIDTH="100%"> - <Tr> - <!--- Hosted by Sourceforge ---> - <Td Align="Center"> - <Font size=-1> - <b>TANGO</b> is an open source project hosted by :<br> - <A href="http://sourceforge.net" Target="new"> - <IMG title="Sourceforge logo" - alt="Sourceforge logo small" - src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" - border=0> </a> - </Font> - </Td> - <!--- 2 Sourceforge Repositories ---> - <Td Align="Center"> - <Font size=-1> - Core and Tools : - <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-cs" Target=new> - tango-cs project</a> - - <br> - - Device Servers : - <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-ds" Target=new> - tango-ds project</a> - </Font> - </Td> - </Tr> -</Table> -</Font> -</Center> -</body> -</html> diff --git a/doc_html/DevCommandsFrame.html b/doc_html/DevCommandsFrame.html deleted file mode 100644 index f56da4036180e731a7abd94d44e495da48d4d64e..0000000000000000000000000000000000000000 --- a/doc_html/DevCommandsFrame.html +++ /dev/null @@ -1,19 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<Title> Tango Device Server User's Guide </Title> -</HEAD> - -<FRAMESET cols="20%,80%"> -<FRAME src="DevCommandsList.html" name="DevCommandsList"> -<FRAME src="DevCommands.html" name="DevCommands"> -</FRAMESET> -<NOFRAMES> -<H2> -Frame Alert</H2> - -<P> -This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. -<BR> -Link to <A HREF="DevCommands.html">Non-frame version.</A></NOFRAMES> -</HTML> diff --git a/doc_html/DevCommandsList.html b/doc_html/DevCommandsList.html deleted file mode 100644 index a2fef2688351d017f5c117b71977e86a92b70de9..0000000000000000000000000000000000000000 --- a/doc_html/DevCommandsList.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> -<HTML><HEAD> -<TITLE>Commands -</TITLE></HEAD> -<BODY BGCOLOR="white"> -<FONT size="+1" ID="FrameHeadingFont"> -<B>Commands:</B></FONT> -<Br> -<Br> -<Br> -<A Href="DevCommands.html#Init" TARGET="DevCommands"> Init</a><Br> -<A Href="DevCommands.html#State" TARGET="DevCommands"> State</a><Br> -<A Href="DevCommands.html#Status" TARGET="DevCommands"> Status</a><Br> -<A Href="DevCommands.html#PerformZeroCorrect" TARGET="DevCommands"> PerformZeroCorrect</a><Br> -<A Href="DevCommands.html#FilterOn" TARGET="DevCommands"> FilterOn</a><Br> -<A Href="DevCommands.html#FilterOff" TARGET="DevCommands"> FilterOff</a><Br> -<A Href="DevCommands.html#AutoFilterOn" TARGET="DevCommands"> AutoFilterOn</a><Br> -<A Href="DevCommands.html#AutoFilterOff" TARGET="DevCommands"> AutoFilterOff</a><Br> - - -</BODY> -</HTML> diff --git a/doc_html/DevCommandsTable.html b/doc_html/DevCommandsTable.html deleted file mode 100644 index 9c3bd06c3ec997e319bc8e1e66274db9ba1c29de..0000000000000000000000000000000000000000 --- a/doc_html/DevCommandsTable.html +++ /dev/null @@ -1,138 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<Title> Tango Device Server User's Guide </Title> -</HEAD> -<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> - -<P><!-------TITLE------></P> - -<TABLE BORDER="0" WIDTH="100%"> - <TR> - <TD ALIGN="left"> - <A HREF="http://www.esrf.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="center"> - <A HREF="http://www.elettra.trieste.it/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> - - </Td> - <TD ALIGN="center"> - <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.cells.es/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A> - </Td> - <Td> - <H2><FONT COLOR="#7F00FF"> - <Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> - TANGO </a> <Br> Device Server - </Center></FONT> - </Td> - </TR> -</TABLE> - -<HR WIDTH="100%"></H5> -<Br> -<center> -<h1> -Keithley428 Current Amplifier <Br> -Device Commands Description <Br> <Br> -Keithley428 Class <Br> -</h1> -<b> -Revision: - Author: -</b> -</center> - - -<Center> -<Br><Br> -<A Href="DevCommandsFrame.html"> More Details on commands.... </a><Br> -<Br> <Br> -<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td COLSPAN=3> <Font Size=+2><Center><b>Device Commands for Operator Level</b></td></Font></Center> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td><Center><b>Command name</b></td></Center> -<Td><Center><b>Argument In</b></td></Center> -<Td><Center><b>Argument Out</b></td></Center> -<Tr><Td><b>Init</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Tr><Td><b>State</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_STATE</Font></Td> -<Tr><Td><b>Status</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>CONST_DEV_STRING</Font></Td> -<Tr><Td><b>PerformZeroCorrect</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Tr><Td><b>FilterOn</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Tr><Td><b>FilterOff</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Tr><Td><b>AutoFilterOn</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Tr><Td><b>AutoFilterOff</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> - - - -</Table></Center> - -<!--- html Footer ---> - -<Center> -<Font size=-1> -<br> -<br> -<TABLE BORDER="1" WIDTH="100%"> - <Tr> - <!--- Hosted by Sourceforge ---> - <Td Align="Center"> - <Font size=-1> - <b>TANGO</b> is an open source project hosted by :<br> - <A href="http://sourceforge.net" Target="new"> - <IMG title="Sourceforge logo" - alt="Sourceforge logo small" - src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" - border=0> </a> - </Font> - </Td> - <!--- 2 Sourceforge Repositories ---> - <Td Align="Center"> - <Font size=-1> - Core and Tools : - <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-cs" Target=new> - tango-cs project</a> - - <br> - - Device Servers : - <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-ds" Target=new> - tango-ds project</a> - </Font> - </Td> - </Tr> -</Table> -</Font> -</Center> -</body> -</html> diff --git a/doc_html/Properties.html b/doc_html/Properties.html index 2419dff3713ca99688dffdeaad60ba015979ae59..cb3cfacb7e30c86dc8ff4027aff1b1904f307d61 100644 --- a/doc_html/Properties.html +++ b/doc_html/Properties.html @@ -1,109 +1,170 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> -<Title> Tango Device Server User's Guide </Title> +<Title> Tango Device Server User s Guide </Title> </HEAD> <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> <P><!-------TITLE------></P> - <TABLE BORDER="0" WIDTH="100%"> <TR> <TD ALIGN="left"> - <A HREF="http://www.esrf.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> - </Td> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> <TD ALIGN="center"> - <A HREF="http://www.elettra.trieste.it/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> - - </Td> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> <TD ALIGN="center"> - <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.cells.es/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A> - </Td> - <Td> - <H2><FONT COLOR="#7F00FF"> - <Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> - TANGO </a> <Br> Device Server - </Center></FONT> - </Td> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> </TR> </TABLE> <HR WIDTH="100%"></H5> -<Br> + + + +<FONT SIZE="+3"> <center> -<h1> -Keithley428 Current Amplifier <Br> -Properties Description <Br> <Br> -Keithley428 Class <Br> -</h1> -<b> -Revision: - Author: -</b> -</center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + Properties +</u></Font> +</Center> -<Center> -<Br> <Br> <Br> -<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td COLSPAN=3> <Font Size=+2><Center><b>Device Properties</b></td></Font></Center> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td><Center><b>Property name</b></td></Center> -<Td><Center><b>Property type</b></td></Center> -<Td><Center><b>Description</b></td></Center> -<Tr><Td><b><a href=#Dev_DefaultValues>GpibDevice </a></b></Td> -<Td><Font Size=-1>string</Font></Td> -<Td><Font Size=-1>Name of the gpib device connected to the hardware.</Font></Td></Tr> - -<Tr><Td><b><a href=#Dev_DefaultValues>GpibDeviceType </a></b></Td> -<Td><Font Size=-1>Tango::DEV_USHORT</Font></Td> -<Td><Font Size=-1>Type of the Gpib device used to communicate with the Keithley. + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + + <b> There is no class property defined.</b> + +<Br> +<Br> + + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=4> <Font Size=+1> <Center><b> + 2 Device Properties + </b></Font></Center></td> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td><Center><b> + Property Name + </b></Center></td> + <Td><Center><b> + Description + </b></Center></td> + <Td><Center><b> + Property type + </b></Center></td> + <Td><Center><b> + Default Value + </b></Center></td> + </Tr> + <Tr> + <Td> GpibDevice </Td> + <Td> Name of the gpib device connected to the hardware. </Td> + <Td> string </Td> + <Td> + ..... + </Td> + </td> + </Tr> + <Tr> + <Td> GpibDeviceType </Td> + <Td> Type of the Gpib device used to communicate with the Keithley. this can be: 1 -> Desy GpibDevice (default value) -2 -> Soleil GpibDeviceServer</Font></Td></Tr> +2 -> Soleil GpibDeviceServer </Td> + <Td> unsigned short </Td> + <Td> + 1 + </Td> + </td> + </Tr> + </table> -</Table> + <Br> + <Br> -</Center> -<Br><Br><Br> -<Br><Br><Br> - -<A name=Dev_DefaultValues><!--- ---></a> -<Font Size=+1>Device Properties Default Values:</Font><Br> -<Table Border=2 Cellpadding=2 CELLSPACING=2> - <tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> - <Td><b>Property Name</b></td> - <td><b>Default Values</b></td> - </Tr> - <Tr> - <Td>GpibDevice</Td> - <td>No default value</td> - </Tr> - <Tr> - <Td>GpibDeviceType</Td> - <td>1</td> - </Tr> -</Table> + +<!--- /*PROTECTED REGION ID(./doc_html/Properties.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> -<Br><Br><Br> -<Center><b> -There is no Class properties.<Br><Br> -</Center></b> -<Br> <Br> <Br> + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> -<!--- html Footer ---> +<!--- html Footer ---> <Center> <Font size=-1> <br> @@ -125,16 +186,14 @@ There is no Class properties.<Br><Br> <Td Align="Center"> <Font size=-1> Core and Tools : - <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new"> + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> CVS repository</a> on <a href="https://sourceforge.net/projects/tango-cs" Target=new> tango-cs project</a> - <br> - Device Servers : - <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new"> - CVS repository</a> on + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on <a href="https://sourceforge.net/projects/tango-ds" Target=new> tango-ds project</a> </Font> @@ -145,3 +204,4 @@ There is no Class properties.<Br><Br> </Center> </body> </html> + diff --git a/doc_html/States.html b/doc_html/States.html new file mode 100644 index 0000000000000000000000000000000000000000..05dcc53f21087d62e2274db7cb805e54a5b6ee73 --- /dev/null +++ b/doc_html/States.html @@ -0,0 +1,182 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<Title> Tango Device Server User s Guide </Title> +</HEAD> +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> + +<P><!-------TITLE------></P> +<TABLE BORDER="0" WIDTH="100%"> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> + </TR> +</TABLE> + +<HR WIDTH="100%"></H5> + + + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) +<Br> +<Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> +<Br> +<Br> +<Br> +<FONT SIZE="+2"><u> + </center><ul>Keithley428 States</ul> +</u></Font> +</Center> + + + +<FONT SIZE="-1"> +<Br> +<Br> +<ul> + + <Table Border=2 Cellpadding=3 CELLSPACING=0> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td COLSPAN=2> <Font Size=+1> <Center><b> + 2 Device States + </b></Font></Center></td> + <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> + <Td><Center><b> + State Name + </b></Center></td> + <Td><Center><b> + Description + </b></Center></td> + </Tr> + + <Tr> + <Td> ON </Td> + <Td> </Td> + </Tr> + <Tr> + <Td> FAULT </Td> + <Td> </Td> + </Tr> + </table> + + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/States.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + <Br> + <Br> +</ul> +</FONT> + + +<!--- html Footer ---> +<Center> +<Font size=-1> +<br> +<br> +<TABLE BORDER="1" WIDTH="100%"> + <Tr> + <!--- Hosted by Sourceforge ---> + <Td Align="Center"> + <Font size=-1> + <b>TANGO</b> is an open source project hosted by :<br> + <A href="http://sourceforge.net" Target="new"> + <IMG title="Sourceforge logo" + alt="Sourceforge logo small" + src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" + border=0> </a> + </Font> + </Td> + <!--- 2 Sourceforge Repositories ---> + <Td Align="Center"> + <Font size=-1> + Core and Tools : + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> + CVS repository</a> on + <a href="https://sourceforge.net/projects/tango-cs" Target=new> + tango-cs project</a> + <br> + Device Servers : + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on + <a href="https://sourceforge.net/projects/tango-ds" Target=new> + tango-ds project</a> + </Font> + </Td> + </Tr> +</Table> +</Font> +</Center> +</body> +</html> + diff --git a/doc_html/TangoDevStates.html b/doc_html/TangoDevStates.html deleted file mode 100644 index ef9e0c886c8ea20ef049e1ef94354f65d2f6cfcd..0000000000000000000000000000000000000000 --- a/doc_html/TangoDevStates.html +++ /dev/null @@ -1,118 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<Title> Tango Device Server User's Guide </Title> -</HEAD> -<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> - -<P><!-------TITLE------></P> - -<TABLE BORDER="0" WIDTH="100%"> - <TR> - <TD ALIGN="left"> - <A HREF="http://www.esrf.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="center"> - <A HREF="http://www.elettra.trieste.it/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> - - </Td> - <TD ALIGN="center"> - <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.cells.es/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A> - </Td> - <Td> - <H2><FONT COLOR="#7F00FF"> - <Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> - TANGO </a> <Br> Device Server - </Center></FONT> - </Td> - </TR> -</TABLE> - -<HR WIDTH="100%"></H5> -<Br> -<center> -<h1> -Keithley428 Current Amplifier <Br> -Device States Description <Br> <Br> -Keithley428 Class <Br> -</h1> -<b> -Revision: - Author: -</b> -</center> - - -<Center> -<Br> <Br> <Br> -<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td COLSPAN=2> <Font Size=+2><Center><b>States</b></td></Font></Center> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td><Center><b>Names</b></td></Center> -<Td><Center><b>Descriptions</b></td></Center> -<Tr><Td><b>ON</b></Td> -<Td><Font Size=-1></Font></Td></Tr> - -<Tr><Td><b>FAULT</b></Td> -<Td><Font Size=-1></Font></Td></Tr> - - - - -</Table> -</Center> - -<!--- html Footer ---> - -<Center> -<Font size=-1> -<br> -<br> -<TABLE BORDER="1" WIDTH="100%"> - <Tr> - <!--- Hosted by Sourceforge ---> - <Td Align="Center"> - <Font size=-1> - <b>TANGO</b> is an open source project hosted by :<br> - <A href="http://sourceforge.net" Target="new"> - <IMG title="Sourceforge logo" - alt="Sourceforge logo small" - src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" - border=0> </a> - </Font> - </Td> - <!--- 2 Sourceforge Repositories ---> - <Td Align="Center"> - <Font size=-1> - Core and Tools : - <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-cs" Target=new> - tango-cs project</a> - - <br> - - Device Servers : - <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-ds" Target=new> - tango-ds project</a> - </Font> - </Td> - </Tr> -</Table> -</Font> -</Center> -</body> -</html> diff --git a/doc_html/index.html b/doc_html/index.html index a7f9535b2ed8dd8bcbc428f208e6115841b4914c..14da3b1b04232aadf8526b06696f200d907ec30f 100644 --- a/doc_html/index.html +++ b/doc_html/index.html @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> -<Title> Tango Device Server User's Guide </Title> +<Title> Tango Device Server User s Guide </Title> </HEAD> <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> @@ -9,106 +9,152 @@ <TABLE BORDER="0" WIDTH="100%"> <TR> <TD ALIGN="left"> - <A HREF="http://www.esrf.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> - </Td> + <A HREF="http://www.esrf.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> + </TD> <TD ALIGN="center"> - <A HREF="http://www.elettra.trieste.it/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> - - </Td> + <A HREF="http://www.elettra.trieste.it/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> + </TD> <TD ALIGN="center"> - <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.cells.es/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A> - </Td> - <Td> - <H2><FONT COLOR="#7F00FF"> - <Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> - TANGO </a> <Br> Device Server - </Center></FONT> - </Td> + <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.cells.es/" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="45"></A> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Br><Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> TANGO </a> + </Center></FONT> + </TD> + </TR> + <TR> + <TD ALIGN="left"> + <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="44"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.maxlab.lu.se/maxlab/max4/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/maxlab.gif" BORDER=0 Height="40"></A> + </TD> + <TD ALIGN="center"> + <A HREF="http://www.frm2.tum.de/en/index.html" TARGET=new> + <IMG SRC="http://www.esrf.fr/computing/cs/tango/frm-2.jpg" BORDER=0 Height="45"></A> + </TD> + <TD> + <!-- Empty --> + </TD> + <TD ALIGN="Right"> + <H2><FONT COLOR="#7F00FF"> + <Center> Device Servers + </Center></FONT> + </TD> </TR> </TABLE> <HR WIDTH="100%"></H5> -<center> -<h1> -Keithley428 Current Amplifier <Br> -User's Guide <Br><Br> -Keithley428 Class<Br> -</h1> -<b> -Revision: - Author: <Br> - Implemented in C++ -</b> -</center> -<Br> + +<FONT SIZE="+3"> +<center> +<u> + Keithley428 Tango Class <Br> +</u> +<FONT SIZE="+1"> + ( Keithley428 Current Amplifier ) <Br> <Br> +<TABLE BORDER="1" WIDTH="100%" CELLSPACING=0> + <TD ALIGN="center"> + <a href="index.html"> Description</a> + </Td> + <TD ALIGN="center"> + <a href="Properties.html"> Properties</a></li> + </Td> + <TD ALIGN="center"> + <a href="Commands.html"> Commands</a></li> + </Td> + <TD ALIGN="center"> + <a href="Attributes.html"> Attributes</a></li> + </Td> + <TD ALIGN="center"> + <a href="States.html"> States</a></li> + </Td> +</TABLE> <Br> -<h2>Introduction:</h2> -<ul> - Class for controlling the Keithley428 current amplifier.<Br> -</ul> -<Br><h2>Class Identification:</h2> -<ul> - <li><b>Contact :</b> at mail.desy.de - tnunez - <li><b>Class Family :</b> Instrumentation - <li><b>Platform :</b> Unix Like - <li><b>Bus :</b> GPIB - <li><b>Manufacturer :</b> Keithley - <li><b>Reference :</b> 428 -</ul><Br> -<h2>Class Inheritance:</h2> - <ul> - <li> <a href="http://www.esrf.fr/computing/cs/tango/tango_doc/kernel_doc/cpp_doc/"> Tango::Device_4Impl</a></li> - <ul> - <li> Keithley428</li> - </ul> - </ul> - </ul> -</ul> <Br> <Br> -<h2>Description:</h2> -<ul> - <li> <a href=Description.html> Device description.</a> - <li> <a href=Properties.html> Properties description</a> - <li> <a href=TangoDevStates.html> States description</a> - <li> <a href=DevCommandsTable.html> Commands description</a> - <li> <a href=Attributes.html> Attributes description</a> -</ul> -<Br> +<FONT SIZE="+2"><u> + TANGO Cpp Class Decription +</u></Font> +</Center> + + + +<FONT SIZE="-1"> <Br> <Br> -<!--------------h2>Programmer's guide:</h2> -<ul> - <li> <a href="html/index.html"> Software description.</a> -</ul> -<Br------> <Br> <Br> -<h2>Conclusion:</h2> <ul> - The device server is ready for distribution application programmers.<Br> - The author will be interested in any feedback which arise from their - usage of this device server. + <Font SIZE="+0"> <b><u> Class Identification :</u></b> </Font> + <ul> + <TABLE BORDER="0"> + <Tr> + <td> Contact </td><td> : at mail.desy.de - tnunez</td> + </tr> + <tr> + <td> Class Family </td><td> : Instrumentation + + </tr> + <tr> + <td> Platform </td><td> : Unix Like </td> + </tr> + <tr> + <td> Bus </td><td> : GPIB </td> + </tr> + <tr> + <td> Manufacturer </td><td> : Keithley </td> + </tr> + <tr> + <td> Manufacturer ref.</td><td> : 428 </td> + </tr> + </Table> + </ul> + <Br> + <Br> + <Font SIZE="+0"> <b><u> Class Inheritance :</u></b> </Font> + <ul> + <li> <a href="http://www.esrf.fr/computing/cs/tango/tango_doc/kernel_doc/cpp_doc/"> Tango::DeviceImpl</a></li> + <ul><li><b> Keithley428 </b></ul> + + </ul> + <Br> + <Br> + <Font SIZE="+0"> <b><u> Class Description :</u></b> </Font> + <ul> + Class for controlling the Keithley428 current amplifier. + <Br> + <Br> + +<!--- /*PROTECTED REGION ID(./doc_html/index.html) ENABLED START*/ ---> + <!--- Add your own documentation, pictures, links,.... ---> + <ul> + + </ul> +<!--- /*PROTECTED REGION END*/ ---> + + </ul> + <Br> + <Br> </ul> -<Br> +</FONT> <!--- html Footer ---> - <Center> <Font size=-1> <br> @@ -130,16 +176,14 @@ Revision: - Author: <Br> <Td Align="Center"> <Font size=-1> Core and Tools : - <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new"> + <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target=new> CVS repository</a> on <a href="https://sourceforge.net/projects/tango-cs" Target=new> tango-cs project</a> - <br> - Device Servers : - <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new"> - CVS repository</a> on + <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target=new> + CVS repository</cmda> on <a href="https://sourceforge.net/projects/tango-ds" Target=new> tango-ds project</a> </Font> @@ -150,3 +194,4 @@ Revision: - Author: <Br> </Center> </body> </html> + diff --git a/doc_html/user_guide.html b/doc_html/user_guide.html deleted file mode 100644 index 2d7a2fbee9fb649a7a001230b6831e4bdb4d5a2c..0000000000000000000000000000000000000000 --- a/doc_html/user_guide.html +++ /dev/null @@ -1,331 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<Title> Tango Device Server User's Guide </Title> -</HEAD> -<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#7F00FF" ALINK="#FF0000"> - -<P><!-------TITLE------></P> -<TABLE BORDER="0" WIDTH="100%"> - <TR> - <TD ALIGN="left"> - <A HREF="http://www.esrf.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/gifs/logo/80.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="center"> - <A HREF="http://www.elettra.trieste.it/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/elettra_logo.gif" BORDER=0 Height="60"></A> - - </Td> - <TD ALIGN="center"> - <A HREF="http://www.synchrotron-soleil.fr/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/soleil_logo.gif" BORDER=0 Height="60"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.cells.es/" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/alba.jpg" BORDER=0 Height="54"></A> - </Td> - <TD ALIGN="right"> - <A HREF="http://www.desy.de/html/home/index_eng.html" TARGET=new> - <IMG SRC="http://www.esrf.fr/computing/cs/tango/desy.gif" BORDER=0 Height="60"></A> - </Td> - <Td> - <H2><FONT COLOR="#7F00FF"> - <Center><A HREF="http://www.tango-controls.org/" TARGET="_top"> - TANGO </a> <Br> Device Server - </Center></FONT> - </Td> - </TR> -</TABLE> - -<HR WIDTH="100%"></H5> - -<Br> <Br><Br> <Br><Br> <Br><center><Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<Tr><Td><Br> <Br> -<center> -<h1> -Keithley428 Current Amplifier <Br> -User's Guide<Br> <Br> <Br><Br> -Keithley428 Class<Br> <Br></Td></Tr> -</h1> -<Tr><Td> -<b><Center>Revision: - Author: tere29 <Br> - Implemented in C++ -</Center></b> -</Td></Tr> -</center> -</Table> -</center> -<Br> -<Br> -<Br> -<Br> -<Br> <Br><Br> <Br> -<h2>Introduction:</h2> -<ul> - Class for controlling the Keithley428 current amplifier.<Br> -</ul> -<Br> -<Br> -<Br><h2>Class Identification:</h2> -<ul> - <li><b>Contact :</b> at mail.desy.de - tnunez - <li><b>Class Family :</b> Instrumentation - <li><b>Platform :</b> Unix Like - <li><b>Bus :</b> GPIB - <li><b>Manufacturer :</b> Keithley - <li><b>Reference :</b> 428 -</ul><Br> <Br><Br> -<h2>Class Inheritance:</h2> - <ul> - <li> <a href="http://www.esrf.fr/computing/cs/tango/tango_doc/kernel_doc/cpp_doc/"> Tango::Device_4Impl</a></li> - <ul> - <li> Keithley428</li> - </ul> - </ul> - </ul> -</ul> -<Br> <Br> - -<Br> <Br><Br> <Br><h2>Properties:</h2> - - -<Center> -<Br> <Br> <Br> -<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td COLSPAN=3> <Font Size=+2><Center><b>Device Properties</b></td></Font></Center> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td><Center><b>Property name</b></td></Center> -<Td><Center><b>Property type</b></td></Center> -<Td><Center><b>Description</b></td></Center> -<Tr><Td><b><a href=#Dev_DefaultValues>GpibDevice </a></b></Td> -<Td><Font Size=-1>Tango::DEV_STRING</Font></Td> -<Td><Font Size=-1>Name of the gpib device connected to the hardware.</Font></Td></Tr> - -</Table> - -</Center> -<Br><Br><Br> -<Br><Br><Br> - -<A name=Dev_DefaultValues><!--- ---></a> -<Font Size=+1>Device Properties Default Values:</Font><Br> -<Table Border=2 Cellpadding=2 CELLSPACING=2> - <tr BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> - <Td><b>Property Name</b></td> - <td><b>Default Values</b></td> - </Tr> - <Tr> - <Td>GpibDevice</Td> - <td>No default value</td> - </Tr> -</Table> - -<Br><Br><Br> -<Center><b> -There is no Class properties.<Br><Br> -</Center></b> -<Br> <Br> <Br> - - -</center> -<Br> <Br><Br> <Br><h2>States:</h2> - - -<Center> -<Br> <Br> <Br> -<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td COLSPAN=2> <Font Size=+2><Center><b>States</b></td></Font></Center> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td><Center><b>Names</b></td></Center> -<Td><Center><b>Descriptions</b></td></Center> -<Tr><Td><b>ON</b></Td> -<Td><Font Size=-1></Font></Td></Tr> - -<Tr><Td><b>FAULT</b></Td> -<Td><Font Size=-1></Font></Td></Tr> - - - - -</Table> -</Center> - - -</center> -<Br> <Br><Br> <Br><h2>Attributes:</h2> - - -<Br> -<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td COLSPAN=4> <Font Size=+2><Center><b>Scalar Attributes</b></td></Font></Center> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td><Center><b>Attribute name</b></td></Center> -<Td><Center><b>Data Type</b></td></Center> -<Td><Center><b>R/W Type</b></td></Center> -<Td><Center><b>Expert</b></td></Center> -<Tr><Td><b>Gain</b>: <Font Size=-1>0, 1, 2, 3 -> 10e3 V/A 4 -> 10e4 V/A 5 -> 10e5 V/A 6 -> 10e6 V/A 7 -> 10e7 V/A 8 -> 10e8 V/A 9 -> 10e9 V/A 10 -> 10e10 V/A 11 -> 10e11 V/A</Font></Td> -<Td><Center><Font Size=-1>DEV_LONG</Font></Center></Td><Td><Center><Font Size=-1>READ_WRITE</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> - -<Tr><Td><b>GainStr</b></Td> -<Td><Center><Font Size=-1>DEV_STRING</Font></Center></Td><Td><Center><Font Size=-1>READ</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> - -<Tr><Td><b>Overloaded</b>: <Font Size=-1>1 if device is overloaded</Font></Td> -<Td><Center><Font Size=-1>DEV_LONG</Font></Center></Td><Td><Center><Font Size=-1>READ</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> - -<Tr><Td><b>Bypass</b>: <Font Size=-1>0 -> zero check off, 1 -> zero check on, 2 (only read) zero correction last selected.</Font></Td> -<Td><Center><Font Size=-1>DEV_LONG</Font></Center></Td><Td><Center><Font Size=-1>READ_WRITE</Font></Center></Td><Td><Center><Font Size=-1>No</Font></Center></Td></Tr> - -</Table> -</Center> -<Br><Br><Br><Br><Br> - - -</center> -<Br> <Br><Br> <Br><h2>Commands:</h2> - - -<Center> -<Br><Br> -<A Href="DevCommandsFrame.html"> More Details on commands.... </a><Br> -<Br> <Br> -<Table Border=2 Cellpadding=3 CELLSPACING=0 WIDTH="100%"> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td COLSPAN=3> <Font Size=+2><Center><b>Device Commands for Operator Level</b></td></Font></Center> -<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> -<Td><Center><b>Command name</b></td></Center> -<Td><Center><b>Argument In</b></td></Center> -<Td><Center><b>Argument Out</b></td></Center> -<Tr><Td><b>Init</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Tr><Td><b>State</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_STATE</Font></Td> -<Tr><Td><b>Status</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>CONST_DEV_STRING</Font></Td> -<Tr><Td><b>PerformZeroCorrect</b></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> -<Td><Font Size=-1>DEV_VOID</Font></Td> - - - -</Table></Center> - -</center> -<Br> <Br> - -<Br> -<Br> -<Br> -<A NAME="Init"><!-- --></A> -<A NAME="Init"><!-- --></A> -<h2>1 - Init</h2> -<ul> -<Li><Strong>Description: </Strong> This commands re-initialise a device keeping the same network connection.<Br> -After an Init command executed on a device, it is not necessary for client to re-connect to the device.<Br> -This command first calls the device <i> delete_device() </i>method and then execute its <i> init_device()</i> method.<Br> -For C++ device server, all the memory allocated in the <i> nit_device() </i> method must be freed in the <i> delete_device() </i> method.<Br> -The language device desctructor automatically calls the <i> delete_device() </i> method.<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : none.<Br>  -<Li><Strong>Argout:<Br>DEV_VOID</Strong> - : none.<Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON<Li>Tango::FAULT</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="State"><!-- --></A> -<A NAME="State"><!-- --></A> -<h2>2 - State</h2> -<ul> -<Li><Strong>Description: </Strong> This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller.<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : none.<Br>  -<Li><Strong>Argout:<Br>DEV_STATE</Strong> - : State Code<Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON<Li>Tango::FAULT</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="Status"><!-- --></A> -<A NAME="Status"><!-- --></A> -<h2>3 - Status</h2> -<ul> -<Li><Strong>Description: </Strong> This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller.<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : none.<Br>  -<Li><Strong>Argout:<Br>CONST_DEV_STRING</Strong> - : Status description<Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON<Li>Tango::FAULT</Ul> -<Br>  -</ul><Br> -<Br> -<A NAME="PerformZeroCorrect"><!-- --></A> -<A NAME="PerformZeroCorrect"><!-- --></A> -<h2>4 - PerformZeroCorrect</h2> -<ul> -<Li><Strong>Description: </Strong> Perform Zero correction.<Br>  -<Li><Strong>Argin:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Argout:<Br>DEV_VOID</Strong> - : <Br>  -<Li><Strong>Command allowed for: </Strong><Ul> -<Li>Tango::ON<Li>Tango::FAULT</Ul> -<Br>  -</ul><Br> -<Br> - -</center> -<Br> <Br><Br> <Br> - -<!--- html Footer ---> - -<Center> -<Font size=-1> -<br> -<br> -<TABLE BORDER="1" WIDTH="100%"> - <Tr> - <!--- Hosted by Sourceforge ---> - <Td Align="Center"> - <Font size=-1> - <b>TANGO</b> is an open source project hosted by :<br> - <A href="http://sourceforge.net" Target="new"> - <IMG title="Sourceforge logo" - alt="Sourceforge logo small" - src="http://www.esrf.fr/computing/cs/tango/sourceforge.gif" - border=0> </a> - </Font> - </Td> - <!--- 2 Sourceforge Repositories ---> - <Td Align="Center"> - <Font size=-1> - Core and Tools : - <a href="http://tango-cs.cvs.sourceforge.net/tango-cs/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-cs" Target=new> - tango-cs project</a> - - <br> - - Device Servers : - <a href="http://tango-ds.cvs.sourceforge.net/tango-ds/" Target="new"> - CVS repository</a> on - <a href="https://sourceforge.net/projects/tango-ds" Target=new> - tango-ds project</a> - </Font> - </Td> - </Tr> -</Table> -</Font> -</Center> -</body> -</html> diff --git a/main.cpp b/main.cpp index 654644f403ad9bab62fe55d68dcf644637c1b669..46b507a78ee9301cd2872ac28099fe6c6dc44f62 100644 --- a/main.cpp +++ b/main.cpp @@ -1,39 +1,35 @@ -static const char *RcsId = "$Id $"; -//+============================================================================= +/*PROTECTED REGION ID(Keithley428::main.cpp) ENABLED START*/ +static const char *RcsId = "$Id: $"; +//============================================================================= // -// file : main.cpp +// file : Keithley428.cpp // -// description : C++ source for a TANGO device server main. +// description : C++ source for the Keithley428 device server main. // The main rule is to initialise (and create) the Tango // system and to create the DServerClass singleton. -// The main should be the same for every Tango device server. +// The main should be the same for every Tango device server. // -// project : TANGO Device Server +// project : Keithley428 Current Amplifier. // // $Author: $ // -// $Revision: $ $ +// $Revision: $ // $Date: $ // // SVN only: -// $HeadURL: $ +// $HeadURL: $ // // CVS only: // $Source: $ // $Log: $ // -// copyleft : European Synchrotron Radiation Facility -// BP 220, Grenoble 38043 -// FRANCE -// -//-============================================================================= -// -// This file is generated by POGO -// (Program Obviously used to Generate tango Object) -// -// (c) - Software Engineering Group - ESRF +//============================================================================= +// This file is generated by POGO +// (Program Obviously used to Generate tango Object) //============================================================================= + + #include <tango.h> @@ -72,3 +68,7 @@ int main(int argc,char *argv[]) tg->server_cleanup(); return(0); } + + +/*PROTECTED REGION END*/ +//======================================================== diff --git a/pom.xml b/pom.xml index 87efdddf333e375422b0065e0c2516ca8c792cda..1ebe35285554932d23e172452d67099c4200ef78 100644 --- a/pom.xml +++ b/pom.xml @@ -1,58 +1,58 @@ -<?xml version="1.0" encoding="utf-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>fr.soleil</groupId> - <artifactId>super-pom-C-CPP-device</artifactId> - <version>RELEASE</version> - </parent> - <groupId>fr.soleil.device</groupId> - <artifactId>Keithley428-${aol}-${mode}</artifactId> - <version>1.2.3-SNAPSHOT</version> - <packaging>nar</packaging> - <name>Keithley428</name> - <description>Keithley428 device</description> - <build> - <plugins> - <plugin> - <groupId>org.freehep</groupId> - <artifactId>freehep-nar-plugin</artifactId> - <configuration> - <cpp> - <!-- FL : Out of maven convention: for sharing source with Desy --> - <sourceDirectory>${project.basedir}</sourceDirectory> - <includes> - <include>*.cpp</include> - </includes> - <includePaths> - <includePath>${project.basedir}</includePath> - </includePaths> - <defines> - <define>LOG4TANGO_HAVE_INT64_T</define> - <define>GPIB_DEVICE_OUTSIDE</define> - <define>USE_HELPERS_DIR</define> - </defines> - </cpp> - </configuration> - </plugin> - </plugins> - </build> - <scm> - <connection>${scm.connection.svn.tango-ds}:/DeviceClasses/MeasureInstruments/Keithley/Keithley428/trunk</connection> - <developerConnection>${scm.developerConnection.svn.tango-ds}:/DeviceClasses/MeasureInstruments/Keithley/Keithley428/trunk</developerConnection> - <url>${scm.url.svn.tango-ds}/DeviceClasses/MeasureInstruments/Keithley/Keithley428/trunk</url> - </scm> - <developers> - <developer> - <id>langlois</id> - <name>langlois</name> - <url>http://controle/</url> - <organization>Synchrotron Soleil</organization> - <organizationUrl>http://www.synchrotron-soleil.fr</organizationUrl> - <roles> - <role>manager</role> - </roles> - <timezone>1</timezone> - </developer> - </developers> -</project> +<?xml version="1.0" encoding="utf-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>fr.soleil</groupId> + <artifactId>super-pom-C-CPP-device</artifactId> + <version>RELEASE</version> + </parent> + <groupId>fr.soleil.device</groupId> + <artifactId>Keithley428-${aol}-${mode}</artifactId> + <version>1.2.3-SNAPSHOT</version> + <packaging>nar</packaging> + <name>Keithley428</name> + <description>Keithley428 device</description> + <build> + <plugins> + <plugin> + <groupId>org.freehep</groupId> + <artifactId>freehep-nar-plugin</artifactId> + <configuration> + <cpp> + <!-- FL : Out of maven convention: for sharing source with Desy --> + <sourceDirectory>${project.basedir}</sourceDirectory> + <includes> + <include>*.cpp</include> + </includes> + <includePaths> + <includePath>${project.basedir}</includePath> + </includePaths> + <defines> + <define>LOG4TANGO_HAVE_INT64_T</define> + <define>GPIB_DEVICE_OUTSIDE</define> + <define>USE_HELPERS_DIR</define> + </defines> + </cpp> + </configuration> + </plugin> + </plugins> + </build> + <scm> + <connection>${scm.connection.svn.tango-ds}:/DeviceClasses/MeasureInstruments/Keithley/Keithley428/trunk</connection> + <developerConnection>${scm.developerConnection.svn.tango-ds}:/DeviceClasses/MeasureInstruments/Keithley/Keithley428/trunk</developerConnection> + <url>${scm.url.svn.tango-ds}/DeviceClasses/MeasureInstruments/Keithley/Keithley428/trunk</url> + </scm> + <developers> + <developer> + <id>langlois</id> + <name>langlois</name> + <url>http://controle/</url> + <organization>Synchrotron Soleil</organization> + <organizationUrl>http://www.synchrotron-soleil.fr</organizationUrl> + <roles> + <role>manager</role> + </roles> + <timezone>1</timezone> + </developer> + </developers> +</project>