Skip to content
Snippets Groups Projects
Commit 2fb62f2d authored by Jairo Moldes's avatar Jairo Moldes
Browse files

Added RiseTime attribute and quick reference documentation

parent 89193765
Branches
Tags
No related merge requests found
......@@ -574,6 +574,74 @@ void Keithley428::write_Gain(Tango::WAttribute &attr)
//+----------------------------------------------------------------------------
//
// 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;
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;
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
......
......@@ -79,6 +79,8 @@ public :
Tango::DevLong attr_Gain_write;
Tango::DevString *attr_GainStr_read;
Tango::DevLong *attr_Overloaded_read;
Tango::DevLong *attr_RiseTime_read;
Tango::DevLong attr_RiseTime_write;
Tango::DevLong *attr_Bypass_read;
Tango::DevLong attr_Bypass_write;
Tango::DevString *attr_filterState_read;
......@@ -189,6 +191,14 @@ public :
* Extract real attribute values for Overloaded acquisition result.
*/
virtual void read_Overloaded(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 Bypass acquisition result.
*/
......@@ -217,6 +227,10 @@ public :
* Read/Write allowed for Overloaded attribute.
*/
virtual bool is_Overloaded_allowed(Tango::AttReqType type);
/**
* Read/Write allowed for RiseTime attribute.
*/
virtual bool is_RiseTime_allowed(Tango::AttReqType type);
/**
* Read/Write allowed for Bypass attribute.
*/
......
......@@ -429,6 +429,19 @@ void Keithley428Class::attribute_factory(vector<Tango::Attr *> &att_list)
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);
// End of Automatic code generation
//-------------------------------------------------------------
}
......
......@@ -121,6 +121,20 @@ public:
{return (static_cast<Keithley428 *>(dev))->is_Gain_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);}
};
//=========================================
// Define classes for commands
//=========================================
......
......@@ -110,6 +110,24 @@ bool Keithley428::is_Overloaded_allowed(Tango::AttReqType type)
}
//+----------------------------------------------------------------------------
//
// 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.
......
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment