Skip to content
Snippets Groups Projects

Revert Keithley22XX and Keithley24XX to use :READ? for measuring stuff.

Merged Karol Krizka requested to merge keithley-measure into devel
All threads resolved!
Files
4
+ 18
2
@@ -52,6 +52,13 @@ void Keithley22XX::turnOff(unsigned channel)
m_com->send("CHAN:OUTP 0");
}
bool Keithley22XX::isOn(unsigned channel)
{
if (channel != 1) throw std::runtime_error("Set the channel to 1 for single channel power-supply");
return m_com->sendreceive(":OUTPUT?")=="1";
}
void Keithley22XX::setCurrentLevel(double cur, unsigned channel)
{
if(channel!=1 && channel!=2 && channel!=3)
@@ -94,9 +101,13 @@ double Keithley22XX::measureCurrent(unsigned channel)
if(channel!=1 && channel!=2 && channel!=3)
throw std::runtime_error("Invalid channel: "+std::to_string(channel));
if(!isOn(channel))
return 0.;
m_com->send(":FORMAT:ELEMENTS CURR");
m_com->send("INST CH" + std::to_string(channel));
return std::stod(m_com->sendreceive(":MEAS:CURR?"));
return std::stod(m_com->sendreceive(":READ?"));
}
void Keithley22XX::setVoltageLevel(double volt, unsigned channel)
@@ -141,7 +152,12 @@ double Keithley22XX::measureVoltage(unsigned channel)
if(channel!=1 && channel!=2 && channel!=3)
throw std::runtime_error("Invalid channel: "+std::to_string(channel));
if(!isOn(channel))
return 0.;
m_com->send(":FORMAT:ELEMENTS VOLT");
m_com->send("INST CH" + std::to_string(channel));
return std::stod(m_com->sendreceive(":MEAS:VOLT?"));
return std::stod(m_com->sendreceive(":READ?"));
}
Loading