mirror of
https://github.com/jankae/LibreVNA.git
synced 2026-04-04 14:07:30 +00:00
SCPI API for setting/reading calkit meta data
This commit is contained in:
parent
9923038d6c
commit
d0c8a1ae8e
4 changed files with 64 additions and 1 deletions
|
|
@ -19,10 +19,44 @@ Calkit::Calkit()
|
|||
: SCPINode("KIT")
|
||||
{
|
||||
// set default values
|
||||
filename = "";
|
||||
for(auto e : descr) {
|
||||
e.var.setValue(e.def);
|
||||
}
|
||||
|
||||
add(new SCPICommand("MANufacturer", [=](QStringList params) -> QString {
|
||||
if(params.size() != 1 ) {
|
||||
// no new value given
|
||||
return SCPI::getResultName(SCPI::Result::Error);
|
||||
}
|
||||
manufacturer = params[0];
|
||||
return SCPI::getResultName(SCPI::Result::Empty);
|
||||
}, [=](QStringList) -> QString {
|
||||
return manufacturer;
|
||||
}, false));
|
||||
add(new SCPICommand("SERial", [=](QStringList params) -> QString {
|
||||
if(params.size() != 1 ) {
|
||||
// no new value given
|
||||
return SCPI::getResultName(SCPI::Result::Error);
|
||||
}
|
||||
serialnumber = params[0];
|
||||
return SCPI::getResultName(SCPI::Result::Empty);
|
||||
}, [=](QStringList) -> QString {
|
||||
return serialnumber;
|
||||
}, false));
|
||||
add(new SCPICommand("DESCription", [=](QStringList params) -> QString {
|
||||
if(params.size() != 1 ) {
|
||||
// no new value given
|
||||
return SCPI::getResultName(SCPI::Result::Error);
|
||||
}
|
||||
description = params[0];
|
||||
return SCPI::getResultName(SCPI::Result::Empty);
|
||||
}, [=](QStringList) -> QString {
|
||||
return description;
|
||||
}, false));
|
||||
add(new SCPICommand("FILEname", nullptr, [=](QStringList) -> QString {
|
||||
return filename;
|
||||
}));
|
||||
add(new SCPICommand("SAVE", [=](QStringList params) -> QString {
|
||||
if(params.size() != 1 ) {
|
||||
// no filename given or no calibration active
|
||||
|
|
@ -57,6 +91,7 @@ void Calkit::toFile(QString filename)
|
|||
file.open(filename.toStdString());
|
||||
file << setw(4) << toJSON() << endl;
|
||||
file.close();
|
||||
this->filename = filename;
|
||||
}
|
||||
|
||||
static QString readLine(ifstream &file) {
|
||||
|
|
@ -83,6 +118,7 @@ Calkit Calkit::fromFile(QString filename)
|
|||
throw runtime_error("JSON parsing error: " + string(e.what()));
|
||||
}
|
||||
c.clearStandards();
|
||||
c.filename = "";
|
||||
if(j.contains("standards")) {
|
||||
qDebug() << "new JSON format detected";
|
||||
c.fromJSON(j);
|
||||
|
|
@ -345,6 +381,7 @@ Calkit Calkit::fromFile(QString filename)
|
|||
}
|
||||
|
||||
file.close();
|
||||
c.filename = filename;
|
||||
|
||||
return c;
|
||||
}
|
||||
|
|
@ -411,6 +448,7 @@ nlohmann::json Calkit::toJSON()
|
|||
void Calkit::fromJSON(nlohmann::json j)
|
||||
{
|
||||
clearStandards();
|
||||
filename = "";
|
||||
Savable::parseJSON(j, descr);
|
||||
for(auto js : j["standards"]) {
|
||||
if(!js.contains("type") || !js.contains("params")) {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ public:
|
|||
this->serialnumber = other.serialnumber;
|
||||
this->description = other.description;
|
||||
this->standards = other.standards;
|
||||
this->filename = other.filename;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
@ -58,6 +59,7 @@ public:
|
|||
private:
|
||||
void clearStandards();
|
||||
QString manufacturer, serialnumber, description;
|
||||
QString filename;
|
||||
std::vector<CalStandard::Virtual*> standards;
|
||||
|
||||
const std::vector<Savable::SettingDescription> descr = {{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue