diff --git a/src/KeithleyDDCProtocol.cpp b/src/KeithleyDDCProtocol.cpp index 3d2b0e7d8f3244270c214c31be48e92e3af67de9..1fdf5ba1b72463bf3f0178135b4181421acfd370 100644 --- a/src/KeithleyDDCProtocol.cpp +++ b/src/KeithleyDDCProtocol.cpp @@ -60,7 +60,7 @@ bool KeithleyDDCProtocol::build_communicationLink() //- For DDC models are very slow devices, so communication with //- prefix is disabled ! - this->disable_readingWithPrefix(); + this->enable_readingWithPrefix(); return true; } @@ -294,20 +294,19 @@ 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_read(cmd_to_send.str()); - argout = _communication_link->read(); - std::cout << "KeithleyDDCProtocol::get_value = " << argout << std::endl; +//- 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') - // _is_overloaded = true; - //else - // _is_overloaded = false; + if(argout[0] == 'O') + _is_overloaded = true; + else + _is_overloaded = false; ////- return value : data begin at idx 4 - //argout = argout.substr(4); + argout = argout.substr(4); return argout; } @@ -408,8 +407,6 @@ std::string argout("no data"); cmd_to_send << "U1X" << std::endl; argout = _communication_link->write_read(cmd_to_send.str()); - std::cout << "KeithleyDDCProtocol::get_raw_status returns *" << argout << "*" << std::ends; - return argout; } @@ -424,9 +421,8 @@ std::string argout("no data"); cmd_to_send.str(""); //- get status word cmd_to_send << "U0X" << std::endl; - argout = _communication_link->write_read(cmd_to_send.str()); - - std::cout << "KeithleyDDCProtocol::get_DDC_configuration returns *" << argout << "*" << std::ends; + _communication_link->write(cmd_to_send.str()); + argout = _communication_link->read(); return argout; } diff --git a/src/Keithley_485.cpp b/src/Keithley_485.cpp index 739f36cddf0a40faafebf1483a78c4b556ecbdb4..a863ce4f20a0e536a99e8bdb559091665d074f91 100644 --- a/src/Keithley_485.cpp +++ b/src/Keithley_485.cpp @@ -102,7 +102,7 @@ bool Keithley_485::init_protocol (void) // ============================================================================ void Keithley_485::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(); @@ -127,7 +127,7 @@ std::stringstream cmd_to_send(""); // ============================================================================ void Keithley_485::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(); @@ -162,7 +162,7 @@ std::string Keithley_485::get_ElectroMeterRange (void) // ============================================================================ void Keithley_485::set_triggerMode (short trigMod) { -std::stringstream cmd_to_send(""); +std::stringstream cmd_to_send; if(trigMod<0 || trigMod>K485_triggerModeLimit) throw electrometer::ElectrometerException("OUT_OF_RANGE", @@ -181,7 +181,7 @@ std::stringstream cmd_to_send(""); std::string Keithley_485::electrometer_status (void) { std::string _kstatus("undefined status"); - std::string defaultStatus("4850000000000"); + std::string defaultStatus("4850010000000"); std::string argout(""); std::string tmp(""); @@ -192,15 +192,16 @@ std::string Keithley_485::electrometer_status (void) try { //- model number : - //std::string modelNum = _kstatus.substr(0,3); - ////- if not expected data (here model number) - //if(modelNum.find("485") == std::string::npos) - //{ - // set_electroState(ALARM); - // argout = "Invalid status string received"; - // return argout; - //} - argout = "Keithley Type : " + MODEL_NUMBER + "\n"; + std::string modelNum = _kstatus.substr(0,3); + //- if not expected data (here model number) + if(modelNum.find("485") == std::string::npos) + { + set_electroState(ALARM); + 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; @@ -208,36 +209,42 @@ std::string Keithley_485::electrometer_status (void) return argout; } //- Zero check state - tmp = _kstatus.substr(0,1); + //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(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(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(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(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(5,1); + tmp = _kstatus.substr(8,1); short trigg = XString<short>::convertFromString(tmp); if(!trigg) argout += "Trigger : Continuous on Talk\n";