From 00b3ae29d9920fc2e1da7c9ee4c29d24492991d2 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 4 Oct 2021 02:11:27 +0200 Subject: [PATCH] GS232 Controller API: added serial devices to report + fixes --- .../gs232controller/gs232controller.cpp | 21 +++++++++++++- sdrbase/resources/webapi/doc/html2/index.html | 9 +++++- .../doc/swagger/include/GS232Controller.yaml | 5 ++++ .../api/swagger/include/GS232Controller.yaml | 5 ++++ swagger/sdrangel/code/html2/index.html | 9 +++++- .../qt5/client/SWGGS232ControllerReport.cpp | 29 +++++++++++++++++++ .../qt5/client/SWGGS232ControllerReport.h | 6 ++++ 7 files changed, 81 insertions(+), 3 deletions(-) diff --git a/plugins/feature/gs232controller/gs232controller.cpp b/plugins/feature/gs232controller/gs232controller.cpp index 565594cba..47653c050 100644 --- a/plugins/feature/gs232controller/gs232controller.cpp +++ b/plugins/feature/gs232controller/gs232controller.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "SWGFeatureSettings.h" #include "SWGFeatureReport.h" @@ -402,6 +403,8 @@ void GS232Controller::webapiFormatFeatureSettings( } response.getGs232ControllerSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getGs232ControllerSettings()->setReverseApiFeatureSetIndex(settings.m_reverseAPIFeatureSetIndex); + response.getGs232ControllerSettings()->setReverseApiFeatureIndex(settings.m_reverseAPIFeatureIndex); } void GS232Controller::webapiUpdateFeatureSettings( @@ -419,7 +422,7 @@ void GS232Controller::webapiUpdateFeatureSettings( settings.m_serialPort = *response.getGs232ControllerSettings()->getSerialPort(); } if (featureSettingsKeys.contains("baudRate")) { - settings.m_serialPort = response.getGs232ControllerSettings()->getBaudRate(); + settings.m_baudRate = response.getGs232ControllerSettings()->getBaudRate(); } if (featureSettingsKeys.contains("track")) { settings.m_track = response.getGs232ControllerSettings()->getTrack() != 0; @@ -466,6 +469,12 @@ void GS232Controller::webapiUpdateFeatureSettings( if (featureSettingsKeys.contains("reverseAPIPort")) { settings.m_reverseAPIPort = response.getGs232ControllerSettings()->getReverseApiPort(); } + if (featureSettingsKeys.contains("reverseAPIFeatureSetIndex")) { + settings.m_reverseAPIFeatureSetIndex = response.getGs232ControllerSettings()->getReverseApiFeatureSetIndex(); + } + if (featureSettingsKeys.contains("reverseAPIFeatureIndex")) { + settings.m_reverseAPIFeatureIndex = response.getGs232ControllerSettings()->getReverseApiFeatureIndex(); + } } void GS232Controller::webapiReverseSendSettings(QList& featureSettingsKeys, const GS232ControllerSettings& settings, bool force) @@ -555,6 +564,16 @@ void GS232Controller::webapiFormatFeatureReport(SWGSDRangel::SWGFeatureReport& r for (int i = 0; i < m_availablePipes.size(); i++) { response.getGs232ControllerReport()->getSources()->append(new QString(m_availablePipes.at(i).getName())); } + + QList serialPorts = QSerialPortInfo::availablePorts(); + QListIterator i(serialPorts); + response.getGs232ControllerReport()->setSerialPorts(new QList()); + + while (i.hasNext()) + { + QSerialPortInfo info = i.next(); + response.getGs232ControllerReport()->getSerialPorts()->append(new QString(info.portName())); + } } void GS232Controller::networkManagerFinished(QNetworkReply *reply) diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index ee1379d11..42c62ff59 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -5780,6 +5780,13 @@ margin-bottom: 20px; "items" : { "type" : "string" } + }, + "serialPorts" : { + "type" : "array", + "description" : "Available serial ports", + "items" : { + "type" : "string" + } } }, "description" : "GS-232 Controller report" @@ -50595,7 +50602,7 @@ except ApiException as e:
- Generated 2021-10-03T22:30:03.018+02:00 + Generated 2021-10-04T00:59:39.001+02:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/GS232Controller.yaml b/sdrbase/resources/webapi/doc/swagger/include/GS232Controller.yaml index 384d88dfe..7ac79be42 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/GS232Controller.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/GS232Controller.yaml @@ -69,3 +69,8 @@ GS232ControllerReport: type: array items: type: string + serialPorts: + description: Available serial ports + type: array + items: + type: string diff --git a/swagger/sdrangel/api/swagger/include/GS232Controller.yaml b/swagger/sdrangel/api/swagger/include/GS232Controller.yaml index 384d88dfe..7ac79be42 100644 --- a/swagger/sdrangel/api/swagger/include/GS232Controller.yaml +++ b/swagger/sdrangel/api/swagger/include/GS232Controller.yaml @@ -69,3 +69,8 @@ GS232ControllerReport: type: array items: type: string + serialPorts: + description: Available serial ports + type: array + items: + type: string diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html index ee1379d11..42c62ff59 100644 --- a/swagger/sdrangel/code/html2/index.html +++ b/swagger/sdrangel/code/html2/index.html @@ -5780,6 +5780,13 @@ margin-bottom: 20px; "items" : { "type" : "string" } + }, + "serialPorts" : { + "type" : "array", + "description" : "Available serial ports", + "items" : { + "type" : "string" + } } }, "description" : "GS-232 Controller report" @@ -50595,7 +50602,7 @@ except ApiException as e:
- Generated 2021-10-03T22:30:03.018+02:00 + Generated 2021-10-04T00:59:39.001+02:00
diff --git a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerReport.cpp b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerReport.cpp index 39ef54830..da748f981 100644 --- a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerReport.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerReport.cpp @@ -30,6 +30,8 @@ SWGGS232ControllerReport::SWGGS232ControllerReport(QString* json) { SWGGS232ControllerReport::SWGGS232ControllerReport() { sources = nullptr; m_sources_isSet = false; + serial_ports = nullptr; + m_serial_ports_isSet = false; } SWGGS232ControllerReport::~SWGGS232ControllerReport() { @@ -40,6 +42,8 @@ void SWGGS232ControllerReport::init() { sources = new QList(); m_sources_isSet = false; + serial_ports = new QList(); + m_serial_ports_isSet = false; } void @@ -51,6 +55,13 @@ SWGGS232ControllerReport::cleanup() { } delete sources; } + if(serial_ports != nullptr) { + auto arr = serial_ports; + for(auto o: *arr) { + delete o; + } + delete serial_ports; + } } SWGGS232ControllerReport* @@ -66,6 +77,8 @@ void SWGGS232ControllerReport::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&sources, pJson["sources"], "QList", "QString"); + + ::SWGSDRangel::setValue(&serial_ports, pJson["serialPorts"], "QList", "QString"); } QString @@ -85,6 +98,9 @@ SWGGS232ControllerReport::asJsonObject() { if(sources && sources->size() > 0){ toJsonArray((QList*)sources, obj, "sources", "QString"); } + if(serial_ports && serial_ports->size() > 0){ + toJsonArray((QList*)serial_ports, obj, "serialPorts", "QString"); + } return obj; } @@ -99,6 +115,16 @@ SWGGS232ControllerReport::setSources(QList* sources) { this->m_sources_isSet = true; } +QList* +SWGGS232ControllerReport::getSerialPorts() { + return serial_ports; +} +void +SWGGS232ControllerReport::setSerialPorts(QList* serial_ports) { + this->serial_ports = serial_ports; + this->m_serial_ports_isSet = true; +} + bool SWGGS232ControllerReport::isSet(){ @@ -107,6 +133,9 @@ SWGGS232ControllerReport::isSet(){ if(sources && (sources->size() > 0)){ isObjectUpdated = true; break; } + if(serial_ports && (serial_ports->size() > 0)){ + isObjectUpdated = true; break; + } }while(false); return isObjectUpdated; } diff --git a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerReport.h b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerReport.h index 1db20de97..6f5268133 100644 --- a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerReport.h +++ b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerReport.h @@ -46,6 +46,9 @@ public: QList* getSources(); void setSources(QList* sources); + QList* getSerialPorts(); + void setSerialPorts(QList* serial_ports); + virtual bool isSet() override; @@ -53,6 +56,9 @@ private: QList* sources; bool m_sources_isSet; + QList* serial_ports; + bool m_serial_ports_isSet; + }; }