diff --git a/pom.xml b/pom.xml index 2cc1bf6ef66b26710347aa08a2bf8521bbd3ac7d..a14b8a903528734c24b1e85276cfaccf68f1ecd6 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ </parent> <groupId>fr.soleil.lib</groupId> <artifactId>Electrometers-${aol}-${library}-${mode}</artifactId> - <version>2.2.2</version> + <version>2.3.0</version> <packaging>nar</packaging> <name>Electrometers library</name> <description>Electrometers library</description> diff --git a/src/KeithleyDDCProtocol.cpp b/src/KeithleyDDCProtocol.cpp index 1fdf5ba1b72463bf3f0178135b4181421acfd370..f30117b53dff6c3b79e107bc742324a4cf1f50b4 100644 --- a/src/KeithleyDDCProtocol.cpp +++ b/src/KeithleyDDCProtocol.cpp @@ -58,8 +58,7 @@ bool KeithleyDDCProtocol::build_communicationLink() if (!_communication_link) return false; - //- For DDC models are very slow devices, so communication with - //- prefix is disabled ! + //- prefix is enabled : this to the overload state ! this->enable_readingWithPrefix(); return true; @@ -294,18 +293,18 @@ std::string KeithleyDDCProtocol::get_value (void) std::stringstream cmd_to_send; std::string argout("no data"); -//- get data value -cmd_to_send << "X" << std::ends; -_communication_link->write(cmd_to_send.str()); -argout = _communication_link->read(); + //- get data value + cmd_to_send << "X" << std::ends; + _communication_link->write(cmd_to_send.str()); + argout = _communication_link->read(); //- check if device range is overloaded : First char of the prefix ! - if(argout[0] == 'O') + if(argout[0] == 'O') //- O means overload ! _is_overloaded = true; else _is_overloaded = false; - ////- return value : data begin at idx 4 + //- return value : data begin at idx 4 argout = argout.substr(4); return argout; } @@ -405,7 +404,9 @@ std::string argout("no data"); cmd_to_send.str(""); //- get status word cmd_to_send << "U1X" << std::endl; - argout = _communication_link->write_read(cmd_to_send.str()); + _communication_link->write(cmd_to_send.str()); + //- DDC devices are to slow to give a response for a write_read cmd + argout = _communication_link->read(); return argout; } diff --git a/src/Keithley_485.cpp b/src/Keithley_485.cpp index a863ce4f20a0e536a99e8bdb559091665d074f91..cf1e4e9dcdee210b0208ba209a0abc871dcf274d 100644 --- a/src/Keithley_485.cpp +++ b/src/Keithley_485.cpp @@ -21,10 +21,7 @@ #include <Xstring.h> #include "KeithleyDDCProtocol.h" #include "Keithley_485.h" -/* -* model number -*/ -static std::string MODEL_NUMBER = "485"; + /* * Valid Range values for a K_485 */ @@ -181,7 +178,6 @@ std::stringstream cmd_to_send; std::string Keithley_485::electrometer_status (void) { std::string _kstatus("undefined status"); - std::string defaultStatus("4850010000000"); std::string argout(""); std::string tmp(""); @@ -200,50 +196,37 @@ std::string Keithley_485::electrometer_status (void) argout = "Invalid status string received"; return argout; } - //argout = "Keithley Type : " + MODEL_NUMBER + "\n"; argout = "Keithley Type : " + modelNum + "\n"; - if ( _kstatus.size() < defaultStatus.size() ) - { - argout = _kstatus; - set_electroState(ALARM); - return argout; - } //- Zero check state - //tmp = _kstatus.substr(0,1); tmp = _kstatus.substr(3,1); if(XString<short>::convertFromString(tmp)) argout += "Zero Check : ON\n"; else argout += "Zero Check : OFF\n"; //- Log state - //tmp = _kstatus.substr(1,1); tmp = _kstatus.substr(4,1); if(XString<short>::convertFromString(tmp)) argout += "Log : ON\n"; else argout += "Log : OFF\n"; //- Range - //tmp = _kstatus.substr(2,1); tmp = _kstatus.substr(5,1); _range = XString<short>::convertFromString(tmp); _rangeStr = K485_rangeValue[_range]; argout += "Range : " + _rangeStr + "\n"; //- Relative (baseline suppress) - //tmp = _kstatus.substr(3,1); tmp = _kstatus.substr(6,1); if(XString<short>::convertFromString(tmp)) argout += "Relative ON\n"; else argout += "Relative OFF\n"; //- Relative (baseline suppress) - //tmp = _kstatus.substr(4,1); tmp = _kstatus.substr(7,1); if(XString<short>::convertFromString(tmp)) argout += "EOI : Send\n"; else argout += "EOI : Do Not Send\n"; //- Trigger - //tmp = _kstatus.substr(5,1); tmp = _kstatus.substr(8,1); short trigg = XString<short>::convertFromString(tmp); if(!trigg) diff --git a/src/Keithley_486.cpp b/src/Keithley_486.cpp index a42bb3abd91e93501f76644aa616dfe60396a6dc..cde777cbaac4902ccbef54d9346f606efae05945 100644 --- a/src/Keithley_486.cpp +++ b/src/Keithley_486.cpp @@ -22,6 +22,7 @@ #include <Xstring.h> #include "Keithley_486.h" #include "KeithleyDDCProtocol.h" + /* * Valid Range values for a K_486 */ @@ -106,7 +107,6 @@ bool Keithley_486::init_protocol (void) // ============================================================================ void Keithley_486::autoRange_off (void) { - //- send the appropriate command KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol); if(_kddc) @@ -118,7 +118,7 @@ void Keithley_486::autoRange_off (void) // ============================================================================ void Keithley_486::range_up (void) { -std::stringstream cmd_to_send; +std::stringstream cmd_to_send(""); // force read of range on instrument to update _range variable electrometer_status(); @@ -143,7 +143,7 @@ std::stringstream cmd_to_send; // ============================================================================ void Keithley_486::range_down (void) { -std::stringstream cmd_to_send; +std::stringstream cmd_to_send(""); // force read of range on instrument to update _range variable electrometer_status(); @@ -178,7 +178,7 @@ std::string Keithley_486::get_ElectroMeterRange (void) // ============================================================================ void Keithley_486::set_buffer_size (short size) { -std::stringstream cmd_to_send; +std::stringstream cmd_to_send(""); //- check if size is valid if(size<0 || size>512) @@ -204,7 +204,7 @@ void Keithley_486::set_triggerMode (short trigMod) "Trigger mode value invalid. Please enter a value in the range 0 - 7.", "Keithley_486::set_triggerMode( )."); - std::stringstream cmd_to_send; + std::stringstream cmd_to_send(""); //- just for internal use _trigMod = trigMod; @@ -269,7 +269,6 @@ std::string Keithley_486::electrometer_status (void) return argout; } - //- IDDC Error : Set when an illegal device dependent command (IDDC) such as HlX is received ("H" is illegal). tmp = kconfig.substr(3,1); short iddc = XString<short>::convertFromString(tmp); diff --git a/src/Keithley_487.cpp b/src/Keithley_487.cpp index 248b679e96519ccc0cc179047698e7735ce8fcec..1ee3c5224c01f2aa023ee78a0cd66c11fb282738 100644 --- a/src/Keithley_487.cpp +++ b/src/Keithley_487.cpp @@ -22,6 +22,7 @@ #include <Xstring.h> #include "Keithley_487.h" #include "KeithleyDDCProtocol.h" + /* * Valid Range values for a K_487 */ @@ -48,9 +49,6 @@ Keithley_487::Keithley_487 (std::string& comLink_device_name):AbstractElectromet { std::cout << "Keithley_487::Keithley_487 <-" << std::endl; - //- build the keithley Electrometer obj - _electrometerProtocol = new KeithleyDDCProtocol (_device_proxy_name); - std::cout << "Keithley_487::Keithley_487 ->" << std::endl; } @@ -106,7 +104,6 @@ bool Keithley_487::init_protocol (void) // ============================================================================ void Keithley_487::autoRange_off (void) { - //- send the appropriate command KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol); if(_kddc) @@ -170,7 +167,7 @@ std::stringstream cmd_to_send; std::string Keithley_487::get_ElectroMeterRange (void) { // force read of range on instrument to update _range variable -// electrometer_status(); + electrometer_status(); return _rangeStr; } @@ -193,7 +190,6 @@ std::stringstream cmd_to_send; //- send command : size = number of triggers cmd_to_send << "N" << size << "X" << std::endl; _electrometerProtocol->set_buffer_size(cmd_to_send.str()); - } // ============================================================================ @@ -225,7 +221,6 @@ void Keithley_487::set_triggerMode (short trigMod) cmd_to_send << "T" << trigMod << "X" << std::endl; _electrometerProtocol->set_triggerMode(cmd_to_send.str()); - } // ============================================================================ @@ -245,7 +240,7 @@ void Keithley_487::set_triggerMode (short trigMod) std::string Keithley_487::get_ElectroMeterMode (void) { // force read of range on instrument to update _range variable -// electrometer_status(); + electrometer_status(); return _mode; } @@ -255,7 +250,6 @@ std::string Keithley_487::get_ElectroMeterMode (void) // ============================================================================ void Keithley_487::setAmperMeterMode (void) { - //- send the appropriate command KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol); if(_kddc) @@ -305,7 +299,6 @@ std::string Keithley_487::electrometer_status (void) return argout; } - //- IDDC Error : Set when an illegal device dependent command (IDDC) such as HlX is received ("H" is illegal). tmp = kconfig.substr(3,1); short iddc = XString<short>::convertFromString(tmp); @@ -408,7 +401,6 @@ std::string Keithley_487::electrometer_status (void) argout = "No error."; argout = "Keithley Type " + modelNum + " Error Status :\n" + argout; - } catch(...) { @@ -610,7 +602,6 @@ std::string Keithley_487::get_configuration (void) argout += "Integration Period : Fast (4-1/2d)\n"; else argout += "Integration Period : Line Cycle (5-1/2d)\n"; - //- Trigger ('T') tmp = _kstatus.substr(_kstatus.find('T')+1,1); _trigMod = XString<short>::convertFromString(tmp); diff --git a/src/Keithley_617.cpp b/src/Keithley_617.cpp index 4647207e550d3f9294fe1d80af81c794ac060782..2c4a8d52bc9ababd7b8800c6ad82cc935e400874 100644 --- a/src/Keithley_617.cpp +++ b/src/Keithley_617.cpp @@ -21,6 +21,7 @@ #include <Xstring.h> #include "Keithley_617.h" #include "KeithleyDDCProtocol.h" + /* * Valid Range values for a K_617 */ @@ -102,7 +103,6 @@ bool Keithley_617::init_protocol (void) // ============================================================================ void Keithley_617::autoRange_off (void) { - //- send the appropriate command KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol); if(_kddc) @@ -114,7 +114,6 @@ void Keithley_617::autoRange_off (void) // ============================================================================ void Keithley_617::range_up (void) { - std::stringstream cmd_to_send; // force read of range on instrument to update _range variable @@ -138,7 +137,6 @@ std::stringstream cmd_to_send; // ============================================================================ void Keithley_617::range_down (void) { - std::stringstream cmd_to_send; // force read of range on instrument to update _range variable @@ -171,11 +169,9 @@ std::string Keithley_617::get_ElectroMeterRange (void) // ============================================================================ void Keithley_617::set_buffer_size (short ) { - throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", "The 617 Keithley device buffer size cannot be set (it stores up to 100 points internally.)", "Keithley_617::set_triggerMode( )."); - } // ============================================================================ @@ -189,7 +185,6 @@ void Keithley_617::set_triggerMode (short trigMod) "Keithley_617::set_triggerMode( )."); std::stringstream cmd_to_send; - //- just for internal use _trigMod = trigMod; @@ -276,7 +271,6 @@ std::string Keithley_617::electrometer_status (void) return argout; } - //- IDDC Error : Set when an illegal device dependent command (IDDC) such as HlX is received ("H" is illegal). tmp = kconfig.substr(3,1); short iddc = XString<short>::convertFromString(tmp); @@ -299,14 +293,14 @@ std::string Keithley_617::electrometer_status (void) argout += "REMOTE error : programming command is received when REN is false\n"; } //- Trigger Overrun Error : Set when a trigger is received when the instrument is still processing a reading from a previous trigger. - tmp = kconfig.substr(7,1); + tmp = kconfig.substr(6,1); short trigg = XString<short>::convertFromString(tmp); if(trigg) { argout += "Trigger error : Trigger received while instrument is still processing a reading from a previous trigger.\n"; } //- Number Error : Set when an Out of range calibration or voltage source value is received. - tmp = kconfig.substr(8,1); + tmp = kconfig.substr(7,1); short numErr = XString<short>::convertFromString(tmp); if(numErr) { @@ -322,7 +316,6 @@ std::string Keithley_617::electrometer_status (void) catch(...) { set_electroState(ALARM); - throw electrometer::ElectrometerException("UNKNOWN_ERROR", "Cannot extract device error status.", "Keithley_617::electrometer_status( )."); @@ -349,7 +342,6 @@ std::string Keithley_617::get_configuration (void) { //- model number : std::string modelNum = _kstatus.substr(0,3); -// std::cout<< "\n617 status = " << modelNum << std::endl; //- if not expected data (here model number) if(modelNum.find("617") == std::string::npos) { @@ -364,47 +356,41 @@ std::string Keithley_617::get_configuration (void) //- Range : tmp = _kstatus.substr(4,2); _range = XString<short>::convertFromString(tmp); + _rangeStr = K617_VoltRangeValue[_range]; if(!func) { _mode = "Function : VOLTS"; argout += _mode + "\n"; - _rangeStr = K617_VoltRangeValue[_range]; } else if(func == 1) { _mode = "Function : AMPS"; argout += _mode + "\n"; - _rangeStr = K617_AmpRangeValue[_range]; - argout += _rangeStr + "\n"; } else if(func == 2) { _mode = "Function : OHMS"; argout += _mode + "\n"; - _rangeStr = K617_OhmRangeValue[_range]; } else if(func == 3) { _mode = "Function : COULOMBS"; argout += _mode + "\n"; - _rangeStr = K617_CouRangeValue[_range]; } else if(func == 4) { _mode = "Function : XFDBK"; argout += _mode + "\n"; - _rangeStr = K617_XfdbRangeValue[_range]; } else if(func == 5) { _mode = "Function : V/I"; argout += _mode + "\n"; - _rangeStr = K617_XfdbRangeValue[_range]; } //- Range : argout += "RANGE : " + _rangeStr + "\n"; @@ -474,6 +460,16 @@ std::string Keithley_617::get_configuration (void) else if(XString<short>::convertFromString(tmp) == 4) argout += "Read Mode :Voltage Source\n"; + //- Data prefix : + tmp = _kstatus.substr(12,1); + if(!XString<short>::convertFromString(tmp)) + argout += "Data prefix : Prefix, no suffix\n"; + else + if(XString<short>::convertFromString(tmp) == 1) + argout += "Data prefix : No prefix or suffix\n"; + else + if(XString<short>::convertFromString(tmp) == 2) + argout += "Data prefix : Prefix and suffix\n"; //- Display : tmp = _kstatus.substr(13,1); if(!XString<short>::convertFromString(tmp)) @@ -541,7 +537,6 @@ std::string Keithley_617::get_configuration (void) catch(std::out_of_range) { set_electroState(ALARM); - throw electrometer::ElectrometerException("OUT_OF_RANGE", "Cannot extract device status [find or substr failed !].", "Keithley_617::get_configuration( )."); diff --git a/src/Keithley_6485.cpp b/src/Keithley_6485.cpp index e3b83cda4517071418a1b05849f5f0832912ea47..e379ec155a793e8e9077a626f6f3c3fa66c5f662 100644 --- a/src/Keithley_6485.cpp +++ b/src/Keithley_6485.cpp @@ -164,7 +164,6 @@ double delta = 0; /** * NOTE : SCPI models return a range value +/- 5% */ - //- get range from hardware range_str = _electrometerProtocol->get_range( ); //- convert range in decimal value @@ -188,7 +187,6 @@ double delta = 0; //- update range with index found this->_range = idx; - } // ============================================================================ @@ -228,7 +226,6 @@ std::stringstream cmd_to_send; if(numPLC <= 0 || numPLC > 5.0) { -// std::cout << "Keithley_6485::set_knplc -> " << numPLC << std::endl; throw electrometer::ElectrometerException("OUT_OF_RANGE", "Invalid number of PLC.\n Please enter a value in the range 0.01 to 5.0.", "Keithley_6485::set_knplc( )."); diff --git a/src/Keithley_6487.cpp b/src/Keithley_6487.cpp index 357907222396191196d33aece4d5c3ee18350c15..2d99965e0b091dc2be6fbe03e415f3f836abe6d3 100644 --- a/src/Keithley_6487.cpp +++ b/src/Keithley_6487.cpp @@ -130,7 +130,6 @@ std::stringstream cmd_to_send; // ============================================================================ void Keithley_6487::range_down (void) { - std::stringstream cmd_to_send; //- update range index from hardware @@ -199,7 +198,6 @@ double delta = 0; /** * NOTE : SCPI models return a range value +/- 5% */ - //- get range from hardware range_str = _electrometerProtocol->get_range( ); //- convert range in decimal value diff --git a/src/Keithley_6512.cpp b/src/Keithley_6512.cpp index e923dc8053b15d31b53017e03a550f30df6e028f..adc0b2a4efe4c0ceb67b7c852396d6fbd8b78b31 100644 --- a/src/Keithley_6512.cpp +++ b/src/Keithley_6512.cpp @@ -21,6 +21,7 @@ #include <Xstring.h> #include "Keithley_6512.h" #include "KeithleyDDCProtocol.h" + /* * Valid Range values for a K_6512 */ @@ -44,7 +45,6 @@ static short K6512_triggerModeLimit = 7; // ============================================================================ Keithley_6512::Keithley_6512 (std::string& comLink_device_name) : AbstractElectrometerClass(comLink_device_name) - { std::cout << "Keithley_6512::Keithley_6512 <-" << std::endl; @@ -103,7 +103,6 @@ bool Keithley_6512::init_protocol (void) // ============================================================================ void Keithley_6512::autoRange_off (void) { - KeithleyDDCProtocol* _kddc = dynamic_cast<KeithleyDDCProtocol*>(_electrometerProtocol); if(_kddc) _kddc->autoRange_OFF_forK617_6512(); @@ -139,7 +138,6 @@ std::stringstream cmd_to_send; // ============================================================================ void Keithley_6512::range_down (void) { - std::stringstream cmd_to_send; // force read of range on instrument to update _range variable @@ -176,12 +174,9 @@ std::string Keithley_6512::get_ElectroMeterRange (void) // ============================================================================ void Keithley_6512::set_buffer_size (short ) { -//std::string cmd_to_send(""); - throw electrometer::ElectrometerException("COMMAND_NOT_SUPPORTED", "The 6512 Keithley device buffer size cannot be set (it stores up to 100 points internally.)", "Keithley_6512::set_triggerMode( )."); - } // ============================================================================ @@ -195,14 +190,12 @@ void Keithley_6512::set_triggerMode (short trigMod) "Keithley_6512::set_triggerMode( )."); std::stringstream cmd_to_send; - //- just for internal use _trigMod = trigMod; cmd_to_send << "T" << trigMod << "X" << std::endl; _electrometerProtocol->set_triggerMode(cmd_to_send.str()); - } // ============================================================================ @@ -285,9 +278,8 @@ std::string Keithley_6512::electrometer_status (void) return argout; } - //- IDDC Error : Set when an illegal device dependent command (IDDC) such as HlX is received ("H" is illegal). - tmp = kconfig.substr(4,1); + tmp = kconfig.substr(44,1); short iddc = XString<short>::convertFromString(tmp); if(iddc) { @@ -470,6 +462,17 @@ std::string Keithley_6512::get_configuration (void) else if(readingMode == 4) argout += "Read Mode :Voltage Source\n"; + //- Data prefix + tmp = _kstatus.substr(13,1); + short dataPrefix = XString<short>::convertFromString(tmp); + if(!dataPrefix) + argout += "Data prefix : Prefix, no suffix\n"; + else + if(dataPrefix == 1) + argout += "Data prefix : No prefix or suffix\n"; + else + if(dataPrefix == 2) + argout += "Data prefix : Prefix and suffix\n"; //- Data Store tmp = _kstatus.substr(15,1); short dstore = XString<short>::convertFromString(tmp); @@ -540,7 +543,6 @@ std::string Keithley_6512::get_configuration (void) "Keithley_6512::get_configuration( )."); } - set_electroState(ON); return argout; } diff --git a/src/Keithley_6514.cpp b/src/Keithley_6514.cpp index 914588a7184559dc551c7daca0e7f3d130925746..f5b436363ef8eb18d0361c5787c3e62170e13695 100644 --- a/src/Keithley_6514.cpp +++ b/src/Keithley_6514.cpp @@ -117,7 +117,6 @@ bool Keithley_6514::init_protocol (void) // ============================================================================ void Keithley_6514::range_up (void) { - std::stringstream cmd_to_send; //- update range value from hardware @@ -187,7 +186,6 @@ std::stringstream cmd_to_send; // ============================================================================ void Keithley_6514::range_down (void) { - std::stringstream cmd_to_send; //- update range value from hardware @@ -218,7 +216,6 @@ std::stringstream cmd_to_send; "Unable to find the electrometer mode used.", "Keithley_6514::range_down( )."); - //- build and send the command _electrometerProtocol->set_range(cmd_to_send.str()); } @@ -244,10 +241,7 @@ std::vector<double> Keithley_6514::get_fetchValue (void) // ============================================================================ void Keithley_6514::setAmperMeterMode (void) { - _electrometerProtocol->setAmperMeterMode( ); - - } // ============================================================================ @@ -255,9 +249,7 @@ void Keithley_6514::setAmperMeterMode (void) // ============================================================================ void Keithley_6514::setVoltMeterMode (void) { - _electrometerProtocol->setVoltMeterMode( ); - } // ============================================================================ @@ -265,9 +257,7 @@ void Keithley_6514::setVoltMeterMode (void) // ============================================================================ void Keithley_6514::setOhmMeterMode (void) { - _electrometerProtocol->setOhmMeterMode( ); - } // ============================================================================ @@ -275,9 +265,7 @@ void Keithley_6514::setOhmMeterMode (void) // ============================================================================ void Keithley_6514::setCoulombMeterMode (void) { - _electrometerProtocol->setCoulombMeterMode( ); - } // ============================================================================ @@ -293,7 +281,6 @@ double delta = 0; /** * NOTE : SCPI models return a range value +/- 5% */ - //- get device mode _kmode = get_ElectroMeterMode(); @@ -319,7 +306,6 @@ double delta = 0; "Unable to find the electrometer mode used.", "Keithley_6514::update_range( )."); - //- find the range index for(idx=0; idx<idx_limit ; idx++) { diff --git a/src/Keithley_6517.cpp b/src/Keithley_6517.cpp index 0da00d057130da44c8a44902c5ddf2705d81e5bc..d4a6ff622ae1a6cc31c560e9a3b8f746558aa73d 100644 --- a/src/Keithley_6517.cpp +++ b/src/Keithley_6517.cpp @@ -235,10 +235,7 @@ std::vector<double> Keithley_6517::get_fetchValue (void) // ============================================================================ void Keithley_6517::setAmperMeterMode (void) { - _electrometerProtocol->setAmperMeterMode( ); - - } // ============================================================================ @@ -246,9 +243,7 @@ void Keithley_6517::setAmperMeterMode (void) // ============================================================================ void Keithley_6517::setVoltMeterMode (void) { - _electrometerProtocol->setVoltMeterMode( ); - } // ============================================================================ @@ -256,9 +251,7 @@ void Keithley_6517::setVoltMeterMode (void) // ============================================================================ void Keithley_6517::setOhmMeterMode (void) { - _electrometerProtocol->setOhmMeterMode( ); - } // ============================================================================ @@ -266,9 +259,7 @@ void Keithley_6517::setOhmMeterMode (void) // ============================================================================ void Keithley_6517::setCoulombMeterMode (void) { - _electrometerProtocol->setCoulombMeterMode( ); - } // ============================================================================ @@ -284,7 +275,6 @@ double delta = 0; /** * NOTE : SCPI models return a range value +/- 5% */ - //- get device mode _kmode = get_ElectroMeterMode(); @@ -311,7 +301,7 @@ double delta = 0; "Keithley_6517::update_range( )."); -//- find the range index + //- find the range index for(idx=0; idx<idx_limit ; idx++) { if(_kmode.find("CURR") != std::string::npos)