diff --git a/plugins/feature/limerfe/limerfe.cpp b/plugins/feature/limerfe/limerfe.cpp index 1c108f023..4a9c9127a 100644 --- a/plugins/feature/limerfe/limerfe.cpp +++ b/plugins/feature/limerfe/limerfe.cpp @@ -20,14 +20,20 @@ #include "SWGDeviceState.h" #include "SWGErrorResponse.h" +#include "SWGFeatureSettings.h" +#include "SWGFeatureReport.h" +#include "SWGFeatureActions.h" #include "util/simpleserializer.h" #include "util/serialutil.h" +#include "settings/serializable.h" #include "webapi/webapiadapterinterface.h" #include "limerfe.h" MESSAGE_CLASS_DEFINITION(LimeRFE::MsgConfigureLimeRFE, Message) +MESSAGE_CLASS_DEFINITION(LimeRFE::MsgReportSetRx, Message) +MESSAGE_CLASS_DEFINITION(LimeRFE::MsgReportSetTx, Message) const char* const LimeRFE::m_featureIdURI = "sdrangel.feature.limerfe"; const char* const LimeRFE::m_featureId = "LimeRFE"; @@ -99,9 +105,23 @@ void LimeRFE::listComPorts() } } +void LimeRFE::applySettings(const LimeRFESettings& settings, bool force) +{ + (void) force; + m_settings = settings; +} + bool LimeRFE::handleMessage(const Message& cmd) { - (void) cmd; + if (MsgConfigureLimeRFE::match(cmd)) + { + MsgConfigureLimeRFE& cfg = (MsgConfigureLimeRFE&) cmd; + qDebug() << "LimeRFE::handleMessage: MsgConfigureLimeRFE"; + applySettings(cfg.getSettings(), cfg.getForce()); + + return true; + } + return false; } @@ -257,15 +277,30 @@ int LimeRFE::setRx(LimeRFESettings& settings, bool rxOn) return -1; } - int mode = rxOn && settings.m_txOn ? - RFE_MODE_TXRX : rxOn ? - RFE_MODE_RX : settings.m_txOn ? - RFE_MODE_TX : RFE_MODE_NONE; + int mode = RFE_MODE_NONE; + if (rxOn) + { + if (settings.m_txOn) { + mode = RFE_MODE_TXRX; + } else { + mode = RFE_MODE_RX; + } + } + else + { + if (settings.m_txOn) { + mode = RFE_MODE_TX; + } + } + + qDebug("LimeRFE::setRx: switch %s mode: %d", rxOn ? "on" : "off", mode); int rc = RFE_Mode(m_rfeDevice, mode); if (rc == 0) { settings.m_rxOn = rxOn; + } else { + qInfo("LimeRFE::setRx: %s", getError(rc).c_str()); } return rc; @@ -277,15 +312,30 @@ int LimeRFE::setTx(LimeRFESettings& settings, bool txOn) return -1; } - int mode = txOn && settings.m_rxOn ? - RFE_MODE_TXRX : txOn ? - RFE_MODE_TX : settings.m_rxOn ? - RFE_MODE_RX : RFE_MODE_NONE; + int mode = RFE_MODE_NONE; + if (txOn) + { + if (settings.m_rxOn) { + mode = RFE_MODE_TXRX; + } else { + mode = RFE_MODE_TX; + } + } + else + { + if (settings.m_rxOn) { + mode = RFE_MODE_RX; + } + } + + qDebug("LimeRFE::setTx: switch %s mode: %d", txOn ? "on" : "off", mode); int rc = RFE_Mode(m_rfeDevice, mode); if (rc == 0) { settings.m_txOn = txOn; + } else { + qInfo("LimeRFE::setTx: %s", getError(rc).c_str()); } return rc; @@ -714,3 +764,339 @@ void LimeRFE::networkManagerFinished(QNetworkReply *reply) reply->deleteLater(); } + +int LimeRFE::webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + response.setLimeRfeSettings(new SWGSDRangel::SWGLimeRFESettings()); + response.getLimeRfeSettings()->init(); + webapiFormatFeatureSettings(response, m_settings); + return 200; +} + +int LimeRFE::webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage) +{ + (void) errorMessage; + LimeRFESettings settings = m_settings; + webapiUpdateFeatureSettings(settings, featureSettingsKeys, response); + + MsgConfigureLimeRFE *msg = MsgConfigureLimeRFE::create(settings, force); + m_inputMessageQueue.push(msg); + + qDebug("LimeRFE::webapiSettingsPutPatch: forward to GUI: %p", m_guiMessageQueue); + if (m_guiMessageQueue) // forward to GUI if any + { + MsgConfigureLimeRFE *msgToGUI = MsgConfigureLimeRFE::create(settings, true); + m_guiMessageQueue->push(msgToGUI); + } + + webapiFormatFeatureSettings(response, settings); + + return 200; +} + +int LimeRFE::webapiReportGet( + SWGSDRangel::SWGFeatureReport& response, + QString& errorMessage) +{ + response.setLimeRfeReport(new SWGSDRangel::SWGLimeRFEReport()); + response.getLimeRfeReport()->init(); + return webapiFormatFeatureReport(response, errorMessage); +} + +int LimeRFE::webapiActionsPost( + const QStringList& featureActionsKeys, + SWGSDRangel::SWGFeatureActions& query, + QString& errorMessage) +{ + SWGSDRangel::SWGLimeRFEActions *swgLimeRFEActions = query.getLimeRfeActions(); + + if (swgLimeRFEActions) + { + bool unknownAction = true; + int channel = -1; + int deviceSetIndex = -1; + + if (featureActionsKeys.contains("selectChannel")) + { + channel = swgLimeRFEActions->getSelectChannel(); + unknownAction = false; + } + + if (featureActionsKeys.contains("deviceSetIndex")) + { + deviceSetIndex = swgLimeRFEActions->getDeviceSetIndex(); + unknownAction = false; + } + + if (featureActionsKeys.contains("openCloseDevice") && (swgLimeRFEActions->getOpenCloseDevice() != 0)) + { + int rc = openDevice(m_settings.m_devicePath.toStdString()); + unknownAction = false; + + if (rc != 0) + { + errorMessage = QString("Open %1: %2").arg(m_settings.m_devicePath).arg(getError(rc).c_str()); + return 500; + } + } + + if (featureActionsKeys.contains("fromToSettings") && (swgLimeRFEActions->getFromToSettings() != 0)) + { + settingsToState(m_settings); + unknownAction = false; + } + + if ((channel >= 0) && featureActionsKeys.contains("switchChannel")) + { + if (channel == 0) + { + bool on = swgLimeRFEActions->getSwitchChannel() != 0; + int rc = setRx(m_settings, on); + + if (rc != 0) + { + errorMessage = QString("Set Rx %1 %2: %3").arg(m_settings.m_devicePath).arg(on).arg(getError(rc).c_str()); + return 500; + } + + if (getMessageQueueToGUI()) + { + MsgConfigureLimeRFE *msg = MsgConfigureLimeRFE::create(m_settings, false); + getMessageQueueToGUI()->push(msg); + } + } + else + { + bool on = swgLimeRFEActions->getSwitchChannel() != 0; + int rc = setTx(m_settings, swgLimeRFEActions->getSwitchChannel() != 0); + + if (rc != 0) + { + errorMessage = QString("Set Tx %1 %2: %3").arg(m_settings.m_devicePath).arg(on).arg(getError(rc).c_str()); + return 500; + } + + if (getMessageQueueToGUI()) + { + MsgConfigureLimeRFE *msg = MsgConfigureLimeRFE::create(m_settings, false); + getMessageQueueToGUI()->push(msg); + } + } + + if (deviceSetIndex >= 0) { + turnDevice(deviceSetIndex, swgLimeRFEActions->getSwitchChannel() != 0); + } + + unknownAction = false; + } + + if (featureActionsKeys.contains("fromToSettings") && (swgLimeRFEActions->getFromToSettings() == 0)) + { + stateToSettings(m_settings); + unknownAction = false; + + if (getMessageQueueToGUI()) + { + MsgConfigureLimeRFE *msg = MsgConfigureLimeRFE::create(m_settings, false); + getMessageQueueToGUI()->push(msg); + } + } + + if (featureActionsKeys.contains("openCloseDevice") && (swgLimeRFEActions->getOpenCloseDevice() == 0)) + { + closeDevice(); + unknownAction = false; + } + + if (unknownAction) + { + errorMessage = "Unknown action"; + return 400; + } + else + { + return 202; + } + } + else + { + errorMessage = "Missing SimplePTTActions in query"; + return 400; + } +} + +void LimeRFE::webapiFormatFeatureSettings( + SWGSDRangel::SWGFeatureSettings& response, + const LimeRFESettings& settings) +{ + if (response.getLimeRfeSettings()->getTitle()) { + *response.getLimeRfeSettings()->getTitle() = settings.m_title; + } else { + response.getLimeRfeSettings()->setTitle(new QString(settings.m_title)); + } + + response.getLimeRfeSettings()->setRgbColor(settings.m_rgbColor); + response.getLimeRfeSettings()->setDevicePath(new QString(settings.m_devicePath)); + response.getLimeRfeSettings()->setRxChannels((int) settings.m_rxChannels); + response.getLimeRfeSettings()->setRxWidebandChannel((int) settings.m_rxWidebandChannel); + response.getLimeRfeSettings()->setRxHamChannel((int) settings.m_rxHAMChannel); + response.getLimeRfeSettings()->setRxCellularChannel((int) settings.m_rxCellularChannel); + response.getLimeRfeSettings()->setRxPort((int) settings.m_rxPort); + response.getLimeRfeSettings()->setRxOn(settings.m_rxOn ? 1 : 0); + response.getLimeRfeSettings()->setAmfmNotch(settings.m_amfmNotch ? 1 : 0); + response.getLimeRfeSettings()->setAttenuationFactor(settings.m_attenuationFactor); + response.getLimeRfeSettings()->setTxChannels((int) settings.m_txChannels); + response.getLimeRfeSettings()->setTxWidebandChannel((int) settings.m_txWidebandChannel); + response.getLimeRfeSettings()->setTxHamChannel((int) settings.m_txHAMChannel); + response.getLimeRfeSettings()->setTxCellularChannel((int) settings.m_txCellularChannel); + response.getLimeRfeSettings()->setTxPort((int) settings.m_txPort); + response.getLimeRfeSettings()->setTxOn(settings.m_txOn ? 1 : 0); + response.getLimeRfeSettings()->setSwrEnable(settings.m_swrEnable ? 1 : 0); + response.getLimeRfeSettings()->setSwrSource((int) settings.m_swrSource); + response.getLimeRfeSettings()->setTxRxDriven(settings.m_txRxDriven ? 1 : 0); + + response.getLimeRfeSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + + if (response.getLimeRfeSettings()->getReverseApiAddress()) { + *response.getLimeRfeSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + } else { + response.getLimeRfeSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + } + + response.getLimeRfeSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getLimeRfeSettings()->setReverseApiFeatureSetIndex(settings.m_reverseAPIFeatureSetIndex); + response.getLimeRfeSettings()->setReverseApiFeatureIndex(settings.m_reverseAPIFeatureIndex); + + if (settings.m_rollupState) + { + if (response.getLimeRfeSettings()->getRollupState()) + { + settings.m_rollupState->formatTo(response.getLimeRfeSettings()->getRollupState()); + } + else + { + SWGSDRangel::SWGRollupState *swgRollupState = new SWGSDRangel::SWGRollupState(); + settings.m_rollupState->formatTo(swgRollupState); + response.getLimeRfeSettings()->setRollupState(swgRollupState); + } + } +} + +void LimeRFE::webapiUpdateFeatureSettings( + LimeRFESettings& settings, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response) +{ + if (featureSettingsKeys.contains("title")) { + settings.m_title = *response.getLimeRfeSettings()->getTitle(); + } + if (featureSettingsKeys.contains("rgbColor")) { + settings.m_rgbColor = response.getLimeRfeSettings()->getRgbColor(); + } + if (featureSettingsKeys.contains("devicePath")) { + settings.m_devicePath = *response.getLimeRfeSettings()->getDevicePath(); + } + if (featureSettingsKeys.contains("rxChannels")) { + settings.m_rxChannels = (LimeRFESettings::ChannelGroups) response.getLimeRfeSettings()->getRxChannels(); + } + if (featureSettingsKeys.contains("rxWidebandChannel")) { + settings.m_rxWidebandChannel = (LimeRFESettings::WidebandChannel) response.getLimeRfeSettings()->getRxWidebandChannel(); + } + if (featureSettingsKeys.contains("rxHAMChannel")) { + settings.m_rxHAMChannel = (LimeRFESettings::HAMChannel) response.getLimeRfeSettings()->getRxHamChannel(); + } + if (featureSettingsKeys.contains("rxCellularChannel")) { + settings.m_rxCellularChannel = (LimeRFESettings::CellularChannel) response.getLimeRfeSettings()->getRxCellularChannel(); + } + if (featureSettingsKeys.contains("rxPort")) { + settings.m_rxPort = (LimeRFESettings::RxPort) response.getLimeRfeSettings()->getRxPort(); + } + if (featureSettingsKeys.contains("rxOn")) { + settings.m_rxOn = response.getLimeRfeSettings()->getRxOn() != 0; + } + if (featureSettingsKeys.contains("amfmNotch")) { + settings.m_amfmNotch = response.getLimeRfeSettings()->getAmfmNotch() != 0; + } + if (featureSettingsKeys.contains("attenuationFactor")) { + settings.m_attenuationFactor = response.getLimeRfeSettings()->getAttenuationFactor(); + } + if (featureSettingsKeys.contains("txChannels")) { + settings.m_txChannels = (LimeRFESettings::ChannelGroups) response.getLimeRfeSettings()->getTxChannels(); + } + if (featureSettingsKeys.contains("txWidebandChannel")) { + settings.m_txWidebandChannel = (LimeRFESettings::WidebandChannel) response.getLimeRfeSettings()->getTxWidebandChannel(); + } + if (featureSettingsKeys.contains("txHAMChannel")) { + settings.m_txHAMChannel = (LimeRFESettings::HAMChannel) response.getLimeRfeSettings()->getTxHamChannel(); + } + if (featureSettingsKeys.contains("txCellularChannel")) { + settings.m_txCellularChannel = (LimeRFESettings::CellularChannel) response.getLimeRfeSettings()->getTxCellularChannel(); + } + if (featureSettingsKeys.contains("txPort")) { + settings.m_txPort = (LimeRFESettings::TxPort) response.getLimeRfeSettings()->getTxPort(); + } + if (featureSettingsKeys.contains("txOn")) { + settings.m_txOn = response.getLimeRfeSettings()->getTxOn() != 0; + } + if (featureSettingsKeys.contains("swrEnable")) { + settings.m_swrEnable = response.getLimeRfeSettings()->getSwrEnable() != 0; + } + if (featureSettingsKeys.contains("swrSource")) { + settings.m_swrSource = (LimeRFESettings::SWRSource) response.getLimeRfeSettings()->getSwrSource(); + } + if (featureSettingsKeys.contains("txRxDriven")) { + settings.m_txRxDriven = response.getLimeRfeSettings()->getTxRxDriven() != 0; + } + if (featureSettingsKeys.contains("useReverseAPI")) { + settings.m_useReverseAPI = response.getLimeRfeSettings()->getUseReverseApi() != 0; + } + if (featureSettingsKeys.contains("reverseAPIAddress")) { + settings.m_reverseAPIAddress = *response.getLimeRfeSettings()->getReverseApiAddress(); + } + if (featureSettingsKeys.contains("reverseAPIPort")) { + settings.m_reverseAPIPort = response.getLimeRfeSettings()->getReverseApiPort(); + } + if (featureSettingsKeys.contains("reverseAPIFeatureSetIndex")) { + settings.m_reverseAPIFeatureSetIndex = response.getLimeRfeSettings()->getReverseApiFeatureSetIndex(); + } + if (featureSettingsKeys.contains("reverseAPIFeatureIndex")) { + settings.m_reverseAPIFeatureIndex = response.getLimeRfeSettings()->getReverseApiFeatureIndex(); + } + if (settings.m_rollupState && featureSettingsKeys.contains("rollupState")) { + settings.m_rollupState->updateFrom(featureSettingsKeys, response.getLimeRfeSettings()->getRollupState()); + } +} + +int LimeRFE::webapiFormatFeatureReport(SWGSDRangel::SWGFeatureReport& response, QString& errorMessage) +{ + int fwdPower; + int rc = getFwdPower(fwdPower); + + if (rc != 0) + { + errorMessage = QString("Error getting forward power from LimeRFE device %1: %2") + .arg(m_settings.m_devicePath).arg(getError(rc).c_str()); + return 500; + } + + int refPower; + rc = getRefPower(refPower); + + if (rc != 0) + { + errorMessage = QString("Error getting reflected power from LimeRFE device %1: %2") + .arg(m_settings.m_devicePath).arg(getError(rc).c_str()); + return 500; + } + + response.getLimeRfeReport()->setForwardPower(fwdPower); + response.getLimeRfeReport()->setReflectedPower(refPower); + return 200; +} diff --git a/plugins/feature/limerfe/limerfe.h b/plugins/feature/limerfe/limerfe.h index e55c57956..e224fd87a 100644 --- a/plugins/feature/limerfe/limerfe.h +++ b/plugins/feature/limerfe/limerfe.h @@ -59,6 +59,44 @@ public: { } }; + class MsgReportSetRx : public Message { + MESSAGE_CLASS_DECLARATION + + public: + bool isOn() const { return m_on; } + + static MsgReportSetRx* create(bool on) { + return new MsgReportSetRx(on); + } + + private: + bool m_on; + + MsgReportSetRx(bool on) : + Message(), + m_on(on) + { } + }; + + class MsgReportSetTx : public Message { + MESSAGE_CLASS_DECLARATION + + public: + bool isOn() const { return m_on; } + + static MsgReportSetTx* create(bool on) { + return new MsgReportSetTx(on); + } + + private: + bool m_on; + + MsgReportSetTx(bool on) : + Message(), + m_on(on) + { } + }; + LimeRFE(WebAPIAdapterInterface *webAPIAdapterInterface); virtual ~LimeRFE(); virtual void destroy() { delete this; } @@ -71,6 +109,34 @@ public: virtual QByteArray serialize() const; virtual bool deserialize(const QByteArray& data); + virtual int webapiSettingsGet( + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiSettingsPutPatch( + bool force, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response, + QString& errorMessage); + + virtual int webapiReportGet( + SWGSDRangel::SWGFeatureReport& response, + QString& errorMessage); + + virtual int webapiActionsPost( + const QStringList& featureActionsKeys, + SWGSDRangel::SWGFeatureActions& query, + QString& errorMessage); + + static void webapiFormatFeatureSettings( + SWGSDRangel::SWGFeatureSettings& response, + const LimeRFESettings& settings); + + static void webapiUpdateFeatureSettings( + LimeRFESettings& settings, + const QStringList& featureSettingsKeys, + SWGSDRangel::SWGFeatureSettings& response); + LimeRFEUSBCalib *getCalib() { return &m_calib; } int openDevice(const std::string& serialDeviceName); @@ -108,6 +174,8 @@ private: void start(); void stop(); void listComPorts(); + void applySettings(const LimeRFESettings& settings, bool force = false); + int webapiFormatFeatureReport(SWGSDRangel::SWGFeatureReport& response, QString& errorMessage); private slots: void networkManagerFinished(QNetworkReply *reply); diff --git a/plugins/feature/limerfe/limerfegui.cpp b/plugins/feature/limerfe/limerfegui.cpp index 496fa88df..05c5fabe5 100644 --- a/plugins/feature/limerfe/limerfegui.cpp +++ b/plugins/feature/limerfe/limerfegui.cpp @@ -980,6 +980,33 @@ void LimeRFEGUI::tick() refreshPower(); } +bool LimeRFEGUI::handleMessage(const Message& message) +{ + if (LimeRFE::MsgConfigureLimeRFE::match(message)) + { + qDebug("LimeRFEGUI::handleMessage: LimeRFE::MsgConfigureLimeRFE"); + const LimeRFE::MsgConfigureLimeRFE& cfg = (LimeRFE::MsgConfigureLimeRFE&) message; + m_settings = cfg.getSettings(); + displaySettings(); + highlightApplyButton(cfg.getForce()); + return true; + } + + return false; +} + +void LimeRFEGUI::handleInputMessages() +{ + Message* message; + + while ((message = getInputMessageQueue()->pop())) + { + if (handleMessage(*message)) { + delete message; + } + } +} + void LimeRFEGUI::makeUIConnections() { QObject::connect(ui->openDevice, &QPushButton::clicked, this, &LimeRFEGUI::on_openDevice_clicked); diff --git a/plugins/feature/limerfe/limerfegui.h b/plugins/feature/limerfe/limerfegui.h index 6646ce788..1d6688aea 100644 --- a/plugins/feature/limerfe/limerfegui.h +++ b/plugins/feature/limerfe/limerfegui.h @@ -100,11 +100,13 @@ private: void stopStartTx(bool start); void syncRxTx(); void highlightApplyButton(bool highlight); + bool handleMessage(const Message& message); void makeUIConnections(); private slots: void onMenuDialogCalled(const QPoint &p); void onWidgetRolled(QWidget* widget, bool rollDown); + void handleInputMessages(); void on_openDevice_clicked(); void on_closeDevice_clicked(); void on_deviceToGUI_clicked(); diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index b9bec83ab..7e220ddf6 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -5273,6 +5273,9 @@ margin-bottom: 20px; "GS232ControllerActions" : { "$ref" : "#/definitions/GS232ControllerActions" }, + "LimeRFEActions" : { + "$ref" : "#/definitions/LimeRFEActions" + }, "MapActions" : { "$ref" : "#/definitions/MapActions" }, @@ -5409,6 +5412,9 @@ margin-bottom: 20px; "GS232ControllerReport" : { "$ref" : "#/definitions/GS232ControllerReport" }, + "LimeRFEReport" : { + "$ref" : "#/definitions/LimeRFEReport" + }, "MapReport" : { "$ref" : "#/definitions/MapReport" }, @@ -5504,6 +5510,9 @@ margin-bottom: 20px; "GS232ControllerSettings" : { "$ref" : "#/definitions/GS232ControllerSettings" }, + "LimeRFESettings" : { + "$ref" : "#/definitions/LimeRFESettings" + }, "MapSettings" : { "$ref" : "#/definitions/MapSettings" }, @@ -7069,6 +7078,30 @@ margin-bottom: 20px; } }, "description" : "KiwiSDR" +}; + defs.LimeRFEActions = { + "properties" : { + "selectChannel" : { + "type" : "integer", + "description" : "Select channel\n * 0 - Rx\n * 1 - Tx\n" + }, + "deviceSetIndex" : { + "type" : "integer" + }, + "switchChannel" : { + "type" : "integer", + "description" : "Switch on or off\n * 0 - Off\n * 1 - On\n" + }, + "fromToSettings" : { + "type" : "integer", + "description" : "Move from/to settings to/from device\n * 0 - From device to settings. The toGUI button in GUI mode\n * 1 - From settings to device. The Apply button in GUI mode\n" + }, + "openCloseDevice" : { + "type" : "integer", + "description" : "Open or close device\n * 0 - Close device\n * 1 - Open device\n" + } + }, + "description" : "LimeRFE" }; defs.LimeRFEDevice = { "properties" : { @@ -7107,10 +7140,29 @@ margin-bottom: 20px; "description" : "relative reflected power in centi-Bels" } }, - "description" : "report of forward and reflected power measurements" + "description" : "report of forward and reflected power measurements TO BE DECOMMISSIONED" +}; + defs.LimeRFEReport = { + "properties" : { + "forwardPower" : { + "type" : "integer", + "description" : "relative forward power in centi-Bels" + }, + "reflectedPower" : { + "type" : "integer", + "description" : "relative reflected power in centi-Bels" + } + }, + "description" : "LimeRFE" }; defs.LimeRFESettings = { "properties" : { + "title" : { + "type" : "string" + }, + "rgbColor" : { + "type" : "integer" + }, "devicePath" : { "type" : "string", "description" : "Path to the device serial interface (ex /dev/ttyUSB2)" @@ -7170,6 +7222,10 @@ margin-bottom: 20px; "type" : "integer", "description" : "SWR measurement source (LimeRFEController::SWRSource)\n * 0 - External\n * 1 - Cellular\n" }, + "txRxDriven" : { + "type" : "integer", + "description" : "Boolean 1 if Tx is copy of Rx else 0" + }, "rxOn" : { "type" : "integer", "description" : "Boolean 1 if Rx is active else 0" @@ -7177,6 +7233,25 @@ margin-bottom: 20px; "txOn" : { "type" : "integer", "description" : "Boolean 1 if Tx is active else 0" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIFeatureSetIndex" : { + "type" : "integer" + }, + "reverseAPIFeatureIndex" : { + "type" : "integer" + }, + "rollupState" : { + "$ref" : "#/definitions/RollupState" } }, "description" : "LimeRFE" @@ -59698,7 +59773,7 @@ except ApiException as e:
- Generated 2022-05-19T00:27:23.053+02:00 + Generated 2022-05-21T22:11:42.796+02:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/FeatureActions.yaml b/sdrbase/resources/webapi/doc/swagger/include/FeatureActions.yaml index f1ee424cd..1df31dfb0 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/FeatureActions.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/FeatureActions.yaml @@ -17,6 +17,8 @@ FeatureActions: $ref: "/doc/swagger/include/AFC.yaml#/AFCActions" GS232ControllerActions: $ref: "/doc/swagger/include/GS232Controller.yaml#/GS232ControllerActions" + LimeRFEActions: + $ref: "/doc/swagger/include/LimeRFE.yaml#/LimeRFEActions" MapActions: $ref: "/doc/swagger/include/Map.yaml#/MapActions" PERTesterActions: diff --git a/sdrbase/resources/webapi/doc/swagger/include/FeatureReport.yaml b/sdrbase/resources/webapi/doc/swagger/include/FeatureReport.yaml index 109b16b1f..ae6cd71ae 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/FeatureReport.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/FeatureReport.yaml @@ -11,6 +11,8 @@ FeatureReport: $ref: "/doc/swagger/include/AFC.yaml#/AFCReport" GS232ControllerReport: $ref: "/doc/swagger/include/GS232Controller.yaml#/GS232ControllerReport" + LimeRFEReport: + $ref: "/doc/swagger/include/LimeRFE.yaml#/LimeRFEReport" MapReport: $ref: "/doc/swagger/include/Map.yaml#/MapReport" PERTesterReport: diff --git a/sdrbase/resources/webapi/doc/swagger/include/FeatureSettings.yaml b/sdrbase/resources/webapi/doc/swagger/include/FeatureSettings.yaml index b30b75ca8..21245d2e5 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/FeatureSettings.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/FeatureSettings.yaml @@ -27,6 +27,8 @@ FeatureSettings: $ref: "/doc/swagger/include/JogdialController.yaml#/JogdialControllerSettings" GS232ControllerSettings: $ref: "/doc/swagger/include/GS232Controller.yaml#/GS232ControllerSettings" + LimeRFESettings: + $ref: "/doc/swagger/include/LimeRFE.yaml#/LimeRFESettings" MapSettings: $ref: "/doc/swagger/include/Map.yaml#/MapSettings" PERTesterSettings: diff --git a/sdrbase/resources/webapi/doc/swagger/include/LimeRFE.yaml b/sdrbase/resources/webapi/doc/swagger/include/LimeRFE.yaml index 095a88c00..81c17aa87 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/LimeRFE.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/LimeRFE.yaml @@ -1,6 +1,10 @@ LimeRFESettings: description: LimeRFE properties: + title: + type: string + rgbColor: + type: integer devicePath: description: Path to the device serial interface (ex /dev/ttyUSB2) type: string @@ -102,19 +106,76 @@ LimeRFESettings: SWR measurement source (LimeRFEController::SWRSource) * 0 - External * 1 - Cellular + txRxDriven: + description: Boolean 1 if Tx is copy of Rx else 0 + type: integer rxOn: description: Boolean 1 if Rx is active else 0 type: integer txOn: description: Boolean 1 if Tx is active else 0 type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIFeatureSetIndex: + type: integer + reverseAPIFeatureIndex: + type: integer + rollupState: + $ref: "/doc/swagger/include/RollupState.yaml#/RollupState" + +LimeRFEReport: + description: LimeRFE + properties: + forwardPower: + description: relative forward power in centi-Bels + type: integer + reflectedPower: + description: relative reflected power in centi-Bels + type: integer + +LimeRFEActions: + description: LimeRFE + properties: + selectChannel: + type: integer + description: > + Select channel + * 0 - Rx + * 1 - Tx + deviceSetIndex: + type: integer + dexcription: Index of device set to synchronize switch with + switchChannel: + type: integer + description: > + Switch on or off + * 0 - Off + * 1 - On + fromToSettings: + type: integer + description: > + Move from/to settings to/from device + * 0 - From device to settings. The toGUI button in GUI mode + * 1 - From settings to device. The Apply button in GUI mode + openCloseDevice: + type: integer + description: > + Open or close device + * 0 - Close device + * 1 - Open device LimeRFEPower: - description: report of forward and reflected power measurements + description: report of forward and reflected power measurements TO BE DECOMMISSIONED properties: forward: description: relative forward power in centi-Bels type: integer reflected: description: relative reflected power in centi-Bels - type: integer \ No newline at end of file + type: integer diff --git a/sdrbase/webapi/webapirequestmapper.cpp b/sdrbase/webapi/webapirequestmapper.cpp index 449870e42..5df2a6e71 100644 --- a/sdrbase/webapi/webapirequestmapper.cpp +++ b/sdrbase/webapi/webapirequestmapper.cpp @@ -5602,6 +5602,11 @@ bool WebAPIRequestMapper::getFeatureActions( featureActions->setGs232ControllerActions(new SWGSDRangel::SWGGS232ControllerActions()); featureActions->getGs232ControllerActions()->fromJsonObject(actionsJsonObject); } + else if (featureActionsKey == "LimeRFEActions") + { + featureActions->setLimeRfeActions(new SWGSDRangel::SWGLimeRFEActions()); + featureActions->getLimeRfeActions()->fromJsonObject(actionsJsonObject); + } else if (featureActionsKey == "MapActions") { featureActions->setMapActions(new SWGSDRangel::SWGMapActions()); diff --git a/sdrbase/webapi/webapiutils.cpp b/sdrbase/webapi/webapiutils.cpp index 21398951c..1ffbb1209 100644 --- a/sdrbase/webapi/webapiutils.cpp +++ b/sdrbase/webapi/webapiutils.cpp @@ -275,6 +275,7 @@ const QMap WebAPIUtils::m_featureTypeToSettingsKey = { {"DemodAnalyzer", "DemodAnalyzerSettings"}, {"JogdialController", "JogdialControllerSettings"}, {"GS232Controller", "GS232ControllerSettings"}, // a.k.a Rotator Controller + {"LimeRFE", "LimeRFESettings"}, {"Map", "MapSettings"}, {"PERTester", "PERTesterSettings"}, {"Radiosonde", "RadiosondeSettings"}, @@ -288,6 +289,7 @@ const QMap WebAPIUtils::m_featureTypeToSettingsKey = { const QMap WebAPIUtils::m_featureTypeToActionsKey = { {"AFC", "AFCActions"}, {"GS232Controller", "GS232ControllerActions"}, + {"LimeRFE", "LimeRFEActions"}, {"Map", "MapActions"}, {"PERTester", "PERTesterActions"}, {"RigCtlServer", "RigCtlServerActions"}, @@ -305,6 +307,7 @@ const QMap WebAPIUtils::m_featureURIToSettingsKey = { {"sdrangel.feature.demodanalyzer", "DemodAnalyzerSettings"}, {"sdrangel.feature.jogdialcontroller", "JogdialControllerSettings"}, {"sdrangel.feature.gs232controller", "GS232ControllerSettings"}, + {"sdrangel.feature.limerfe", "LimeRFESettings"}, {"sdrangel.feature.map", "MapSettings"}, {"sdrangel.feature.pertester", "PERTesterSettings"}, {"sdrangel.feature.radiosonde", "RadiosondeSettings"}, diff --git a/swagger/sdrangel/api/swagger/include/FeatureActions.yaml b/swagger/sdrangel/api/swagger/include/FeatureActions.yaml index 153399011..3a47ffe96 100644 --- a/swagger/sdrangel/api/swagger/include/FeatureActions.yaml +++ b/swagger/sdrangel/api/swagger/include/FeatureActions.yaml @@ -17,6 +17,8 @@ FeatureActions: $ref: "http://swgserver:8081/api/swagger/include/AFC.yaml#/AFCActions" GS232ControllerActions: $ref: "http://swgserver:8081/api/swagger/include/GS232Controller.yaml#/GS232ControllerActions" + LimeRFEActions: + $ref: "http://swgserver:8081/api/swagger/include/LimeRFE.yaml#/LimeRFEActions" MapActions: $ref: "http://swgserver:8081/api/swagger/include/Map.yaml#/MapActions" PERTesterActions: diff --git a/swagger/sdrangel/api/swagger/include/FeatureReport.yaml b/swagger/sdrangel/api/swagger/include/FeatureReport.yaml index 468022ad5..1264a7387 100644 --- a/swagger/sdrangel/api/swagger/include/FeatureReport.yaml +++ b/swagger/sdrangel/api/swagger/include/FeatureReport.yaml @@ -11,6 +11,8 @@ FeatureReport: $ref: "http://swgserver:8081/api/swagger/include/AFC.yaml#/AFCReport" GS232ControllerReport: $ref: "http://swgserver:8081/api/swagger/include/GS232Controller.yaml#/GS232ControllerReport" + LimeRFEReport: + $ref: "http://swgserver:8081/api/swagger/include/LimeRFE.yaml#/LimeRFEReport" MapReport: $ref: "http://swgserver:8081/api/swagger/include/Map.yaml#/MapReport" PERTesterReport: diff --git a/swagger/sdrangel/api/swagger/include/FeatureSettings.yaml b/swagger/sdrangel/api/swagger/include/FeatureSettings.yaml index da6a8cef2..0f0f0bf30 100644 --- a/swagger/sdrangel/api/swagger/include/FeatureSettings.yaml +++ b/swagger/sdrangel/api/swagger/include/FeatureSettings.yaml @@ -27,6 +27,8 @@ FeatureSettings: $ref: "http://swgserver:8081/api/swagger/include/JogdialController.yaml#/JogdialControllerSettings" GS232ControllerSettings: $ref: "http://swgserver:8081/api/swagger/include/GS232Controller.yaml#/GS232ControllerSettings" + LimeRFESettings: + $ref: "http://swgserver:8081/api/swagger/include/LimeRFE.yaml#/LimeRFESettings" MapSettings: $ref: "http://swgserver:8081/api/swagger/include/Map.yaml#/MapSettings" PERTesterSettings: diff --git a/swagger/sdrangel/api/swagger/include/LimeRFE.yaml b/swagger/sdrangel/api/swagger/include/LimeRFE.yaml index 095a88c00..06fc4e70f 100644 --- a/swagger/sdrangel/api/swagger/include/LimeRFE.yaml +++ b/swagger/sdrangel/api/swagger/include/LimeRFE.yaml @@ -1,6 +1,10 @@ LimeRFESettings: description: LimeRFE properties: + title: + type: string + rgbColor: + type: integer devicePath: description: Path to the device serial interface (ex /dev/ttyUSB2) type: string @@ -102,19 +106,76 @@ LimeRFESettings: SWR measurement source (LimeRFEController::SWRSource) * 0 - External * 1 - Cellular + txRxDriven: + description: Boolean 1 if Tx is copy of Rx else 0 + type: integer rxOn: description: Boolean 1 if Rx is active else 0 type: integer txOn: description: Boolean 1 if Tx is active else 0 type: integer + useReverseAPI: + description: Synchronize with reverse API (1 for yes, 0 for no) + type: integer + reverseAPIAddress: + type: string + reverseAPIPort: + type: integer + reverseAPIFeatureSetIndex: + type: integer + reverseAPIFeatureIndex: + type: integer + rollupState: + $ref: "http://swgserver:8081/api/swagger/include/RollupState.yaml#/RollupState" + +LimeRFEReport: + description: LimeRFE + properties: + forwardPower: + description: relative forward power in centi-Bels + type: integer + reflectedPower: + description: relative reflected power in centi-Bels + type: integer + +LimeRFEActions: + description: LimeRFE + properties: + selectChannel: + type: integer + description: > + Select channel + * 0 - Rx + * 1 - Tx + deviceSetIndex: + type: integer + dexcription: Index of device set to synchronize switch with + switchChannel: + type: integer + description: > + Switch on or off + * 0 - Off + * 1 - On + fromToSettings: + type: integer + description: > + Move from/to settings to/from device + * 0 - From device to settings. The toGUI button in GUI mode + * 1 - From settings to device. The Apply button in GUI mode + openCloseDevice: + type: integer + description: > + Open or close device + * 0 - Close device + * 1 - Open device LimeRFEPower: - description: report of forward and reflected power measurements + description: report of forward and reflected power measurements TO BE DECOMMISSIONED properties: forward: description: relative forward power in centi-Bels type: integer reflected: description: relative reflected power in centi-Bels - type: integer \ No newline at end of file + type: integer diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html index b9bec83ab..7e220ddf6 100644 --- a/swagger/sdrangel/code/html2/index.html +++ b/swagger/sdrangel/code/html2/index.html @@ -5273,6 +5273,9 @@ margin-bottom: 20px; "GS232ControllerActions" : { "$ref" : "#/definitions/GS232ControllerActions" }, + "LimeRFEActions" : { + "$ref" : "#/definitions/LimeRFEActions" + }, "MapActions" : { "$ref" : "#/definitions/MapActions" }, @@ -5409,6 +5412,9 @@ margin-bottom: 20px; "GS232ControllerReport" : { "$ref" : "#/definitions/GS232ControllerReport" }, + "LimeRFEReport" : { + "$ref" : "#/definitions/LimeRFEReport" + }, "MapReport" : { "$ref" : "#/definitions/MapReport" }, @@ -5504,6 +5510,9 @@ margin-bottom: 20px; "GS232ControllerSettings" : { "$ref" : "#/definitions/GS232ControllerSettings" }, + "LimeRFESettings" : { + "$ref" : "#/definitions/LimeRFESettings" + }, "MapSettings" : { "$ref" : "#/definitions/MapSettings" }, @@ -7069,6 +7078,30 @@ margin-bottom: 20px; } }, "description" : "KiwiSDR" +}; + defs.LimeRFEActions = { + "properties" : { + "selectChannel" : { + "type" : "integer", + "description" : "Select channel\n * 0 - Rx\n * 1 - Tx\n" + }, + "deviceSetIndex" : { + "type" : "integer" + }, + "switchChannel" : { + "type" : "integer", + "description" : "Switch on or off\n * 0 - Off\n * 1 - On\n" + }, + "fromToSettings" : { + "type" : "integer", + "description" : "Move from/to settings to/from device\n * 0 - From device to settings. The toGUI button in GUI mode\n * 1 - From settings to device. The Apply button in GUI mode\n" + }, + "openCloseDevice" : { + "type" : "integer", + "description" : "Open or close device\n * 0 - Close device\n * 1 - Open device\n" + } + }, + "description" : "LimeRFE" }; defs.LimeRFEDevice = { "properties" : { @@ -7107,10 +7140,29 @@ margin-bottom: 20px; "description" : "relative reflected power in centi-Bels" } }, - "description" : "report of forward and reflected power measurements" + "description" : "report of forward and reflected power measurements TO BE DECOMMISSIONED" +}; + defs.LimeRFEReport = { + "properties" : { + "forwardPower" : { + "type" : "integer", + "description" : "relative forward power in centi-Bels" + }, + "reflectedPower" : { + "type" : "integer", + "description" : "relative reflected power in centi-Bels" + } + }, + "description" : "LimeRFE" }; defs.LimeRFESettings = { "properties" : { + "title" : { + "type" : "string" + }, + "rgbColor" : { + "type" : "integer" + }, "devicePath" : { "type" : "string", "description" : "Path to the device serial interface (ex /dev/ttyUSB2)" @@ -7170,6 +7222,10 @@ margin-bottom: 20px; "type" : "integer", "description" : "SWR measurement source (LimeRFEController::SWRSource)\n * 0 - External\n * 1 - Cellular\n" }, + "txRxDriven" : { + "type" : "integer", + "description" : "Boolean 1 if Tx is copy of Rx else 0" + }, "rxOn" : { "type" : "integer", "description" : "Boolean 1 if Rx is active else 0" @@ -7177,6 +7233,25 @@ margin-bottom: 20px; "txOn" : { "type" : "integer", "description" : "Boolean 1 if Tx is active else 0" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIFeatureSetIndex" : { + "type" : "integer" + }, + "reverseAPIFeatureIndex" : { + "type" : "integer" + }, + "rollupState" : { + "$ref" : "#/definitions/RollupState" } }, "description" : "LimeRFE" @@ -59698,7 +59773,7 @@ except ApiException as e:
- Generated 2022-05-19T00:27:23.053+02:00 + Generated 2022-05-21T22:11:42.796+02:00
diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureActions.cpp b/swagger/sdrangel/code/qt5/client/SWGFeatureActions.cpp index 7b2a0f520..ed766164f 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureActions.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureActions.cpp @@ -38,6 +38,8 @@ SWGFeatureActions::SWGFeatureActions() { m_afc_actions_isSet = false; gs232_controller_actions = nullptr; m_gs232_controller_actions_isSet = false; + lime_rfe_actions = nullptr; + m_lime_rfe_actions_isSet = false; map_actions = nullptr; m_map_actions_isSet = false; per_tester_actions = nullptr; @@ -70,6 +72,8 @@ SWGFeatureActions::init() { m_afc_actions_isSet = false; gs232_controller_actions = new SWGGS232ControllerActions(); m_gs232_controller_actions_isSet = false; + lime_rfe_actions = new SWGLimeRFEActions(); + m_lime_rfe_actions_isSet = false; map_actions = new SWGMapActions(); m_map_actions_isSet = false; per_tester_actions = new SWGPERTesterActions(); @@ -99,6 +103,9 @@ SWGFeatureActions::cleanup() { if(gs232_controller_actions != nullptr) { delete gs232_controller_actions; } + if(lime_rfe_actions != nullptr) { + delete lime_rfe_actions; + } if(map_actions != nullptr) { delete map_actions; } @@ -143,6 +150,8 @@ SWGFeatureActions::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&gs232_controller_actions, pJson["GS232ControllerActions"], "SWGGS232ControllerActions", "SWGGS232ControllerActions"); + ::SWGSDRangel::setValue(&lime_rfe_actions, pJson["LimeRFEActions"], "SWGLimeRFEActions", "SWGLimeRFEActions"); + ::SWGSDRangel::setValue(&map_actions, pJson["MapActions"], "SWGMapActions", "SWGMapActions"); ::SWGSDRangel::setValue(&per_tester_actions, pJson["PERTesterActions"], "SWGPERTesterActions", "SWGPERTesterActions"); @@ -188,6 +197,9 @@ SWGFeatureActions::asJsonObject() { if((gs232_controller_actions != nullptr) && (gs232_controller_actions->isSet())){ toJsonValue(QString("GS232ControllerActions"), gs232_controller_actions, obj, QString("SWGGS232ControllerActions")); } + if((lime_rfe_actions != nullptr) && (lime_rfe_actions->isSet())){ + toJsonValue(QString("LimeRFEActions"), lime_rfe_actions, obj, QString("SWGLimeRFEActions")); + } if((map_actions != nullptr) && (map_actions->isSet())){ toJsonValue(QString("MapActions"), map_actions, obj, QString("SWGMapActions")); } @@ -263,6 +275,16 @@ SWGFeatureActions::setGs232ControllerActions(SWGGS232ControllerActions* gs232_co this->m_gs232_controller_actions_isSet = true; } +SWGLimeRFEActions* +SWGFeatureActions::getLimeRfeActions() { + return lime_rfe_actions; +} +void +SWGFeatureActions::setLimeRfeActions(SWGLimeRFEActions* lime_rfe_actions) { + this->lime_rfe_actions = lime_rfe_actions; + this->m_lime_rfe_actions_isSet = true; +} + SWGMapActions* SWGFeatureActions::getMapActions() { return map_actions; @@ -353,6 +375,9 @@ SWGFeatureActions::isSet(){ if(gs232_controller_actions && gs232_controller_actions->isSet()){ isObjectUpdated = true; break; } + if(lime_rfe_actions && lime_rfe_actions->isSet()){ + isObjectUpdated = true; break; + } if(map_actions && map_actions->isSet()){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureActions.h b/swagger/sdrangel/code/qt5/client/SWGFeatureActions.h index 16c3dc97b..46fa415e3 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureActions.h +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureActions.h @@ -24,6 +24,7 @@ #include "SWGAFCActions.h" #include "SWGGS232ControllerActions.h" +#include "SWGLimeRFEActions.h" #include "SWGMapActions.h" #include "SWGPERTesterActions.h" #include "SWGRigCtlServerActions.h" @@ -66,6 +67,9 @@ public: SWGGS232ControllerActions* getGs232ControllerActions(); void setGs232ControllerActions(SWGGS232ControllerActions* gs232_controller_actions); + SWGLimeRFEActions* getLimeRfeActions(); + void setLimeRfeActions(SWGLimeRFEActions* lime_rfe_actions); + SWGMapActions* getMapActions(); void setMapActions(SWGMapActions* map_actions); @@ -106,6 +110,9 @@ private: SWGGS232ControllerActions* gs232_controller_actions; bool m_gs232_controller_actions_isSet; + SWGLimeRFEActions* lime_rfe_actions; + bool m_lime_rfe_actions_isSet; + SWGMapActions* map_actions; bool m_map_actions_isSet; diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureReport.cpp b/swagger/sdrangel/code/qt5/client/SWGFeatureReport.cpp index 20adc1677..1b79ae52a 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureReport.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureReport.cpp @@ -34,6 +34,8 @@ SWGFeatureReport::SWGFeatureReport() { m_afc_report_isSet = false; gs232_controller_report = nullptr; m_gs232_controller_report_isSet = false; + lime_rfe_report = nullptr; + m_lime_rfe_report_isSet = false; map_report = nullptr; m_map_report_isSet = false; per_tester_report = nullptr; @@ -62,6 +64,8 @@ SWGFeatureReport::init() { m_afc_report_isSet = false; gs232_controller_report = new SWGGS232ControllerReport(); m_gs232_controller_report_isSet = false; + lime_rfe_report = new SWGLimeRFEReport(); + m_lime_rfe_report_isSet = false; map_report = new SWGMapReport(); m_map_report_isSet = false; per_tester_report = new SWGPERTesterReport(); @@ -89,6 +93,9 @@ SWGFeatureReport::cleanup() { if(gs232_controller_report != nullptr) { delete gs232_controller_report; } + if(lime_rfe_report != nullptr) { + delete lime_rfe_report; + } if(map_report != nullptr) { delete map_report; } @@ -129,6 +136,8 @@ SWGFeatureReport::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&gs232_controller_report, pJson["GS232ControllerReport"], "SWGGS232ControllerReport", "SWGGS232ControllerReport"); + ::SWGSDRangel::setValue(&lime_rfe_report, pJson["LimeRFEReport"], "SWGLimeRFEReport", "SWGLimeRFEReport"); + ::SWGSDRangel::setValue(&map_report, pJson["MapReport"], "SWGMapReport", "SWGMapReport"); ::SWGSDRangel::setValue(&per_tester_report, pJson["PERTesterReport"], "SWGPERTesterReport", "SWGPERTesterReport"); @@ -168,6 +177,9 @@ SWGFeatureReport::asJsonObject() { if((gs232_controller_report != nullptr) && (gs232_controller_report->isSet())){ toJsonValue(QString("GS232ControllerReport"), gs232_controller_report, obj, QString("SWGGS232ControllerReport")); } + if((lime_rfe_report != nullptr) && (lime_rfe_report->isSet())){ + toJsonValue(QString("LimeRFEReport"), lime_rfe_report, obj, QString("SWGLimeRFEReport")); + } if((map_report != nullptr) && (map_report->isSet())){ toJsonValue(QString("MapReport"), map_report, obj, QString("SWGMapReport")); } @@ -223,6 +235,16 @@ SWGFeatureReport::setGs232ControllerReport(SWGGS232ControllerReport* gs232_contr this->m_gs232_controller_report_isSet = true; } +SWGLimeRFEReport* +SWGFeatureReport::getLimeRfeReport() { + return lime_rfe_report; +} +void +SWGFeatureReport::setLimeRfeReport(SWGLimeRFEReport* lime_rfe_report) { + this->lime_rfe_report = lime_rfe_report; + this->m_lime_rfe_report_isSet = true; +} + SWGMapReport* SWGFeatureReport::getMapReport() { return map_report; @@ -307,6 +329,9 @@ SWGFeatureReport::isSet(){ if(gs232_controller_report && gs232_controller_report->isSet()){ isObjectUpdated = true; break; } + if(lime_rfe_report && lime_rfe_report->isSet()){ + isObjectUpdated = true; break; + } if(map_report && map_report->isSet()){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureReport.h b/swagger/sdrangel/code/qt5/client/SWGFeatureReport.h index 00267e15c..25c6c51d1 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureReport.h +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureReport.h @@ -24,6 +24,7 @@ #include "SWGAFCReport.h" #include "SWGGS232ControllerReport.h" +#include "SWGLimeRFEReport.h" #include "SWGMapReport.h" #include "SWGPERTesterReport.h" #include "SWGRigCtlServerReport.h" @@ -60,6 +61,9 @@ public: SWGGS232ControllerReport* getGs232ControllerReport(); void setGs232ControllerReport(SWGGS232ControllerReport* gs232_controller_report); + SWGLimeRFEReport* getLimeRfeReport(); + void setLimeRfeReport(SWGLimeRFEReport* lime_rfe_report); + SWGMapReport* getMapReport(); void setMapReport(SWGMapReport* map_report); @@ -94,6 +98,9 @@ private: SWGGS232ControllerReport* gs232_controller_report; bool m_gs232_controller_report_isSet; + SWGLimeRFEReport* lime_rfe_report; + bool m_lime_rfe_report_isSet; + SWGMapReport* map_report; bool m_map_report_isSet; diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.cpp index c1a5dca05..61595592e 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.cpp @@ -48,6 +48,8 @@ SWGFeatureSettings::SWGFeatureSettings() { m_jogdial_controller_settings_isSet = false; gs232_controller_settings = nullptr; m_gs232_controller_settings_isSet = false; + lime_rfe_settings = nullptr; + m_lime_rfe_settings_isSet = false; map_settings = nullptr; m_map_settings_isSet = false; per_tester_settings = nullptr; @@ -92,6 +94,8 @@ SWGFeatureSettings::init() { m_jogdial_controller_settings_isSet = false; gs232_controller_settings = new SWGGS232ControllerSettings(); m_gs232_controller_settings_isSet = false; + lime_rfe_settings = new SWGLimeRFESettings(); + m_lime_rfe_settings_isSet = false; map_settings = new SWGMapSettings(); m_map_settings_isSet = false; per_tester_settings = new SWGPERTesterSettings(); @@ -138,6 +142,9 @@ SWGFeatureSettings::cleanup() { if(gs232_controller_settings != nullptr) { delete gs232_controller_settings; } + if(lime_rfe_settings != nullptr) { + delete lime_rfe_settings; + } if(map_settings != nullptr) { delete map_settings; } @@ -195,6 +202,8 @@ SWGFeatureSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&gs232_controller_settings, pJson["GS232ControllerSettings"], "SWGGS232ControllerSettings", "SWGGS232ControllerSettings"); + ::SWGSDRangel::setValue(&lime_rfe_settings, pJson["LimeRFESettings"], "SWGLimeRFESettings", "SWGLimeRFESettings"); + ::SWGSDRangel::setValue(&map_settings, pJson["MapSettings"], "SWGMapSettings", "SWGMapSettings"); ::SWGSDRangel::setValue(&per_tester_settings, pJson["PERTesterSettings"], "SWGPERTesterSettings", "SWGPERTesterSettings"); @@ -257,6 +266,9 @@ SWGFeatureSettings::asJsonObject() { if((gs232_controller_settings != nullptr) && (gs232_controller_settings->isSet())){ toJsonValue(QString("GS232ControllerSettings"), gs232_controller_settings, obj, QString("SWGGS232ControllerSettings")); } + if((lime_rfe_settings != nullptr) && (lime_rfe_settings->isSet())){ + toJsonValue(QString("LimeRFESettings"), lime_rfe_settings, obj, QString("SWGLimeRFESettings")); + } if((map_settings != nullptr) && (map_settings->isSet())){ toJsonValue(QString("MapSettings"), map_settings, obj, QString("SWGMapSettings")); } @@ -385,6 +397,16 @@ SWGFeatureSettings::setGs232ControllerSettings(SWGGS232ControllerSettings* gs232 this->m_gs232_controller_settings_isSet = true; } +SWGLimeRFESettings* +SWGFeatureSettings::getLimeRfeSettings() { + return lime_rfe_settings; +} +void +SWGFeatureSettings::setLimeRfeSettings(SWGLimeRFESettings* lime_rfe_settings) { + this->lime_rfe_settings = lime_rfe_settings; + this->m_lime_rfe_settings_isSet = true; +} + SWGMapSettings* SWGFeatureSettings::getMapSettings() { return map_settings; @@ -500,6 +522,9 @@ SWGFeatureSettings::isSet(){ if(gs232_controller_settings && gs232_controller_settings->isSet()){ isObjectUpdated = true; break; } + if(lime_rfe_settings && lime_rfe_settings->isSet()){ + isObjectUpdated = true; break; + } if(map_settings && map_settings->isSet()){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.h b/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.h index 64993003d..3271cb913 100644 --- a/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGFeatureSettings.h @@ -29,6 +29,7 @@ #include "SWGDemodAnalyzerSettings.h" #include "SWGGS232ControllerSettings.h" #include "SWGJogdialControllerSettings.h" +#include "SWGLimeRFESettings.h" #include "SWGMapSettings.h" #include "SWGPERTesterSettings.h" #include "SWGRadiosondeSettings.h" @@ -87,6 +88,9 @@ public: SWGGS232ControllerSettings* getGs232ControllerSettings(); void setGs232ControllerSettings(SWGGS232ControllerSettings* gs232_controller_settings); + SWGLimeRFESettings* getLimeRfeSettings(); + void setLimeRfeSettings(SWGLimeRFESettings* lime_rfe_settings); + SWGMapSettings* getMapSettings(); void setMapSettings(SWGMapSettings* map_settings); @@ -145,6 +149,9 @@ private: SWGGS232ControllerSettings* gs232_controller_settings; bool m_gs232_controller_settings_isSet; + SWGLimeRFESettings* lime_rfe_settings; + bool m_lime_rfe_settings_isSet; + SWGMapSettings* map_settings; bool m_map_settings_isSet; diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeRFEActions.cpp b/swagger/sdrangel/code/qt5/client/SWGLimeRFEActions.cpp new file mode 100644 index 000000000..9484cf862 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGLimeRFEActions.cpp @@ -0,0 +1,200 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 7.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGLimeRFEActions.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGLimeRFEActions::SWGLimeRFEActions(QString* json) { + init(); + this->fromJson(*json); +} + +SWGLimeRFEActions::SWGLimeRFEActions() { + select_channel = 0; + m_select_channel_isSet = false; + device_set_index = 0; + m_device_set_index_isSet = false; + switch_channel = 0; + m_switch_channel_isSet = false; + from_to_settings = 0; + m_from_to_settings_isSet = false; + open_close_device = 0; + m_open_close_device_isSet = false; +} + +SWGLimeRFEActions::~SWGLimeRFEActions() { + this->cleanup(); +} + +void +SWGLimeRFEActions::init() { + select_channel = 0; + m_select_channel_isSet = false; + device_set_index = 0; + m_device_set_index_isSet = false; + switch_channel = 0; + m_switch_channel_isSet = false; + from_to_settings = 0; + m_from_to_settings_isSet = false; + open_close_device = 0; + m_open_close_device_isSet = false; +} + +void +SWGLimeRFEActions::cleanup() { + + + + + +} + +SWGLimeRFEActions* +SWGLimeRFEActions::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGLimeRFEActions::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&select_channel, pJson["selectChannel"], "qint32", ""); + + ::SWGSDRangel::setValue(&device_set_index, pJson["deviceSetIndex"], "qint32", ""); + + ::SWGSDRangel::setValue(&switch_channel, pJson["switchChannel"], "qint32", ""); + + ::SWGSDRangel::setValue(&from_to_settings, pJson["fromToSettings"], "qint32", ""); + + ::SWGSDRangel::setValue(&open_close_device, pJson["openCloseDevice"], "qint32", ""); + +} + +QString +SWGLimeRFEActions::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGLimeRFEActions::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(m_select_channel_isSet){ + obj->insert("selectChannel", QJsonValue(select_channel)); + } + if(m_device_set_index_isSet){ + obj->insert("deviceSetIndex", QJsonValue(device_set_index)); + } + if(m_switch_channel_isSet){ + obj->insert("switchChannel", QJsonValue(switch_channel)); + } + if(m_from_to_settings_isSet){ + obj->insert("fromToSettings", QJsonValue(from_to_settings)); + } + if(m_open_close_device_isSet){ + obj->insert("openCloseDevice", QJsonValue(open_close_device)); + } + + return obj; +} + +qint32 +SWGLimeRFEActions::getSelectChannel() { + return select_channel; +} +void +SWGLimeRFEActions::setSelectChannel(qint32 select_channel) { + this->select_channel = select_channel; + this->m_select_channel_isSet = true; +} + +qint32 +SWGLimeRFEActions::getDeviceSetIndex() { + return device_set_index; +} +void +SWGLimeRFEActions::setDeviceSetIndex(qint32 device_set_index) { + this->device_set_index = device_set_index; + this->m_device_set_index_isSet = true; +} + +qint32 +SWGLimeRFEActions::getSwitchChannel() { + return switch_channel; +} +void +SWGLimeRFEActions::setSwitchChannel(qint32 switch_channel) { + this->switch_channel = switch_channel; + this->m_switch_channel_isSet = true; +} + +qint32 +SWGLimeRFEActions::getFromToSettings() { + return from_to_settings; +} +void +SWGLimeRFEActions::setFromToSettings(qint32 from_to_settings) { + this->from_to_settings = from_to_settings; + this->m_from_to_settings_isSet = true; +} + +qint32 +SWGLimeRFEActions::getOpenCloseDevice() { + return open_close_device; +} +void +SWGLimeRFEActions::setOpenCloseDevice(qint32 open_close_device) { + this->open_close_device = open_close_device; + this->m_open_close_device_isSet = true; +} + + +bool +SWGLimeRFEActions::isSet(){ + bool isObjectUpdated = false; + do{ + if(m_select_channel_isSet){ + isObjectUpdated = true; break; + } + if(m_device_set_index_isSet){ + isObjectUpdated = true; break; + } + if(m_switch_channel_isSet){ + isObjectUpdated = true; break; + } + if(m_from_to_settings_isSet){ + isObjectUpdated = true; break; + } + if(m_open_close_device_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeRFEActions.h b/swagger/sdrangel/code/qt5/client/SWGLimeRFEActions.h new file mode 100644 index 000000000..29fa4c518 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGLimeRFEActions.h @@ -0,0 +1,82 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 7.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGLimeRFEActions.h + * + * LimeRFE + */ + +#ifndef SWGLimeRFEActions_H_ +#define SWGLimeRFEActions_H_ + +#include + + + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGLimeRFEActions: public SWGObject { +public: + SWGLimeRFEActions(); + SWGLimeRFEActions(QString* json); + virtual ~SWGLimeRFEActions(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGLimeRFEActions* fromJson(QString &jsonString) override; + + qint32 getSelectChannel(); + void setSelectChannel(qint32 select_channel); + + qint32 getDeviceSetIndex(); + void setDeviceSetIndex(qint32 device_set_index); + + qint32 getSwitchChannel(); + void setSwitchChannel(qint32 switch_channel); + + qint32 getFromToSettings(); + void setFromToSettings(qint32 from_to_settings); + + qint32 getOpenCloseDevice(); + void setOpenCloseDevice(qint32 open_close_device); + + + virtual bool isSet() override; + +private: + qint32 select_channel; + bool m_select_channel_isSet; + + qint32 device_set_index; + bool m_device_set_index_isSet; + + qint32 switch_channel; + bool m_switch_channel_isSet; + + qint32 from_to_settings; + bool m_from_to_settings_isSet; + + qint32 open_close_device; + bool m_open_close_device_isSet; + +}; + +} + +#endif /* SWGLimeRFEActions_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeRFEPower.h b/swagger/sdrangel/code/qt5/client/SWGLimeRFEPower.h index fce159f3b..917a6d3af 100644 --- a/swagger/sdrangel/code/qt5/client/SWGLimeRFEPower.h +++ b/swagger/sdrangel/code/qt5/client/SWGLimeRFEPower.h @@ -13,7 +13,7 @@ /* * SWGLimeRFEPower.h * - * report of forward and reflected power measurements + * report of forward and reflected power measurements TO BE DECOMMISSIONED */ #ifndef SWGLimeRFEPower_H_ diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeRFEReport.cpp b/swagger/sdrangel/code/qt5/client/SWGLimeRFEReport.cpp new file mode 100644 index 000000000..9df562a65 --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGLimeRFEReport.cpp @@ -0,0 +1,131 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 7.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +#include "SWGLimeRFEReport.h" + +#include "SWGHelpers.h" + +#include +#include +#include +#include + +namespace SWGSDRangel { + +SWGLimeRFEReport::SWGLimeRFEReport(QString* json) { + init(); + this->fromJson(*json); +} + +SWGLimeRFEReport::SWGLimeRFEReport() { + forward_power = 0; + m_forward_power_isSet = false; + reflected_power = 0; + m_reflected_power_isSet = false; +} + +SWGLimeRFEReport::~SWGLimeRFEReport() { + this->cleanup(); +} + +void +SWGLimeRFEReport::init() { + forward_power = 0; + m_forward_power_isSet = false; + reflected_power = 0; + m_reflected_power_isSet = false; +} + +void +SWGLimeRFEReport::cleanup() { + + +} + +SWGLimeRFEReport* +SWGLimeRFEReport::fromJson(QString &json) { + QByteArray array (json.toStdString().c_str()); + QJsonDocument doc = QJsonDocument::fromJson(array); + QJsonObject jsonObject = doc.object(); + this->fromJsonObject(jsonObject); + return this; +} + +void +SWGLimeRFEReport::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&forward_power, pJson["forwardPower"], "qint32", ""); + + ::SWGSDRangel::setValue(&reflected_power, pJson["reflectedPower"], "qint32", ""); + +} + +QString +SWGLimeRFEReport::asJson () +{ + QJsonObject* obj = this->asJsonObject(); + + QJsonDocument doc(*obj); + QByteArray bytes = doc.toJson(); + delete obj; + return QString(bytes); +} + +QJsonObject* +SWGLimeRFEReport::asJsonObject() { + QJsonObject* obj = new QJsonObject(); + if(m_forward_power_isSet){ + obj->insert("forwardPower", QJsonValue(forward_power)); + } + if(m_reflected_power_isSet){ + obj->insert("reflectedPower", QJsonValue(reflected_power)); + } + + return obj; +} + +qint32 +SWGLimeRFEReport::getForwardPower() { + return forward_power; +} +void +SWGLimeRFEReport::setForwardPower(qint32 forward_power) { + this->forward_power = forward_power; + this->m_forward_power_isSet = true; +} + +qint32 +SWGLimeRFEReport::getReflectedPower() { + return reflected_power; +} +void +SWGLimeRFEReport::setReflectedPower(qint32 reflected_power) { + this->reflected_power = reflected_power; + this->m_reflected_power_isSet = true; +} + + +bool +SWGLimeRFEReport::isSet(){ + bool isObjectUpdated = false; + do{ + if(m_forward_power_isSet){ + isObjectUpdated = true; break; + } + if(m_reflected_power_isSet){ + isObjectUpdated = true; break; + } + }while(false); + return isObjectUpdated; +} +} + diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeRFEReport.h b/swagger/sdrangel/code/qt5/client/SWGLimeRFEReport.h new file mode 100644 index 000000000..6929fdf4f --- /dev/null +++ b/swagger/sdrangel/code/qt5/client/SWGLimeRFEReport.h @@ -0,0 +1,64 @@ +/** + * SDRangel + * This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time --- + * + * OpenAPI spec version: 7.0.0 + * Contact: f4exb06@gmail.com + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + +/* + * SWGLimeRFEReport.h + * + * LimeRFE + */ + +#ifndef SWGLimeRFEReport_H_ +#define SWGLimeRFEReport_H_ + +#include + + + +#include "SWGObject.h" +#include "export.h" + +namespace SWGSDRangel { + +class SWG_API SWGLimeRFEReport: public SWGObject { +public: + SWGLimeRFEReport(); + SWGLimeRFEReport(QString* json); + virtual ~SWGLimeRFEReport(); + void init(); + void cleanup(); + + virtual QString asJson () override; + virtual QJsonObject* asJsonObject() override; + virtual void fromJsonObject(QJsonObject &json) override; + virtual SWGLimeRFEReport* fromJson(QString &jsonString) override; + + qint32 getForwardPower(); + void setForwardPower(qint32 forward_power); + + qint32 getReflectedPower(); + void setReflectedPower(qint32 reflected_power); + + + virtual bool isSet() override; + +private: + qint32 forward_power; + bool m_forward_power_isSet; + + qint32 reflected_power; + bool m_reflected_power_isSet; + +}; + +} + +#endif /* SWGLimeRFEReport_H_ */ diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeRFESettings.cpp b/swagger/sdrangel/code/qt5/client/SWGLimeRFESettings.cpp index fba79d1d8..c0e0e1098 100644 --- a/swagger/sdrangel/code/qt5/client/SWGLimeRFESettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGLimeRFESettings.cpp @@ -28,6 +28,10 @@ SWGLimeRFESettings::SWGLimeRFESettings(QString* json) { } SWGLimeRFESettings::SWGLimeRFESettings() { + title = nullptr; + m_title_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; device_path = nullptr; m_device_path_isSet = false; rx_channels = 0; @@ -58,10 +62,24 @@ SWGLimeRFESettings::SWGLimeRFESettings() { m_swr_enable_isSet = false; swr_source = 0; m_swr_source_isSet = false; + tx_rx_driven = 0; + m_tx_rx_driven_isSet = false; rx_on = 0; m_rx_on_isSet = false; tx_on = 0; m_tx_on_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = nullptr; + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_feature_set_index = 0; + m_reverse_api_feature_set_index_isSet = false; + reverse_api_feature_index = 0; + m_reverse_api_feature_index_isSet = false; + rollup_state = nullptr; + m_rollup_state_isSet = false; } SWGLimeRFESettings::~SWGLimeRFESettings() { @@ -70,6 +88,10 @@ SWGLimeRFESettings::~SWGLimeRFESettings() { void SWGLimeRFESettings::init() { + title = new QString(""); + m_title_isSet = false; + rgb_color = 0; + m_rgb_color_isSet = false; device_path = new QString(""); m_device_path_isSet = false; rx_channels = 0; @@ -100,14 +122,32 @@ SWGLimeRFESettings::init() { m_swr_enable_isSet = false; swr_source = 0; m_swr_source_isSet = false; + tx_rx_driven = 0; + m_tx_rx_driven_isSet = false; rx_on = 0; m_rx_on_isSet = false; tx_on = 0; m_tx_on_isSet = false; + use_reverse_api = 0; + m_use_reverse_api_isSet = false; + reverse_api_address = new QString(""); + m_reverse_api_address_isSet = false; + reverse_api_port = 0; + m_reverse_api_port_isSet = false; + reverse_api_feature_set_index = 0; + m_reverse_api_feature_set_index_isSet = false; + reverse_api_feature_index = 0; + m_reverse_api_feature_index_isSet = false; + rollup_state = new SWGRollupState(); + m_rollup_state_isSet = false; } void SWGLimeRFESettings::cleanup() { + if(title != nullptr) { + delete title; + } + if(device_path != nullptr) { delete device_path; } @@ -127,6 +167,17 @@ SWGLimeRFESettings::cleanup() { + + + if(reverse_api_address != nullptr) { + delete reverse_api_address; + } + + + + if(rollup_state != nullptr) { + delete rollup_state; + } } SWGLimeRFESettings* @@ -140,6 +191,10 @@ SWGLimeRFESettings::fromJson(QString &json) { void SWGLimeRFESettings::fromJsonObject(QJsonObject &pJson) { + ::SWGSDRangel::setValue(&title, pJson["title"], "QString", "QString"); + + ::SWGSDRangel::setValue(&rgb_color, pJson["rgbColor"], "qint32", ""); + ::SWGSDRangel::setValue(&device_path, pJson["devicePath"], "QString", "QString"); ::SWGSDRangel::setValue(&rx_channels, pJson["rxChannels"], "qint32", ""); @@ -170,10 +225,24 @@ SWGLimeRFESettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&swr_source, pJson["swrSource"], "qint32", ""); + ::SWGSDRangel::setValue(&tx_rx_driven, pJson["txRxDriven"], "qint32", ""); + ::SWGSDRangel::setValue(&rx_on, pJson["rxOn"], "qint32", ""); ::SWGSDRangel::setValue(&tx_on, pJson["txOn"], "qint32", ""); + ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString"); + + ::SWGSDRangel::setValue(&reverse_api_port, pJson["reverseAPIPort"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_feature_set_index, pJson["reverseAPIFeatureSetIndex"], "qint32", ""); + + ::SWGSDRangel::setValue(&reverse_api_feature_index, pJson["reverseAPIFeatureIndex"], "qint32", ""); + + ::SWGSDRangel::setValue(&rollup_state, pJson["rollupState"], "SWGRollupState", "SWGRollupState"); + } QString @@ -190,6 +259,12 @@ SWGLimeRFESettings::asJson () QJsonObject* SWGLimeRFESettings::asJsonObject() { QJsonObject* obj = new QJsonObject(); + if(title != nullptr && *title != QString("")){ + toJsonValue(QString("title"), title, obj, QString("QString")); + } + if(m_rgb_color_isSet){ + obj->insert("rgbColor", QJsonValue(rgb_color)); + } if(device_path != nullptr && *device_path != QString("")){ toJsonValue(QString("devicePath"), device_path, obj, QString("QString")); } @@ -235,16 +310,57 @@ SWGLimeRFESettings::asJsonObject() { if(m_swr_source_isSet){ obj->insert("swrSource", QJsonValue(swr_source)); } + if(m_tx_rx_driven_isSet){ + obj->insert("txRxDriven", QJsonValue(tx_rx_driven)); + } if(m_rx_on_isSet){ obj->insert("rxOn", QJsonValue(rx_on)); } if(m_tx_on_isSet){ obj->insert("txOn", QJsonValue(tx_on)); } + if(m_use_reverse_api_isSet){ + obj->insert("useReverseAPI", QJsonValue(use_reverse_api)); + } + if(reverse_api_address != nullptr && *reverse_api_address != QString("")){ + toJsonValue(QString("reverseAPIAddress"), reverse_api_address, obj, QString("QString")); + } + if(m_reverse_api_port_isSet){ + obj->insert("reverseAPIPort", QJsonValue(reverse_api_port)); + } + if(m_reverse_api_feature_set_index_isSet){ + obj->insert("reverseAPIFeatureSetIndex", QJsonValue(reverse_api_feature_set_index)); + } + if(m_reverse_api_feature_index_isSet){ + obj->insert("reverseAPIFeatureIndex", QJsonValue(reverse_api_feature_index)); + } + if((rollup_state != nullptr) && (rollup_state->isSet())){ + toJsonValue(QString("rollupState"), rollup_state, obj, QString("SWGRollupState")); + } return obj; } +QString* +SWGLimeRFESettings::getTitle() { + return title; +} +void +SWGLimeRFESettings::setTitle(QString* title) { + this->title = title; + this->m_title_isSet = true; +} + +qint32 +SWGLimeRFESettings::getRgbColor() { + return rgb_color; +} +void +SWGLimeRFESettings::setRgbColor(qint32 rgb_color) { + this->rgb_color = rgb_color; + this->m_rgb_color_isSet = true; +} + QString* SWGLimeRFESettings::getDevicePath() { return device_path; @@ -395,6 +511,16 @@ SWGLimeRFESettings::setSwrSource(qint32 swr_source) { this->m_swr_source_isSet = true; } +qint32 +SWGLimeRFESettings::getTxRxDriven() { + return tx_rx_driven; +} +void +SWGLimeRFESettings::setTxRxDriven(qint32 tx_rx_driven) { + this->tx_rx_driven = tx_rx_driven; + this->m_tx_rx_driven_isSet = true; +} + qint32 SWGLimeRFESettings::getRxOn() { return rx_on; @@ -415,11 +541,77 @@ SWGLimeRFESettings::setTxOn(qint32 tx_on) { this->m_tx_on_isSet = true; } +qint32 +SWGLimeRFESettings::getUseReverseApi() { + return use_reverse_api; +} +void +SWGLimeRFESettings::setUseReverseApi(qint32 use_reverse_api) { + this->use_reverse_api = use_reverse_api; + this->m_use_reverse_api_isSet = true; +} + +QString* +SWGLimeRFESettings::getReverseApiAddress() { + return reverse_api_address; +} +void +SWGLimeRFESettings::setReverseApiAddress(QString* reverse_api_address) { + this->reverse_api_address = reverse_api_address; + this->m_reverse_api_address_isSet = true; +} + +qint32 +SWGLimeRFESettings::getReverseApiPort() { + return reverse_api_port; +} +void +SWGLimeRFESettings::setReverseApiPort(qint32 reverse_api_port) { + this->reverse_api_port = reverse_api_port; + this->m_reverse_api_port_isSet = true; +} + +qint32 +SWGLimeRFESettings::getReverseApiFeatureSetIndex() { + return reverse_api_feature_set_index; +} +void +SWGLimeRFESettings::setReverseApiFeatureSetIndex(qint32 reverse_api_feature_set_index) { + this->reverse_api_feature_set_index = reverse_api_feature_set_index; + this->m_reverse_api_feature_set_index_isSet = true; +} + +qint32 +SWGLimeRFESettings::getReverseApiFeatureIndex() { + return reverse_api_feature_index; +} +void +SWGLimeRFESettings::setReverseApiFeatureIndex(qint32 reverse_api_feature_index) { + this->reverse_api_feature_index = reverse_api_feature_index; + this->m_reverse_api_feature_index_isSet = true; +} + +SWGRollupState* +SWGLimeRFESettings::getRollupState() { + return rollup_state; +} +void +SWGLimeRFESettings::setRollupState(SWGRollupState* rollup_state) { + this->rollup_state = rollup_state; + this->m_rollup_state_isSet = true; +} + bool SWGLimeRFESettings::isSet(){ bool isObjectUpdated = false; do{ + if(title && *title != QString("")){ + isObjectUpdated = true; break; + } + if(m_rgb_color_isSet){ + isObjectUpdated = true; break; + } if(device_path && *device_path != QString("")){ isObjectUpdated = true; break; } @@ -465,12 +657,33 @@ SWGLimeRFESettings::isSet(){ if(m_swr_source_isSet){ isObjectUpdated = true; break; } + if(m_tx_rx_driven_isSet){ + isObjectUpdated = true; break; + } if(m_rx_on_isSet){ isObjectUpdated = true; break; } if(m_tx_on_isSet){ isObjectUpdated = true; break; } + if(m_use_reverse_api_isSet){ + isObjectUpdated = true; break; + } + if(reverse_api_address && *reverse_api_address != QString("")){ + isObjectUpdated = true; break; + } + if(m_reverse_api_port_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_feature_set_index_isSet){ + isObjectUpdated = true; break; + } + if(m_reverse_api_feature_index_isSet){ + isObjectUpdated = true; break; + } + if(rollup_state && rollup_state->isSet()){ + isObjectUpdated = true; break; + } }while(false); return isObjectUpdated; } diff --git a/swagger/sdrangel/code/qt5/client/SWGLimeRFESettings.h b/swagger/sdrangel/code/qt5/client/SWGLimeRFESettings.h index 90517b823..e947fead1 100644 --- a/swagger/sdrangel/code/qt5/client/SWGLimeRFESettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGLimeRFESettings.h @@ -22,6 +22,7 @@ #include +#include "SWGRollupState.h" #include #include "SWGObject.h" @@ -42,6 +43,12 @@ public: virtual void fromJsonObject(QJsonObject &json) override; virtual SWGLimeRFESettings* fromJson(QString &jsonString) override; + QString* getTitle(); + void setTitle(QString* title); + + qint32 getRgbColor(); + void setRgbColor(qint32 rgb_color); + QString* getDevicePath(); void setDevicePath(QString* device_path); @@ -87,16 +94,43 @@ public: qint32 getSwrSource(); void setSwrSource(qint32 swr_source); + qint32 getTxRxDriven(); + void setTxRxDriven(qint32 tx_rx_driven); + qint32 getRxOn(); void setRxOn(qint32 rx_on); qint32 getTxOn(); void setTxOn(qint32 tx_on); + qint32 getUseReverseApi(); + void setUseReverseApi(qint32 use_reverse_api); + + QString* getReverseApiAddress(); + void setReverseApiAddress(QString* reverse_api_address); + + qint32 getReverseApiPort(); + void setReverseApiPort(qint32 reverse_api_port); + + qint32 getReverseApiFeatureSetIndex(); + void setReverseApiFeatureSetIndex(qint32 reverse_api_feature_set_index); + + qint32 getReverseApiFeatureIndex(); + void setReverseApiFeatureIndex(qint32 reverse_api_feature_index); + + SWGRollupState* getRollupState(); + void setRollupState(SWGRollupState* rollup_state); + virtual bool isSet() override; private: + QString* title; + bool m_title_isSet; + + qint32 rgb_color; + bool m_rgb_color_isSet; + QString* device_path; bool m_device_path_isSet; @@ -142,12 +176,33 @@ private: qint32 swr_source; bool m_swr_source_isSet; + qint32 tx_rx_driven; + bool m_tx_rx_driven_isSet; + qint32 rx_on; bool m_rx_on_isSet; qint32 tx_on; bool m_tx_on_isSet; + qint32 use_reverse_api; + bool m_use_reverse_api_isSet; + + QString* reverse_api_address; + bool m_reverse_api_address_isSet; + + qint32 reverse_api_port; + bool m_reverse_api_port_isSet; + + qint32 reverse_api_feature_set_index; + bool m_reverse_api_feature_set_index_isSet; + + qint32 reverse_api_feature_index; + bool m_reverse_api_feature_index_isSet; + + SWGRollupState* rollup_state; + bool m_rollup_state_isSet; + }; } diff --git a/swagger/sdrangel/code/qt5/client/SWGModelFactory.h b/swagger/sdrangel/code/qt5/client/SWGModelFactory.h index 8c8c47b41..120ac5f7f 100644 --- a/swagger/sdrangel/code/qt5/client/SWGModelFactory.h +++ b/swagger/sdrangel/code/qt5/client/SWGModelFactory.h @@ -158,9 +158,11 @@ #include "SWGJogdialControllerSettings.h" #include "SWGKiwiSDRReport.h" #include "SWGKiwiSDRSettings.h" +#include "SWGLimeRFEActions.h" #include "SWGLimeRFEDevice.h" #include "SWGLimeRFEDevices.h" #include "SWGLimeRFEPower.h" +#include "SWGLimeRFEReport.h" #include "SWGLimeRFESettings.h" #include "SWGLimeSdrInputReport.h" #include "SWGLimeSdrInputSettings.h" @@ -1048,6 +1050,11 @@ namespace SWGSDRangel { obj->init(); return obj; } + if(QString("SWGLimeRFEActions").compare(type) == 0) { + SWGLimeRFEActions *obj = new SWGLimeRFEActions(); + obj->init(); + return obj; + } if(QString("SWGLimeRFEDevice").compare(type) == 0) { SWGLimeRFEDevice *obj = new SWGLimeRFEDevice(); obj->init(); @@ -1063,6 +1070,11 @@ namespace SWGSDRangel { obj->init(); return obj; } + if(QString("SWGLimeRFEReport").compare(type) == 0) { + SWGLimeRFEReport *obj = new SWGLimeRFEReport(); + obj->init(); + return obj; + } if(QString("SWGLimeRFESettings").compare(type) == 0) { SWGLimeRFESettings *obj = new SWGLimeRFESettings(); obj->init();