diff --git a/Software/PC_Application/VNA/vna.cpp b/Software/PC_Application/VNA/vna.cpp index 7fd032b..f0529af 100644 --- a/Software/PC_Application/VNA/vna.cpp +++ b/Software/PC_Application/VNA/vna.cpp @@ -117,13 +117,7 @@ VNA::VNA(AppWindow *window) saveCal->setEnabled(false); connect(calLoad, &QAction::triggered, [=](){ - cal.openFromFile(); - if(cal.getType() == Calibration::Type::None) { - DisableCalibration(); - } else { - ApplyCalibration(cal.getType()); - } - calEdited = false; + LoadCalibration(""); }); connect(saveCal, &QAction::triggered, [=](){ @@ -1544,3 +1538,16 @@ void VNA::UpdateStatusbar() setStatusbarMessage("Calibration: -"); } } + +bool VNA::LoadCalibration(QString filename) +{ + cal.openFromFile(filename); + calEdited = false; + if(cal.getType() == Calibration::Type::None) { + DisableCalibration(); + return false; + } else { + ApplyCalibration(cal.getType()); + return true; + } +} diff --git a/Software/PC_Application/VNA/vna.h b/Software/PC_Application/VNA/vna.h index ca16036..1ad908e 100644 --- a/Software/PC_Application/VNA/vna.h +++ b/Software/PC_Application/VNA/vna.h @@ -59,6 +59,9 @@ public: bool excitingPort2; }; +public slots: + bool LoadCalibration(QString filename); + private slots: void NewDatapoint(Protocol::Datapoint d); void StartImpedanceMatching(); diff --git a/Software/PC_Application/appwindow.cpp b/Software/PC_Application/appwindow.cpp index 7709993..bd42d33 100644 --- a/Software/PC_Application/appwindow.cpp +++ b/Software/PC_Application/appwindow.cpp @@ -86,6 +86,8 @@ AppWindow::AppWindow(QWidget *parent) parser.addOption(QCommandLineOption({"p","port"}, "Specify port to listen for SCPI commands", "port")); parser.addOption(QCommandLineOption({"d","device"}, "Only allow connections to the specified device", "device")); parser.addOption(QCommandLineOption("no-gui", "Disables the graphical interface")); + parser.addOption(QCommandLineOption("cal", "Calibration file to load on startup", "cal")); + parser.addOption(QCommandLineOption("setup", "Setup file to load on startup", "setup")); parser.process(QCoreApplication::arguments()); @@ -245,6 +247,12 @@ AppWindow::AppWindow(QWidget *parent) // at least one device available ConnectToDevice(); } + if(parser.isSet("setup")) { + LoadSetup(parser.value("setup")); + } + if(parser.isSet("cal")) { + vna->LoadCalibration(parser.value("cal")); + } if(!parser.isSet("no-gui")) { InformationBox::setGUI(true); resize(1280, 800);