diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 3129a6dd3..d901a31d6 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -595,8 +595,10 @@ if ((NOT CODEC2_FOUND OR CODEC2_EXTERNAL) AND NOT USE_PRECOMPILED_LIBS) elseif (LINUX) set(CODEC2_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib${LIB_SUFFIX}/libcodec2${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") endif () + # Repo temp set to codec2-dev to use v1.0.3 tag + # Should revert to codec2 when we eventually update to latest (v1.2.0+) release ExternalProject_Add(codec2 - GIT_REPOSITORY https://github.com/drowe67/codec2.git + GIT_REPOSITORY https://github.com/drowe67/codec2-dev.git GIT_TAG ${CODEC2_TAG} PREFIX "${EXTERNAL_BUILD_LIBRARIES}/codec2" CMAKE_ARGS ${COMMON_CMAKE_ARGS} diff --git a/plugins/feature/gs232controller/gs232controllergui.cpp b/plugins/feature/gs232controller/gs232controllergui.cpp index f38df2d68..eea0a2b4b 100644 --- a/plugins/feature/gs232controller/gs232controllergui.cpp +++ b/plugins/feature/gs232controller/gs232controllergui.cpp @@ -633,6 +633,8 @@ void GS232ControllerGUI::setPrecision() ui->coord1->setDecimals(m_settings.m_precision); ui->coord2->setDecimals(m_settings.m_precision); ui->tolerance->setDecimals(m_settings.m_precision); + ui->azimuthOffset->setDecimals(m_settings.m_precision); + ui->elevationOffset->setDecimals(m_settings.m_precision); } void GS232ControllerGUI::on_protocol_currentIndexChanged(int index) @@ -699,22 +701,22 @@ void GS232ControllerGUI::on_coord2_valueChanged(double value) ui->targetName->setText(""); } -void GS232ControllerGUI::on_azimuthOffset_valueChanged(int value) +void GS232ControllerGUI::on_azimuthOffset_valueChanged(double value) { if (!m_inputUpdate) { m_inputAzOffset = value; } - m_settings.m_azimuthOffset = value; + m_settings.m_azimuthOffset = (float) value; m_settingsKeys.append("azimuthOffset"); applySettings(); } -void GS232ControllerGUI::on_elevationOffset_valueChanged(int value) +void GS232ControllerGUI::on_elevationOffset_valueChanged(double value) { if (!m_inputUpdate) { m_inputElOffset = value; } - m_settings.m_elevationOffset = value; + m_settings.m_elevationOffset = (float) value; m_settingsKeys.append("elevationOffset"); applySettings(); } @@ -948,8 +950,8 @@ void GS232ControllerGUI::makeUIConnections() QObject::connect(ui->coord1, qOverload(&QDoubleSpinBox::valueChanged), this, &GS232ControllerGUI::on_coord1_valueChanged); QObject::connect(ui->coord2, qOverload(&QDoubleSpinBox::valueChanged), this, &GS232ControllerGUI::on_coord2_valueChanged); QObject::connect(ui->sources, &QComboBox::currentTextChanged, this, &GS232ControllerGUI::on_sources_currentTextChanged); - QObject::connect(ui->azimuthOffset, qOverload(&QSpinBox::valueChanged), this, &GS232ControllerGUI::on_azimuthOffset_valueChanged); - QObject::connect(ui->elevationOffset, qOverload(&QSpinBox::valueChanged), this, &GS232ControllerGUI::on_elevationOffset_valueChanged); + QObject::connect(ui->azimuthOffset, qOverload(&QDoubleSpinBox::valueChanged), this, &GS232ControllerGUI::on_azimuthOffset_valueChanged); + QObject::connect(ui->elevationOffset, qOverload(&QDoubleSpinBox::valueChanged), this, &GS232ControllerGUI::on_elevationOffset_valueChanged); QObject::connect(ui->azimuthMin, qOverload(&QSpinBox::valueChanged), this, &GS232ControllerGUI::on_azimuthMin_valueChanged); QObject::connect(ui->azimuthMax, qOverload(&QSpinBox::valueChanged), this, &GS232ControllerGUI::on_azimuthMax_valueChanged); QObject::connect(ui->elevationMin, qOverload(&QSpinBox::valueChanged), this, &GS232ControllerGUI::on_elevationMin_valueChanged); diff --git a/plugins/feature/gs232controller/gs232controllergui.h b/plugins/feature/gs232controller/gs232controllergui.h index 61d5ebf0d..6ab1a6d9d 100644 --- a/plugins/feature/gs232controller/gs232controllergui.h +++ b/plugins/feature/gs232controller/gs232controllergui.h @@ -110,8 +110,8 @@ private slots: void on_coord1_valueChanged(double value); void on_coord2_valueChanged(double value); void on_sources_currentTextChanged(const QString& text); - void on_azimuthOffset_valueChanged(int value); - void on_elevationOffset_valueChanged(int value); + void on_azimuthOffset_valueChanged(double value); + void on_elevationOffset_valueChanged(double value); void on_azimuthMin_valueChanged(int value); void on_azimuthMax_valueChanged(int value); void on_elevationMin_valueChanged(int value); diff --git a/plugins/feature/gs232controller/gs232controllergui.ui b/plugins/feature/gs232controller/gs232controllergui.ui index 01cf876bc..35a1e1958 100644 --- a/plugins/feature/gs232controller/gs232controllergui.ui +++ b/plugins/feature/gs232controller/gs232controllergui.ui @@ -406,22 +406,6 @@ - - - - Specify an offset angle in degrees that will be added to the target elevation to correct for misalignment - - - -180 - - - 180 - - - 1 - - - @@ -628,19 +612,6 @@ - - - - Specify an offset angel in degrees that will be added to the target azimuth to correct for misalignment - - - -360 - - - 360 - - - @@ -759,6 +730,38 @@ + + + + Specify an offset angle in degrees that will be added to the target azimuth to correct for misalignment + + + 0 + + + -360.000000000000000 + + + 360.000000000000000 + + + + + + + Specify an offset angle in degrees that will be added to the target elevation to correct for misalignment + + + 0 + + + -180.000000000000000 + + + 180.000000000000000 + + + diff --git a/plugins/feature/gs232controller/gs232controllersettings.cpp b/plugins/feature/gs232controller/gs232controllersettings.cpp index 2a822286d..59af88346 100644 --- a/plugins/feature/gs232controller/gs232controllersettings.cpp +++ b/plugins/feature/gs232controller/gs232controllersettings.cpp @@ -53,8 +53,8 @@ void GS232ControllerSettings::resetToDefaults() m_port = 4533; m_track = false; m_source = ""; - m_azimuthOffset = 0; - m_elevationOffset = 0; + m_azimuthOffset = 0.0f; + m_elevationOffset = 0.0f; m_azimuthMin = 0; m_azimuthMax = 450; m_elevationMin = 0; @@ -97,8 +97,8 @@ QByteArray GS232ControllerSettings::serialize() const s.writeU32(12, m_reverseAPIPort); s.writeU32(13, m_reverseAPIFeatureSetIndex); s.writeU32(14, m_reverseAPIFeatureIndex); - s.writeS32(15, m_azimuthOffset); - s.writeS32(16, m_elevationOffset); + s.writeFloat(15, m_azimuthOffset); + s.writeFloat(16, m_elevationOffset); s.writeS32(17, m_azimuthMin); s.writeS32(18, m_azimuthMax); s.writeS32(19, m_elevationMin); @@ -165,8 +165,8 @@ bool GS232ControllerSettings::deserialize(const QByteArray& data) m_reverseAPIFeatureSetIndex = utmp > 99 ? 99 : utmp; d.readU32(14, &utmp, 0); m_reverseAPIFeatureIndex = utmp > 99 ? 99 : utmp; - d.readS32(15, &m_azimuthOffset, 0); - d.readS32(16, &m_elevationOffset, 0); + d.readFloat(15, &m_azimuthOffset, 0.0f); + d.readFloat(16, &m_elevationOffset, 0.0f); d.readS32(17, &m_azimuthMin, 0); d.readS32(18, &m_azimuthMax, 450); d.readS32(19, &m_elevationMin, 0); diff --git a/plugins/feature/gs232controller/gs232controllersettings.h b/plugins/feature/gs232controller/gs232controllersettings.h index 1d116b05d..c97f0b958 100644 --- a/plugins/feature/gs232controller/gs232controllersettings.h +++ b/plugins/feature/gs232controller/gs232controllersettings.h @@ -51,8 +51,8 @@ struct GS232ControllerSettings int m_port; bool m_track; QString m_source; // Plugin to get az/el from. E.g: "R0:0 ADSBDemod". Use a string, so can be set via WebAPI - int m_azimuthOffset; - int m_elevationOffset; + float m_azimuthOffset; + float m_elevationOffset; int m_azimuthMin; int m_azimuthMax; int m_elevationMin; diff --git a/swagger/sdrangel/api/swagger/include/GS232Controller.yaml b/swagger/sdrangel/api/swagger/include/GS232Controller.yaml index 8e47d320e..586a79782 100644 --- a/swagger/sdrangel/api/swagger/include/GS232Controller.yaml +++ b/swagger/sdrangel/api/swagger/include/GS232Controller.yaml @@ -29,10 +29,12 @@ GS232ControllerSettings: type: string azimuthOffset: description: Azimuth offset in degrees - type: integer + type: number + format: float elevationOffset: description: Elevation offset in degrees - type: integer + type: number + format: float azimuthMin: description: Minimum azimuth the controller will output type: integer diff --git a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.cpp index 309e2ee1e..c2b9d7e33 100644 --- a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.cpp @@ -44,9 +44,9 @@ SWGGS232ControllerSettings::SWGGS232ControllerSettings() { m_track_isSet = false; source = nullptr; m_source_isSet = false; - azimuth_offset = 0; + azimuth_offset = 0.0f; m_azimuth_offset_isSet = false; - elevation_offset = 0; + elevation_offset = 0.0f; m_elevation_offset_isSet = false; azimuth_min = 0; m_azimuth_min_isSet = false; @@ -108,9 +108,9 @@ SWGGS232ControllerSettings::init() { m_track_isSet = false; source = new QString(""); m_source_isSet = false; - azimuth_offset = 0; + azimuth_offset = 0.0f; m_azimuth_offset_isSet = false; - elevation_offset = 0; + elevation_offset = 0.0f; m_elevation_offset_isSet = false; azimuth_min = 0; m_azimuth_min_isSet = false; @@ -223,9 +223,9 @@ SWGGS232ControllerSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&source, pJson["source"], "QString", "QString"); - ::SWGSDRangel::setValue(&azimuth_offset, pJson["azimuthOffset"], "qint32", ""); + ::SWGSDRangel::setValue(&azimuth_offset, pJson["azimuthOffset"], "float", ""); - ::SWGSDRangel::setValue(&elevation_offset, pJson["elevationOffset"], "qint32", ""); + ::SWGSDRangel::setValue(&elevation_offset, pJson["elevationOffset"], "float", ""); ::SWGSDRangel::setValue(&azimuth_min, pJson["azimuthMin"], "qint32", ""); @@ -447,22 +447,22 @@ SWGGS232ControllerSettings::setSource(QString* source) { this->m_source_isSet = true; } -qint32 +float SWGGS232ControllerSettings::getAzimuthOffset() { return azimuth_offset; } void -SWGGS232ControllerSettings::setAzimuthOffset(qint32 azimuth_offset) { +SWGGS232ControllerSettings::setAzimuthOffset(float azimuth_offset) { this->azimuth_offset = azimuth_offset; this->m_azimuth_offset_isSet = true; } -qint32 +float SWGGS232ControllerSettings::getElevationOffset() { return elevation_offset; } void -SWGGS232ControllerSettings::setElevationOffset(qint32 elevation_offset) { +SWGGS232ControllerSettings::setElevationOffset(float elevation_offset) { this->elevation_offset = elevation_offset; this->m_elevation_offset_isSet = true; } diff --git a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.h b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.h index 3cc129009..0263dad7c 100644 --- a/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGGS232ControllerSettings.h @@ -67,11 +67,11 @@ public: QString* getSource(); void setSource(QString* source); - qint32 getAzimuthOffset(); - void setAzimuthOffset(qint32 azimuth_offset); + float getAzimuthOffset(); + void setAzimuthOffset(float azimuth_offset); - qint32 getElevationOffset(); - void setElevationOffset(qint32 elevation_offset); + float getElevationOffset(); + void setElevationOffset(float elevation_offset); qint32 getAzimuthMin(); void setAzimuthMin(qint32 azimuth_min); @@ -155,10 +155,10 @@ private: QString* source; bool m_source_isSet; - qint32 azimuth_offset; + float azimuth_offset; bool m_azimuth_offset_isSet; - qint32 elevation_offset; + float elevation_offset; bool m_elevation_offset_isSet; qint32 azimuth_min;