diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 499b078..09ce500 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - librevna-rename pull_request: branches: - master @@ -29,8 +30,8 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v2 with: - name: Application_Ubuntu - path: Software/PC_Application/Application + name: GUI_Ubuntu + path: Software/PC_Application/LibreVNA-GUI PC_Application_Windows: runs-on: windows-latest @@ -74,6 +75,34 @@ jobs: with: name: Application_Windows path: Software/PC_Application/release + + PC_Application_OSX: + runs-on: macos-10.15 + steps: + - uses: actions/checkout@v1 + + - name: Install dependencies + run: | + brew install qt libusb + + - name: Set Environment + run: | + echo "/usr/local/opt/qt/bin" >> $GITHUB_PATH + + - name: Build application + run: | + cd Software/PC_Application + qmake + make -j9 + macdeployqt LibreVNA-GUI.app + zip -ry LibreVNA-GUI-app.zip LibreVNA-GUI.app + shell: bash + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: Application_OSX + path: Software/PC_Application/LibreVNA-GUI.zip Embedded_Firmware: runs-on: ubuntu-18.04 diff --git a/.github/workflows/BuildOSX.yml b/.github/workflows/BuildOSX.yml deleted file mode 100644 index 27a9eb4..0000000 --- a/.github/workflows/BuildOSX.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: BuildOSX - -on: - push: - branches: - - osx - -jobs: - PC_Application_OSX: - runs-on: macos-10.15 - steps: - - uses: actions/checkout@v1 - - - name: Install dependencies - run: | - brew install qt libusb - - - name: Set Environment - run: | - echo "/usr/local/opt/qt/bin" >> $GITHUB_PATH - - - name: Build application - run: | - cd Software/PC_Application - qmake - make -j9 - macdeployqt VNA2.app - zip -ry vna2-app.zip VNA2.app - shell: bash - - - name: Upload artifact - uses: actions/upload-artifact@v2 - with: - name: Application_OSX - path: Software/PC_Application/vna2-app.zip diff --git a/Documentation/Pictures/IMG_5511.JPG b/Documentation/Pictures/IMG_5511.JPG new file mode 100644 index 0000000..64241f5 Binary files /dev/null and b/Documentation/Pictures/IMG_5511.JPG differ diff --git a/Documentation/Pictures/IMG_5516.JPG b/Documentation/Pictures/IMG_5516.JPG new file mode 100644 index 0000000..b725111 Binary files /dev/null and b/Documentation/Pictures/IMG_5516.JPG differ diff --git a/Documentation/Pictures/RevisionBTop.JPG b/Documentation/Pictures/RevisionBTop.JPG new file mode 100644 index 0000000..bf494b7 Binary files /dev/null and b/Documentation/Pictures/RevisionBTop.JPG differ diff --git a/Documentation/UserManual/manual.pdf b/Documentation/UserManual/manual.pdf index dcf8566..c833b45 100644 Binary files a/Documentation/UserManual/manual.pdf and b/Documentation/UserManual/manual.pdf differ diff --git a/Documentation/UserManual/manual.tex b/Documentation/UserManual/manual.tex index 6a3fe94..dbd1e46 100644 --- a/Documentation/UserManual/manual.tex +++ b/Documentation/UserManual/manual.tex @@ -112,7 +112,7 @@ \usepackage{makecell} \usepackage{hyperref} -\newcommand{\vna}{VNA} +\newcommand{\vna}{LibreVNA} \newcommand{\screenshot}[2]{\begin{center} \includegraphics[width=#1\textwidth]{Screenshots/#2} diff --git a/Software/PC_Application/LibreVNA-GUI b/Software/PC_Application/LibreVNA-GUI new file mode 100755 index 0000000..065884f Binary files /dev/null and b/Software/PC_Application/LibreVNA-GUI differ diff --git a/Software/PC_Application/LibreVNA-GUI.pro b/Software/PC_Application/LibreVNA-GUI.pro new file mode 100644 index 0000000..a21e8f8 --- /dev/null +++ b/Software/PC_Application/LibreVNA-GUI.pro @@ -0,0 +1,286 @@ +HEADERS += \ + ../VNA_embedded/Application/Communication/Protocol.hpp \ + Calibration/amplitudecaldialog.h \ + Calibration/calibration.h \ + Calibration/calibrationtracedialog.h \ + Calibration/calkit.h \ + Calibration/calkitdialog.h \ + Calibration/manualcalibrationdialog.h \ + Calibration/measurementmodel.h \ + Calibration/receivercaldialog.h \ + Calibration/sourcecaldialog.h \ + CustomWidgets/colorpickerbutton.h \ + CustomWidgets/informationbox.h \ + CustomWidgets/jsonpickerdialog.h \ + CustomWidgets/siunitedit.h \ + CustomWidgets/tilewidget.h \ + CustomWidgets/toggleswitch.h \ + CustomWidgets/touchstoneimport.h \ + Device/device.h \ + Device/devicelog.h \ + Device/firmwareupdatedialog.h \ + Device/manualcontroldialog.h \ + Generator/generator.h \ + Generator/signalgenwidget.h \ + SpectrumAnalyzer/spectrumanalyzer.h \ + SpectrumAnalyzer/tracewidgetsa.h \ + Tools/eseries.h \ + Tools/impedancematchdialog.h \ + Tools/parameters.h \ + Traces/Math/dft.h \ + Traces/Math/expression.h \ + Traces/Math/medianfilter.h \ + Traces/Math/parser/mpCompat.h \ + Traces/Math/parser/mpDefines.h \ + Traces/Math/parser/mpError.h \ + Traces/Math/parser/mpFuncCmplx.h \ + Traces/Math/parser/mpFuncCommon.h \ + Traces/Math/parser/mpFuncMatrix.h \ + Traces/Math/parser/mpFuncNonCmplx.h \ + Traces/Math/parser/mpFuncStr.h \ + Traces/Math/parser/mpFwdDecl.h \ + Traces/Math/parser/mpICallback.h \ + Traces/Math/parser/mpIOprt.h \ + Traces/Math/parser/mpIPackage.h \ + Traces/Math/parser/mpIPrecedence.h \ + Traces/Math/parser/mpIToken.h \ + Traces/Math/parser/mpIValReader.h \ + Traces/Math/parser/mpIValue.h \ + Traces/Math/parser/mpIfThenElse.h \ + Traces/Math/parser/mpMatrix.h \ + Traces/Math/parser/mpMatrixError.h \ + Traces/Math/parser/mpOprtBinAssign.h \ + Traces/Math/parser/mpOprtBinCommon.h \ + Traces/Math/parser/mpOprtCmplx.h \ + Traces/Math/parser/mpOprtIndex.h \ + Traces/Math/parser/mpOprtMatrix.h \ + Traces/Math/parser/mpOprtNonCmplx.h \ + Traces/Math/parser/mpOprtPostfixCommon.h \ + Traces/Math/parser/mpPackageCmplx.h \ + Traces/Math/parser/mpPackageCommon.h \ + Traces/Math/parser/mpPackageMatrix.h \ + Traces/Math/parser/mpPackageNonCmplx.h \ + Traces/Math/parser/mpPackageStr.h \ + Traces/Math/parser/mpPackageUnit.h \ + Traces/Math/parser/mpParser.h \ + Traces/Math/parser/mpParserBase.h \ + Traces/Math/parser/mpParserMessageProvider.h \ + Traces/Math/parser/mpRPN.h \ + Traces/Math/parser/mpScriptTokens.h \ + Traces/Math/parser/mpStack.h \ + Traces/Math/parser/mpTest.h \ + Traces/Math/parser/mpTokenReader.h \ + Traces/Math/parser/mpTypes.h \ + Traces/Math/parser/mpValReader.h \ + Traces/Math/parser/mpValue.h \ + Traces/Math/parser/mpValueCache.h \ + Traces/Math/parser/mpVariable.h \ + Traces/Math/parser/suSortPred.h \ + Traces/Math/parser/suStringTokens.h \ + Traces/Math/parser/utGeneric.h \ + Traces/Math/tdr.h \ + Traces/Math/tracemath.h \ + Traces/Math/windowfunction.h \ + Traces/fftcomplex.h \ + Traces/markerwidget.h \ + Traces/sparamtraceselector.h \ + Traces/trace.h \ + Traces/tracecsvexport.h \ + Traces/traceeditdialog.h \ + Traces/traceimportdialog.h \ + Traces/tracemarker.h \ + Traces/tracemarkermodel.h \ + Traces/tracemodel.h \ + Traces/traceplot.h \ + Traces/tracesmithchart.h \ + Traces/tracetouchstoneexport.h \ + Traces/tracewidget.h \ + Traces/tracexyplot.h \ + Traces/xyplotaxisdialog.h \ + Util/qpointervariant.h \ + Util/util.h \ + VNA/Deembedding/deembedding.h \ + VNA/Deembedding/deembeddingdialog.h \ + VNA/Deembedding/deembeddingoption.h \ + VNA/Deembedding/manualdeembeddingdialog.h \ + VNA/Deembedding/matchingnetwork.h \ + VNA/Deembedding/portextension.h \ + VNA/Deembedding/twothru.h \ + VNA/tracewidgetvna.h \ + VNA/vna.h \ + appwindow.h \ + averaging.h \ + csv.h \ + json.hpp \ + mode.h \ + preferences.h \ + savable.h \ + touchstone.h \ + unit.h + +SOURCES += \ + ../VNA_embedded/Application/Communication/Protocol.cpp \ + Calibration/amplitudecaldialog.cpp \ + Calibration/calibration.cpp \ + Calibration/calibrationtracedialog.cpp \ + Calibration/calkit.cpp \ + Calibration/calkitdialog.cpp \ + Calibration/manualcalibrationdialog.cpp \ + Calibration/measurementmodel.cpp \ + Calibration/receivercaldialog.cpp \ + Calibration/sourcecaldialog.cpp \ + CustomWidgets/colorpickerbutton.cpp \ + CustomWidgets/informationbox.cpp \ + CustomWidgets/jsonpickerdialog.cpp \ + CustomWidgets/siunitedit.cpp \ + CustomWidgets/tilewidget.cpp \ + CustomWidgets/toggleswitch.cpp \ + CustomWidgets/touchstoneimport.cpp \ + Device/device.cpp \ + Device/devicelog.cpp \ + Device/firmwareupdatedialog.cpp \ + Device/manualcontroldialog.cpp \ + Generator/generator.cpp \ + Generator/signalgenwidget.cpp \ + SpectrumAnalyzer/spectrumanalyzer.cpp \ + SpectrumAnalyzer/tracewidgetsa.cpp \ + Tools/eseries.cpp \ + Tools/impedancematchdialog.cpp \ + Tools/parameters.cpp \ + Traces/Math/dft.cpp \ + Traces/Math/expression.cpp \ + Traces/Math/medianfilter.cpp \ + Traces/Math/parser/mpError.cpp \ + Traces/Math/parser/mpFuncCmplx.cpp \ + Traces/Math/parser/mpFuncCommon.cpp \ + Traces/Math/parser/mpFuncMatrix.cpp \ + Traces/Math/parser/mpFuncNonCmplx.cpp \ + Traces/Math/parser/mpFuncStr.cpp \ + Traces/Math/parser/mpICallback.cpp \ + Traces/Math/parser/mpIOprt.cpp \ + Traces/Math/parser/mpIPackage.cpp \ + Traces/Math/parser/mpIToken.cpp \ + Traces/Math/parser/mpIValReader.cpp \ + Traces/Math/parser/mpIValue.cpp \ + Traces/Math/parser/mpIfThenElse.cpp \ + Traces/Math/parser/mpOprtBinAssign.cpp \ + Traces/Math/parser/mpOprtBinCommon.cpp \ + Traces/Math/parser/mpOprtCmplx.cpp \ + Traces/Math/parser/mpOprtIndex.cpp \ + Traces/Math/parser/mpOprtMatrix.cpp \ + Traces/Math/parser/mpOprtNonCmplx.cpp \ + Traces/Math/parser/mpOprtPostfixCommon.cpp \ + Traces/Math/parser/mpPackageCmplx.cpp \ + Traces/Math/parser/mpPackageCommon.cpp \ + Traces/Math/parser/mpPackageMatrix.cpp \ + Traces/Math/parser/mpPackageNonCmplx.cpp \ + Traces/Math/parser/mpPackageStr.cpp \ + Traces/Math/parser/mpPackageUnit.cpp \ + Traces/Math/parser/mpParser.cpp \ + Traces/Math/parser/mpParserBase.cpp \ + Traces/Math/parser/mpParserMessageProvider.cpp \ + Traces/Math/parser/mpRPN.cpp \ + Traces/Math/parser/mpScriptTokens.cpp \ + Traces/Math/parser/mpTest.cpp \ + Traces/Math/parser/mpTokenReader.cpp \ + Traces/Math/parser/mpValReader.cpp \ + Traces/Math/parser/mpValue.cpp \ + Traces/Math/parser/mpValueCache.cpp \ + Traces/Math/parser/mpVariable.cpp \ + Traces/Math/tdr.cpp \ + Traces/Math/tracemath.cpp \ + Traces/Math/windowfunction.cpp \ + Traces/fftcomplex.cpp \ + Traces/markerwidget.cpp \ + Traces/sparamtraceselector.cpp \ + Traces/trace.cpp \ + Traces/tracecsvexport.cpp \ + Traces/traceeditdialog.cpp \ + Traces/traceimportdialog.cpp \ + Traces/tracemarker.cpp \ + Traces/tracemarkermodel.cpp \ + Traces/tracemodel.cpp \ + Traces/traceplot.cpp \ + Traces/tracesmithchart.cpp \ + Traces/tracetouchstoneexport.cpp \ + Traces/tracewidget.cpp \ + Traces/tracexyplot.cpp \ + Traces/xyplotaxisdialog.cpp \ + VNA/Deembedding/deembedding.cpp \ + VNA/Deembedding/deembeddingdialog.cpp \ + VNA/Deembedding/deembeddingoption.cpp \ + VNA/Deembedding/manualdeembeddingdialog.cpp \ + VNA/Deembedding/matchingnetwork.cpp \ + VNA/Deembedding/portextension.cpp \ + VNA/Deembedding/twothru.cpp \ + VNA/tracewidgetvna.cpp \ + VNA/vna.cpp \ + appwindow.cpp \ + averaging.cpp \ + csv.cpp \ + main.cpp \ + mode.cpp \ + preferences.cpp \ + touchstone.cpp \ + unit.cpp + +LIBS += -lusb-1.0 +unix:LIBS += -L/usr/lib/ +win32:LIBS += -L"$$_PRO_FILE_PWD_" # Github actions placed libusb here +osx:INCPATH += /usr/local/include +osx:LIBS += $(shell pkg-config --libs libusb-1.0) + +QT += widgets + +FORMS += \ + Calibration/addamplitudepointsdialog.ui \ + Calibration/amplitudecaldialog.ui \ + Calibration/automaticamplitudedialog.ui \ + Calibration/calibrationtracedialog.ui \ + Calibration/calkitdialog.ui \ + Calibration/manualcalibrationdialog.ui \ + CustomWidgets/jsonpickerdialog.ui \ + CustomWidgets/tilewidget.ui \ + CustomWidgets/touchstoneimport.ui \ + Device/devicelog.ui \ + Device/firmwareupdatedialog.ui \ + Device/manualcontroldialog.ui \ + Generator/signalgenwidget.ui \ + Tools/impedancematchdialog.ui \ + Traces/Math/dftdialog.ui \ + Traces/Math/dftexplanationwidget.ui \ + Traces/Math/expressiondialog.ui \ + Traces/Math/expressionexplanationwidget.ui \ + Traces/Math/medianexplanationwidget.ui \ + Traces/Math/medianfilterdialog.ui \ + Traces/Math/newtracemathdialog.ui \ + Traces/Math/tdrdialog.ui \ + Traces/Math/tdrexplanationwidget.ui \ + Traces/markerwidget.ui \ + Traces/smithchartdialog.ui \ + Traces/tracecsvexport.ui \ + Traces/traceeditdialog.ui \ + Traces/traceimportdialog.ui \ + Traces/tracetouchstoneexport.ui \ + Traces/tracewidget.ui \ + Traces/xyplotaxisdialog.ui \ + VNA/Deembedding/deembeddingdialog.ui \ + VNA/Deembedding/manualdeembeddingdialog.ui \ + VNA/Deembedding/matchingnetworkdialog.ui \ + VNA/Deembedding/measurementdialog.ui \ + VNA/Deembedding/portextensioneditdialog.ui \ + VNA/Deembedding/twothrudialog.ui \ + VNA/s2pImportOptions.ui \ + main.ui \ + preferencesdialog.ui + +DISTFILES += + +RESOURCES += \ + icons.qrc + +CONFIG += c++17 +REVISION = $$system(git rev-parse HEAD) +DEFINES += GITHASH=\\"\"$$REVISION\\"\" +DEFINES += FW_MAJOR=0 FW_MINOR=1 FW_PATCH=0 FW_SUFFIX=\\"\"-alpha.2\\"\" +DEFINES -= _UNICODE UNICODE diff --git a/Software/PC_Application/appwindow.cpp b/Software/PC_Application/appwindow.cpp index 5cf5755..da103d8 100644 --- a/Software/PC_Application/appwindow.cpp +++ b/Software/PC_Application/appwindow.cpp @@ -47,7 +47,7 @@ #include "Calibration/sourcecaldialog.h" #include "Calibration/receivercaldialog.h" #include - +#include "CustomWidgets/jsonpickerdialog.h" using namespace std; AppWindow::AppWindow(QWidget *parent) @@ -55,8 +55,8 @@ AppWindow::AppWindow(QWidget *parent) , deviceActionGroup(new QActionGroup(this)) , ui(new Ui::MainWindow) { - QCoreApplication::setOrganizationName("VNA"); - QCoreApplication::setApplicationName("Application"); + QCoreApplication::setOrganizationName("LibreVNA"); + QCoreApplication::setApplicationName("LibreVNA-GUI"); qSetMessagePattern("%{time process}: [%{type}] %{message}"); @@ -165,7 +165,7 @@ AppWindow::AppWindow(QWidget *parent) + "." + QString::number(FW_PATCH) + FW_SUFFIX + " ("+ commit+")"); }); - setWindowTitle("VNA"); + setWindowTitle("LibreVNA-GUI"); setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); @@ -429,6 +429,8 @@ nlohmann::json AppWindow::SaveSetup() void AppWindow::LoadSetup(nlohmann::json j) { +// auto d = new JSONPickerDialog(j); +// d->exec(); vna->fromJSON(j["VNA"]); generator->fromJSON(j["Generator"]); spectrumAnalyzer->fromJSON(j["SpectrumAnalyzer"]);