GS232 Controller API: added serial devices to report + fixes

This commit is contained in:
f4exb 2021-10-04 02:11:27 +02:00
parent f5e14f6502
commit 00b3ae29d9
7 changed files with 81 additions and 3 deletions

View File

@ -21,6 +21,7 @@
#include <QNetworkReply>
#include <QBuffer>
#include <QRegExp>
#include <QSerialPortInfo>
#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<QString>& 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<QSerialPortInfo> serialPorts = QSerialPortInfo::availablePorts();
QListIterator<QSerialPortInfo> i(serialPorts);
response.getGs232ControllerReport()->setSerialPorts(new QList<QString*>());
while (i.hasNext())
{
QSerialPortInfo info = i.next();
response.getGs232ControllerReport()->getSerialPorts()->append(new QString(info.portName()));
}
}
void GS232Controller::networkManagerFinished(QNetworkReply *reply)

View File

@ -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:
</div>
<div id="generator">
<div class="content">
Generated 2021-10-03T22:30:03.018+02:00
Generated 2021-10-04T00:59:39.001+02:00
</div>
</div>
</div>

View File

@ -69,3 +69,8 @@ GS232ControllerReport:
type: array
items:
type: string
serialPorts:
description: Available serial ports
type: array
items:
type: string

View File

@ -69,3 +69,8 @@ GS232ControllerReport:
type: array
items:
type: string
serialPorts:
description: Available serial ports
type: array
items:
type: string

View File

@ -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:
</div>
<div id="generator">
<div class="content">
Generated 2021-10-03T22:30:03.018+02:00
Generated 2021-10-04T00:59:39.001+02:00
</div>
</div>
</div>

View File

@ -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<QString*>();
m_sources_isSet = false;
serial_ports = new QList<QString*>();
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<void*>*)sources, obj, "sources", "QString");
}
if(serial_ports && serial_ports->size() > 0){
toJsonArray((QList<void*>*)serial_ports, obj, "serialPorts", "QString");
}
return obj;
}
@ -99,6 +115,16 @@ SWGGS232ControllerReport::setSources(QList<QString*>* sources) {
this->m_sources_isSet = true;
}
QList<QString*>*
SWGGS232ControllerReport::getSerialPorts() {
return serial_ports;
}
void
SWGGS232ControllerReport::setSerialPorts(QList<QString*>* 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;
}

View File

@ -46,6 +46,9 @@ public:
QList<QString*>* getSources();
void setSources(QList<QString*>* sources);
QList<QString*>* getSerialPorts();
void setSerialPorts(QList<QString*>* serial_ports);
virtual bool isSet() override;
@ -53,6 +56,9 @@ private:
QList<QString*>* sources;
bool m_sources_isSet;
QList<QString*>* serial_ports;
bool m_serial_ports_isSet;
};
}