From 2cefa0ed696b8a4539638e2d9538ba05958678c9 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 9 Jun 2019 01:44:04 +0200 Subject: [PATCH] KiwiSDR: implemented file record name --- plugins/samplesource/kiwisdr/kiwisdrinput.cpp | 52 ++++++++++++++++++- .../samplesource/kiwisdr/kiwisdrsettings.cpp | 1 + .../samplesource/kiwisdr/kiwisdrsettings.h | 1 + sdrbase/resources/webapi/doc/html2/index.html | 5 +- .../webapi/doc/swagger/include/KiwiSDR.yaml | 2 + .../sdrangel/api/swagger/include/KiwiSDR.yaml | 2 + swagger/sdrangel/code/html2/index.html | 5 +- .../code/qt5/client/SWGKiwiSDRSettings.cpp | 23 ++++++++ .../code/qt5/client/SWGKiwiSDRSettings.h | 6 +++ 9 files changed, 94 insertions(+), 3 deletions(-) diff --git a/plugins/samplesource/kiwisdr/kiwisdrinput.cpp b/plugins/samplesource/kiwisdr/kiwisdrinput.cpp index bfbb86498..6ae3657ed 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrinput.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrinput.cpp @@ -214,7 +214,12 @@ bool KiwiSDRInput::handleMessage(const Message& message) if (conf.getStartStop()) { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); + if (m_settings.m_fileRecordName.size() != 0) { + m_fileSink->setFileName(m_settings.m_fileRecordName); + } else { + m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); + } + m_fileSink->startRecording(); } else @@ -264,10 +269,32 @@ int KiwiSDRInput::getStatus() const bool KiwiSDRInput::applySettings(const KiwiSDRSettings& settings, bool force) { + qDebug() << "KiwiSDRInput::applySettings: " + << " m_serverAddress: " << settings.m_serverAddress + << " m_centerFrequency: " << settings.m_centerFrequency + << " m_gain: " << settings.m_gain + << " m_useAGC: " << settings.m_useAGC + << " m_fileRecordName: " << settings.m_fileRecordName + << " m_useAGC: " << settings.m_useAGC + << " m_useReverseAPI: " << settings.m_useReverseAPI + << " m_reverseAPIAddress: " << settings.m_reverseAPIAddress + << " m_reverseAPIPort: " << settings.m_reverseAPIPort + << " m_reverseAPIDeviceIndex: " << settings.m_reverseAPIDeviceIndex; + QList reverseAPIKeys; if (m_settings.m_serverAddress != settings.m_serverAddress || force) + { + reverseAPIKeys.append("serverAddress"); emit setWorkerServerAddress(settings.m_serverAddress); + } + + if (m_settings.m_gain != settings.m_gain || force) { + reverseAPIKeys.append("gain"); + } + if (m_settings.m_useAGC != settings.m_useAGC || force) { + reverseAPIKeys.append("useAGC"); + } if (m_settings.m_gain != settings.m_gain || m_settings.m_useAGC != settings.m_useAGC || force) @@ -361,6 +388,9 @@ int KiwiSDRInput::webapiSettingsPutPatch( if (deviceSettingsKeys.contains("serverAddress")) { settings.m_serverAddress = *response.getKiwiSdrSettings()->getServerAddress(); } + if (deviceSettingsKeys.contains("fileRecordName")) { + settings.m_fileRecordName = *response.getKiwiSdrSettings()->getFileRecordName(); + } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getKiwiSdrSettings()->getUseReverseApi() != 0; } @@ -409,6 +439,23 @@ void KiwiSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re } else { response.getKiwiSdrSettings()->setServerAddress(new QString(settings.m_serverAddress)); } + + if (response.getKiwiSdrSettings()->getFileRecordName()) { + *response.getKiwiSdrSettings()->getFileRecordName() = settings.m_fileRecordName; + } else { + response.getKiwiSdrSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); + } + + response.getKiwiSdrSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + + if (response.getKiwiSdrSettings()->getReverseApiAddress()) { + *response.getKiwiSdrSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + } else { + response.getKiwiSdrSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + } + + response.getKiwiSdrSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getKiwiSdrSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex); } void KiwiSDRInput::webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response) @@ -439,6 +486,9 @@ void KiwiSDRInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("serverAddress") || force) { swgKiwiSDRSettings->setServerAddress(new QString(settings.m_serverAddress)); } + if (deviceSettingsKeys.contains("fileRecordName") || force) { + swgKiwiSDRSettings->setFileRecordName(new QString(settings.m_fileRecordName)); + } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/kiwisdr/kiwisdrsettings.cpp b/plugins/samplesource/kiwisdr/kiwisdrsettings.cpp index 21b30faf2..f0ad5fd63 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrsettings.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrsettings.cpp @@ -33,6 +33,7 @@ void KiwiSDRSettings::resetToDefaults() m_serverAddress = "127.0.0.1:8073"; + m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/kiwisdr/kiwisdrsettings.h b/plugins/samplesource/kiwisdr/kiwisdrsettings.h index f651d97d7..eb2391fd6 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrsettings.h +++ b/plugins/samplesource/kiwisdr/kiwisdrsettings.h @@ -28,6 +28,7 @@ struct KiwiSDRSettings { quint64 m_centerFrequency; QString m_serverAddress; + QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index 76ff99d44..097664313 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -3106,6 +3106,9 @@ margin-bottom: 20px; "type" : "string", "description" : "Distant KiwiSDR instance URL or IPv4 address with port" }, + "fileRecordName" : { + "type" : "string" + }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -25148,7 +25151,7 @@ except ApiException as e:
- Generated 2019-06-08T23:46:41.204+02:00 + Generated 2019-06-09T01:28:52.118+02:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/KiwiSDR.yaml b/sdrbase/resources/webapi/doc/swagger/include/KiwiSDR.yaml index c3c0e5c60..5f22cd599 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/KiwiSDR.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/KiwiSDR.yaml @@ -12,6 +12,8 @@ KiwiSDRSettings: serverAddress: description: Distant KiwiSDR instance URL or IPv4 address with port type: string + fileRecordName: + type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer diff --git a/swagger/sdrangel/api/swagger/include/KiwiSDR.yaml b/swagger/sdrangel/api/swagger/include/KiwiSDR.yaml index c3c0e5c60..5f22cd599 100644 --- a/swagger/sdrangel/api/swagger/include/KiwiSDR.yaml +++ b/swagger/sdrangel/api/swagger/include/KiwiSDR.yaml @@ -12,6 +12,8 @@ KiwiSDRSettings: serverAddress: description: Distant KiwiSDR instance URL or IPv4 address with port type: string + fileRecordName: + type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html index 76ff99d44..097664313 100644 --- a/swagger/sdrangel/code/html2/index.html +++ b/swagger/sdrangel/code/html2/index.html @@ -3106,6 +3106,9 @@ margin-bottom: 20px; "type" : "string", "description" : "Distant KiwiSDR instance URL or IPv4 address with port" }, + "fileRecordName" : { + "type" : "string" + }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -25148,7 +25151,7 @@ except ApiException as e:
- Generated 2019-06-08T23:46:41.204+02:00 + Generated 2019-06-09T01:28:52.118+02:00
diff --git a/swagger/sdrangel/code/qt5/client/SWGKiwiSDRSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGKiwiSDRSettings.cpp index 7cbe5447a..95e3cec3b 100644 --- a/swagger/sdrangel/code/qt5/client/SWGKiwiSDRSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGKiwiSDRSettings.cpp @@ -36,6 +36,8 @@ SWGKiwiSDRSettings::SWGKiwiSDRSettings() { m_center_frequency_isSet = false; server_address = nullptr; m_server_address_isSet = false; + file_record_name = nullptr; + m_file_record_name_isSet = false; use_reverse_api = 0; m_use_reverse_api_isSet = false; reverse_api_address = nullptr; @@ -60,6 +62,8 @@ SWGKiwiSDRSettings::init() { m_center_frequency_isSet = false; server_address = new QString(""); m_server_address_isSet = false; + file_record_name = new QString(""); + m_file_record_name_isSet = false; use_reverse_api = 0; m_use_reverse_api_isSet = false; reverse_api_address = new QString(""); @@ -78,6 +82,9 @@ SWGKiwiSDRSettings::cleanup() { if(server_address != nullptr) { delete server_address; } + if(file_record_name != nullptr) { + delete file_record_name; + } if(reverse_api_address != nullptr) { delete reverse_api_address; @@ -105,6 +112,8 @@ SWGKiwiSDRSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&server_address, pJson["serverAddress"], "QString", "QString"); + ::SWGSDRangel::setValue(&file_record_name, pJson["fileRecordName"], "QString", "QString"); + ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", ""); ::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString"); @@ -141,6 +150,9 @@ SWGKiwiSDRSettings::asJsonObject() { if(server_address != nullptr && *server_address != QString("")){ toJsonValue(QString("serverAddress"), server_address, obj, QString("QString")); } + if(file_record_name != nullptr && *file_record_name != QString("")){ + toJsonValue(QString("fileRecordName"), file_record_name, obj, QString("QString")); + } if(m_use_reverse_api_isSet){ obj->insert("useReverseAPI", QJsonValue(use_reverse_api)); } @@ -197,6 +209,16 @@ SWGKiwiSDRSettings::setServerAddress(QString* server_address) { this->m_server_address_isSet = true; } +QString* +SWGKiwiSDRSettings::getFileRecordName() { + return file_record_name; +} +void +SWGKiwiSDRSettings::setFileRecordName(QString* file_record_name) { + this->file_record_name = file_record_name; + this->m_file_record_name_isSet = true; +} + qint32 SWGKiwiSDRSettings::getUseReverseApi() { return use_reverse_api; @@ -246,6 +268,7 @@ SWGKiwiSDRSettings::isSet(){ if(m_use_agc_isSet){ isObjectUpdated = true; break;} if(m_center_frequency_isSet){ isObjectUpdated = true; break;} if(server_address != nullptr && *server_address != QString("")){ isObjectUpdated = true; break;} + if(file_record_name != nullptr && *file_record_name != QString("")){ isObjectUpdated = true; break;} if(m_use_reverse_api_isSet){ isObjectUpdated = true; break;} if(reverse_api_address != nullptr && *reverse_api_address != QString("")){ isObjectUpdated = true; break;} if(m_reverse_api_port_isSet){ isObjectUpdated = true; break;} diff --git a/swagger/sdrangel/code/qt5/client/SWGKiwiSDRSettings.h b/swagger/sdrangel/code/qt5/client/SWGKiwiSDRSettings.h index 08f8853e2..0a5a0b356 100644 --- a/swagger/sdrangel/code/qt5/client/SWGKiwiSDRSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGKiwiSDRSettings.h @@ -54,6 +54,9 @@ public: QString* getServerAddress(); void setServerAddress(QString* server_address); + QString* getFileRecordName(); + void setFileRecordName(QString* file_record_name); + qint32 getUseReverseApi(); void setUseReverseApi(qint32 use_reverse_api); @@ -82,6 +85,9 @@ private: QString* server_address; bool m_server_address_isSet; + QString* file_record_name; + bool m_file_record_name_isSet; + qint32 use_reverse_api; bool m_use_reverse_api_isSet;