diff --git a/plugins/samplemimo/bladerf2mimo/bladerf2mimo.cpp b/plugins/samplemimo/bladerf2mimo/bladerf2mimo.cpp index 6523b1974..6b7117b7e 100644 --- a/plugins/samplemimo/bladerf2mimo/bladerf2mimo.cpp +++ b/plugins/samplemimo/bladerf2mimo/bladerf2mimo.cpp @@ -1164,44 +1164,61 @@ void BladeRF2MIMO::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re response.getBladeRf2MimoSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); } - response.getBladeRf2OutputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + response.getBladeRf2MimoSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); - if (response.getBladeRf2OutputSettings()->getReverseApiAddress()) { - *response.getBladeRf2OutputSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + if (response.getBladeRf2MimoSettings()->getReverseApiAddress()) { + *response.getBladeRf2MimoSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; } else { - response.getBladeRf2OutputSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + response.getBladeRf2MimoSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); } - response.getBladeRf2OutputSettings()->setReverseApiPort(settings.m_reverseAPIPort); - response.getBladeRf2OutputSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex); + response.getBladeRf2MimoSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getBladeRf2MimoSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex); } int BladeRF2MIMO::webapiRunGet( + int subsystemIndex, SWGSDRangel::SWGDeviceState& response, QString& errorMessage) { - (void) errorMessage; - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); - return 200; + if ((subsystemIndex == 0) || (subsystemIndex == 1)) + { + m_deviceAPI->getDeviceEngineStateStr(*response.getState(), subsystemIndex); + return 200; + } + else + { + errorMessage = QString("Subsystem invalid: must be 0 (Rx) or 1 (Tx)"); + return 404; + } + } int BladeRF2MIMO::webapiRun( bool run, + int subsystemIndex, SWGSDRangel::SWGDeviceState& response, QString& errorMessage) { - (void) errorMessage; - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); - MsgStartStop *message = MsgStartStop::create(run, true); // TODO: Tx support - m_inputMessageQueue.push(message); - - if (m_guiMessageQueue) // forward to GUI if any + if ((subsystemIndex == 0) || (subsystemIndex == 1)) { - MsgStartStop *msgToGUI = MsgStartStop::create(run, true); // TODO: Tx support - m_guiMessageQueue->push(msgToGUI); - } + m_deviceAPI->getDeviceEngineStateStr(*response.getState(), subsystemIndex); + MsgStartStop *message = MsgStartStop::create(run, subsystemIndex == 0); + m_inputMessageQueue.push(message); - return 200; + if (m_guiMessageQueue) // forward to GUI if any + { + MsgStartStop *msgToGUI = MsgStartStop::create(run, subsystemIndex == 0); + m_guiMessageQueue->push(msgToGUI); + } + + return 200; + } + else + { + errorMessage = QString("Subsystem invalid: must be 0 (Rx) or 1 (Tx)"); + return 404; + } } void BladeRF2MIMO::webapiReverseSendSettings(QList& deviceSettingsKeys, const BladeRF2MIMOSettings& settings, bool force) diff --git a/plugins/samplemimo/bladerf2mimo/bladerf2mimo.h b/plugins/samplemimo/bladerf2mimo/bladerf2mimo.h index c5b1c3456..71b8ae672 100644 --- a/plugins/samplemimo/bladerf2mimo/bladerf2mimo.h +++ b/plugins/samplemimo/bladerf2mimo/bladerf2mimo.h @@ -185,11 +185,13 @@ public: QString& errorMessage); virtual int webapiRunGet( + int subsystemIndex, SWGSDRangel::SWGDeviceState& response, QString& errorMessage); virtual int webapiRun( bool run, + int subsystemIndex, SWGSDRangel::SWGDeviceState& response, QString& errorMessage); diff --git a/plugins/samplemimo/testmosync/testmosync.cpp b/plugins/samplemimo/testmosync/testmosync.cpp index a41f753de..775ca3f89 100644 --- a/plugins/samplemimo/testmosync/testmosync.cpp +++ b/plugins/samplemimo/testmosync/testmosync.cpp @@ -302,29 +302,49 @@ bool TestMOSync::applySettings(const TestMOSyncSettings& settings, bool force) } int TestMOSync::webapiRunGet( + int subsystemIndex, SWGSDRangel::SWGDeviceState& response, QString& errorMessage) { (void) errorMessage; - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); + if (subsystemIndex == 1) + { + m_deviceAPI->getDeviceEngineStateStr(*response.getState(), 1); // Tx only + return 200; + } + else + { + errorMessage = QString("Subsystem index invalid: expect 1 (Tx) only"); + return 404; + } + + response.setState(new QString("N/A")); return 200; } int TestMOSync::webapiRun( bool run, + int subsystemIndex, SWGSDRangel::SWGDeviceState& response, QString& errorMessage) { - (void) errorMessage; - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); - MsgStartStop *message = MsgStartStop::create(run, true); // TODO: Tx support - m_inputMessageQueue.push(message); - - if (m_guiMessageQueue) // forward to GUI if any + if (subsystemIndex == 1) { - MsgStartStop *msgToGUI = MsgStartStop::create(run, true); // TODO: Tx support - m_guiMessageQueue->push(msgToGUI); - } + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); + MsgStartStop *message = MsgStartStop::create(run, true); // Tx only + m_inputMessageQueue.push(message); - return 200; + if (m_guiMessageQueue) // forward to GUI if any + { + MsgStartStop *msgToGUI = MsgStartStop::create(run, true); // Tx only + m_guiMessageQueue->push(msgToGUI); + } + + return 200; + } + else + { + errorMessage = QString("Subsystem index invalid: expect 1 (Tx) only"); + return 404; + } } diff --git a/plugins/samplemimo/testmosync/testmosync.h b/plugins/samplemimo/testmosync/testmosync.h index 4b208b09d..468937045 100644 --- a/plugins/samplemimo/testmosync/testmosync.h +++ b/plugins/samplemimo/testmosync/testmosync.h @@ -112,11 +112,13 @@ public: virtual bool handleMessage(const Message& message); virtual int webapiRunGet( + int subsystemIndex, SWGSDRangel::SWGDeviceState& response, QString& errorMessage); virtual int webapiRun( bool run, + int subsystemIndex, SWGSDRangel::SWGDeviceState& response, QString& errorMessage);