Skip to content
Snippets Groups Projects
Commit dd3a026b authored by Patrick MADELA's avatar Patrick MADELA
Browse files

Merge tag 'release_2_7_1' into conan2

Release version
parents 996ffcff dd231541
No related branches found
No related tags found
No related merge requests found
Showing
with 147 additions and 22 deletions
......@@ -170,13 +170,15 @@ public:
* \brief Keithley Electrometer methods
*/
void autoRange_on (void);
std::string is_autoRange_on(void);
void zero_check_on (void);
void zero_check_off (void);
void zero_correct_on (void);
void zero_correct_off (void);
virtual void autoRange_off (void);
virtual void auto_zero_on (void);
virtual void auto_zero_off (void);
virtual void autoRange_off (void);
virtual void setAmperMeterMode(void);
virtual void setVoltMeterMode (void);
virtual void setOhmMeterMode (void);
......@@ -216,6 +218,7 @@ public:
virtual void set_integrationTime (double);
virtual short get_buffer_size (void);
virtual short get_triggerMode (void) { return _trigMod;}
// virtual void set_range(std::size_t idx) = 0;
/**
* \brief VSource operations (only for K_6517)
......@@ -246,7 +249,8 @@ public:
virtual std::string get_ElectroMeterFrequency (void);
virtual std::string get_ElectroMeterGain (void);
virtual unsigned short get_ElectroChannel (void);
virtual void set_ElectroMeterRange (std::string rang);
virtual void set_ElectroMeterRange (std::string rangeStr);
virtual void set_ElectroMeterRange (std::size_t rangeIdx);
virtual void set_ElectroMeterPolarity (std::string pola);
virtual void set_ElectroMeterFrequency (std::string freq);
virtual void set_ElectroMeterGain (std::string gain);
......@@ -268,6 +272,7 @@ public:
*/
virtual std::string get_ElectroMeterMode (void);
virtual std::string get_ElectroMeterRange (void);
virtual std::vector<std::string> ranges_list(void)=0;
protected :
......
......@@ -133,6 +133,7 @@ public:
* \brief Common Electrometer Functions.
*/
virtual void set_range (std::string val)= 0;
virtual void set_range (std::size_t val);
virtual void reset (void) = 0;
virtual void local (void);
virtual void remote (void);
......@@ -187,7 +188,7 @@ public:
virtual void setCoulombMeterMode(void);
virtual void autoRange_on (void);
virtual void autoRange_off (void);
virtual std::string is_autoRange_on (void);
virtual void zero_check_on (void);
virtual void zero_check_off (void);
virtual void zero_correct_on (void);
......
......@@ -63,6 +63,7 @@ public:
void set_range (std::string value) ;
void autoRange_on (void);
void autoRange_off (void);
std::string is_autoRange_on(void);
void zero_check_on (void);
void zero_check_off (void);
......
......@@ -62,6 +62,8 @@ public:
* \brief getter(s) & setter(s)
*/
std::string get_ElectroMeterRange(void);
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
/**
* \brief Electrometer Status.
......
......@@ -67,6 +67,8 @@ public:
* \brief getter(s) & setter(s)
*/
std::string get_ElectroMeterRange(void);
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
/**
* \brief Electrometer status.
......
......@@ -68,6 +68,8 @@ public:
*/
std::string get_ElectroMeterMode(void);
std::string get_ElectroMeterRange(void);
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
/**
* \brief The integration time (sec).
......
......@@ -70,6 +70,8 @@ public:
*/
std::string get_ElectroMeterMode (void);
std::string get_ElectroMeterRange(void);
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
/**
* \brief Electrometer status.
......
......@@ -66,6 +66,8 @@ public:
void range_up (void);
void range_down (void);
std::string get_ElectroMeterRange (void);
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
/**
* \brief Methods to configure the integration mode.
......
......@@ -59,6 +59,8 @@ public:
void range_up (void);
void range_down (void);
std::string get_ElectroMeterRange (void);
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
std::vector<double> get_integratedValue (void);
std::vector<double> get_fetchValue (void);
......
......@@ -70,6 +70,8 @@ public:
*/
std::string get_ElectroMeterMode (void);
std::string get_ElectroMeterRange(void);
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
/**
* \brief Electrometer status.
......
......@@ -59,6 +59,8 @@ public:
void range_up (void);
void range_down (void);
std::string get_ElectroMeterRange (void) ;
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
std::vector<double> get_integratedValue (void);
std::vector<double> get_fetchValue (void);
......
......@@ -59,6 +59,8 @@ public:
void range_up (void);
void range_down (void);
std::string get_ElectroMeterRange (void);
std::vector<std::string> ranges_list(void);
void set_ElectroMeterRange (std::size_t rangeIdx);
std::vector<double> get_integratedValue (void);
std::vector<double> get_fetchValue (void);
......
......@@ -54,6 +54,7 @@ public:
*/
void set_ElectroMeterRange(std::string range_str);
std::string get_ElectroMeterRange();
std::vector<std::string> ranges_list(void);
/**
* \brief getters and setters.
......
......@@ -54,6 +54,7 @@ public:
*/
void set_ElectroMeterRange(std::string range_str);
std::string get_ElectroMeterRange();
std::vector<std::string> ranges_list(void);
/**
* \brief getters and setters.
......
......@@ -86,6 +86,11 @@ public:
*/
std::string electrometer_status (void);
virtual std::vector<std::string> ranges_list(void) {
return std::vector<std::string>() ;
};
protected :
unsigned short _rangeLimit; //- define the range limit for each novelec type
unsigned short _address; //- a DAIP manages 2 "channels" (or address)
......@@ -94,7 +99,7 @@ protected :
/**
* \brief Checks the new range value
*/
short check_range_value(const std::string& rgToCheck, const std::string* electroRangeList);
short check_range_value(const std::string& rgToCheck, const std::vector<std::string> electroRangeList);
};
......
pom.xml 100644 → 100755
......@@ -8,7 +8,7 @@
</parent>
<groupId>fr.soleil.lib</groupId>
<artifactId>Electrometers-${aol}-${library}-${mode}</artifactId>
<version>2.5.29</version>
<version>2.7.1</version>
<packaging>nar</packaging>
<name>Electrometers library</name>
<description>Electrometers library</description>
......
......@@ -244,6 +244,14 @@ void AbstractElectrometerClass::autoRange_off (void)
_electrometerProtocol->autoRange_off( );
}
// ============================================================================
// AbstractElectrometerClass::is_autoRange_on
// ============================================================================
std::string AbstractElectrometerClass::is_autoRange_on (void)
{
return _electrometerProtocol->is_autoRange_on( );
}
// ============================================================================
// AbstractElectrometerClass::auto_zero_on
// ============================================================================
......@@ -728,6 +736,14 @@ std::string AbstractElectrometerClass::get_ElectroMeterGain (void)
return _electrometerProtocol->get_gain( );
}
// ============================================================================
// AbstractElectrometerClass::set_ElectroMeterRange
// ============================================================================
void AbstractElectrometerClass::set_ElectroMeterRange (std::size_t rangeIdx)
{
_electrometerProtocol->set_range(rangeIdx);
}
// ============================================================================
// AbstractElectrometerClass::set_ElectroMeterRange
// ============================================================================
......
......@@ -71,6 +71,16 @@ std::vector<double> ElectrometerProtocol::get_integratedValue (void)
"ElectrometerProtocol::get_integratedValue( ).");
}
// ============================================================================
// ElectrometerProtocol::set_range
// ============================================================================
void ElectrometerProtocol::set_range (std::size_t)
{
throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED",
"This Electrometer does not support this command.",
"ElectrometerProtocol::set_range( ).");
}
// ============================================================================
// ElectrometerProtocol::get_fetchValue
// ============================================================================
......@@ -241,6 +251,16 @@ void ElectrometerProtocol::autoRange_off (void)
"ElectrometerProtocol::autoRange_off( ).");
}
// ============================================================================
// ElectrometerProtocol::is_autoRange_on
// ============================================================================
std::string ElectrometerProtocol::is_autoRange_on (void)
{
throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED",
"Novelec does not support this command.",
"ElectrometerProtocol::is_autoRange_on( ).");
}
// ============================================================================
// ElectrometerProtocol::zero_check_on
......
......@@ -314,6 +314,35 @@ std::string tmpMode;
}
// ============================================================================
// KeithleySCPIProtocol::is_autoRange_on
// ============================================================================
std::string KeithleySCPIProtocol::is_autoRange_on (void)
{
std::string cmd_to_send("");
std::string tmpMode;
if( !this->_communication_link )
{
throw electrometer::ElectrometerException(
"INITIALIZATION_ERROR",
"No communication protocol available.",
"KeithleySCPIProtocol::is_autoRange_on()");
}
//- get electrometer mode
tmpMode = get_mode( );
//- erase bad caracters
tmpMode.erase(tmpMode.find("\n") );
//- send command
cmd_to_send = tmpMode + ":RANGe:AUTO?";
return _communication_link->write_read(cmd_to_send);
}
// ============================================================================
// KeithleySCPIProtocol::auto_zero_on
// ============================================================================
......
......@@ -25,7 +25,7 @@
/*
* Valid Range values for a K_485
*/
static const std::string K485_rangeValue[] = {"AUTO ON","2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3"};
static const std::vector<std::string> K485_rangeValue {"AUTO ON","2E-9","2E-8","2E-7","2E-6","2E-5","2E-4","2E-3"};
/*
* Range limit
......@@ -154,6 +154,34 @@ std::string Keithley_485::get_ElectroMeterRange (void)
return _rangeStr;
}
// ============================================================================
// Keithley_485::ranges_list
// ============================================================================
std::vector<std::string> Keithley_485::ranges_list (void)
{
return K485_rangeValue;
}
// ============================================================================
// Keithley_485::set_ElectroMeterRange
// ============================================================================
void Keithley_485::set_ElectroMeterRange (std::size_t rangeIdx)
{
std::string range_str("");
std::size_t range_limit = 0;
if ( rangeIdx >= K485_rangeLimit )
{
throw electrometer::ElectrometerException("OUT_OF_RANGE",
"Range index is above the max range value.",
"Keithley_485::set_ElectroMeterRange( ).");
}
range_str = K485_rangeValue[rangeIdx];
_electrometerProtocol->set_range(range_str);
}
// ============================================================================
// Keithley_485::set_triggerMode
// ============================================================================
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment