From bf2669553018af0bcc6d33c0ee48f194beb386f2 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 16 Apr 2019 00:09:58 +0200 Subject: [PATCH] Ref T609, added send/receive flags for COM unit --- src/blackmisc/aviation/modulator.cpp | 110 +++++++++++++-------------- src/blackmisc/aviation/modulator.h | 23 ++++-- 2 files changed, 68 insertions(+), 65 deletions(-) diff --git a/src/blackmisc/aviation/modulator.cpp b/src/blackmisc/aviation/modulator.cpp index 3aeabfc55..05da59e50 100644 --- a/src/blackmisc/aviation/modulator.cpp +++ b/src/blackmisc/aviation/modulator.cpp @@ -28,75 +28,87 @@ namespace BlackMisc template void CModulator::toggleActiveStandby() { - const CFrequency a = this->m_frequencyActive; - this->m_frequencyActive = this->m_frequencyStandby; - this->m_frequencyStandby = a; + const CFrequency a = m_frequencyActive; + m_frequencyActive = m_frequencyStandby; + m_frequencyStandby = a; } template BlackMisc::PhysicalQuantities::CFrequency CModulator::getFrequencyActive() const { - return this->m_frequencyActive; + return m_frequencyActive; } template BlackMisc::PhysicalQuantities::CFrequency CModulator::getFrequencyStandby() const { - return this->m_frequencyStandby; + return m_frequencyStandby; } template void CModulator::setFrequencyActive(const BlackMisc::PhysicalQuantities::CFrequency &frequency) { - this->m_frequencyActive = frequency; + m_frequencyActive = frequency; } template void CModulator::setFrequencyStandby(const BlackMisc::PhysicalQuantities::CFrequency &frequency) { - this->m_frequencyStandby = frequency; + m_frequencyStandby = frequency; } template int CModulator::getVolumeOutput() const { - return this->m_volumeOutput; + return m_volumeOutput; } template int CModulator::getVolumeInput() const { - return this->m_volumeInput; + return m_volumeInput; } template void CModulator::setVolumeOutput(int volume) { - this->m_volumeOutput = volume; + m_volumeOutput = volume; } template void CModulator::setVolumeInput(int volume) { - this->m_volumeInput = volume; + m_volumeInput = volume; } template - bool CModulator::isEnabled() const + bool CModulator::isSendEnabled() const { - return this->m_enabled; + return m_sendEnabled; + } + + template + bool CModulator::isReceiveEnabled() const + { + return m_receiveEnabled; } template - void CModulator::setEnabled(bool enable) + void CModulator::setSendEnabled(bool enable) { - this->m_enabled = enable; + m_sendEnabled = enable; + } + + template + void CModulator::setReceiveEnabled(bool enable) + { + m_receiveEnabled = enable; } template QString CModulator::getName() const { - return this->m_name; + return m_name; } template @@ -106,16 +118,12 @@ namespace BlackMisc const ColumnIndex i = index.frontCasted(); switch (i) { - case IndexActiveFrequency: - return this->getFrequencyActive().propertyByIndex(index.copyFrontRemoved()); - case IndexStandbyFrequency: - return this->getFrequencyStandby().propertyByIndex(index.copyFrontRemoved()); - case IndexEnabled: - return CVariant::from(this->isEnabled()); - case IndexInputVolume: - return CVariant::from(this->getVolumeInput()); - case IndexOutputVolume: - return CVariant::from(this->getVolumeOutput()); + case IndexActiveFrequency: return this->getFrequencyActive().propertyByIndex(index.copyFrontRemoved()); + case IndexStandbyFrequency: return this->getFrequencyStandby().propertyByIndex(index.copyFrontRemoved()); + case IndexEnabledSend: return CVariant::from(this->isSendEnabled()); + case IndexEnabledReceive: return CVariant::from(this->isReceiveEnabled()); + case IndexInputVolume: return CVariant::from(this->getVolumeInput()); + case IndexOutputVolume: return CVariant::from(this->getVolumeOutput()); default: return CValueObject>::propertyByIndex(index); } @@ -128,21 +136,12 @@ namespace BlackMisc const ColumnIndex i = index.frontCasted(); switch (i) { - case IndexActiveFrequency: - this->m_frequencyActive.setPropertyByIndex(index.copyFrontRemoved(), variant); - break; - case IndexStandbyFrequency: - this->m_frequencyStandby.setPropertyByIndex(index.copyFrontRemoved(), variant); - break; - case IndexEnabled: - this->setEnabled(variant.toBool()); - break; - case IndexInputVolume: - this->setVolumeInput(variant.toInt()); - break; - case IndexOutputVolume: - this->setVolumeOutput(variant.toInt()); - break; + case IndexActiveFrequency: m_frequencyActive.setPropertyByIndex(index.copyFrontRemoved(), variant); break; + case IndexStandbyFrequency: m_frequencyStandby.setPropertyByIndex(index.copyFrontRemoved(), variant); break; + case IndexEnabledSend: this->setSendEnabled(variant.toBool()); break; + case IndexEnabledReceive: this->setReceiveEnabled(variant.toBool()); break; + case IndexInputVolume: this->setVolumeInput(variant.toInt()); break; + case IndexOutputVolume: this->setVolumeOutput(variant.toInt()); break; default: CValueObject>::setPropertyByIndex(index, variant); break; @@ -152,22 +151,17 @@ namespace BlackMisc template int CModulator::comparePropertyByIndex(const CPropertyIndex &index, const AVIO &compareValue) const { - if (index.isMyself()) { return this->m_frequencyActive.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_frequencyActive); } + if (index.isMyself()) { return m_frequencyActive.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_frequencyActive); } const ColumnIndex i = index.frontCasted(); switch (i) { - case IndexActiveFrequency: - return this->m_frequencyActive.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_frequencyActive); - case IndexStandbyFrequency: - return this->m_frequencyStandby.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_frequencyStandby); - case IndexEnabled: - return Compare::compare(this->isEnabled(), compareValue.isEnabled()); - case IndexInputVolume: - return Compare::compare(this->getVolumeInput(), compareValue.getVolumeInput()); - case IndexOutputVolume: - return Compare::compare(this->getVolumeOutput(), compareValue.getVolumeOutput()); - default: - break; + case IndexActiveFrequency: return m_frequencyActive.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_frequencyActive); + case IndexStandbyFrequency: return m_frequencyStandby.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.m_frequencyStandby); + case IndexEnabledSend: return Compare::compare(this->isSendEnabled(), compareValue.isSendEnabled()); + case IndexEnabledReceive: return Compare::compare(this->isReceiveEnabled(), compareValue.isReceiveEnabled()); + case IndexInputVolume: return Compare::compare(this->getVolumeInput(), compareValue.getVolumeInput()); + case IndexOutputVolume: return Compare::compare(this->getVolumeOutput(), compareValue.getVolumeOutput()); + default: break; } Q_ASSERT_X(false, Q_FUNC_INFO, "Compare failed"); return 0; @@ -190,21 +184,21 @@ namespace BlackMisc QString CModulator::convertToQString(bool i18n) const { QString s(this->getName()); - s.append(" Active: ").append(this->m_frequencyActive.valueRoundedWithUnit(3, i18n)); - s.append(" Standby: ").append(this->m_frequencyStandby.valueRoundedWithUnit(3, i18n)); + s.append(" Active: ").append(m_frequencyActive.valueRoundedWithUnit(3, i18n)); + s.append(" Standby: ").append(m_frequencyStandby.valueRoundedWithUnit(3, i18n)); return s; } template void CModulator::setFrequencyActiveKHz(double frequencyKHz) { - this->m_frequencyActive = BlackMisc::PhysicalQuantities::CFrequency(frequencyKHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz()); + m_frequencyActive = BlackMisc::PhysicalQuantities::CFrequency(frequencyKHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz()); } template void CModulator::setFrequencyStandbyKHz(double frequencyKHz) { - this->m_frequencyStandby = BlackMisc::PhysicalQuantities::CFrequency(frequencyKHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz()); + m_frequencyStandby = BlackMisc::PhysicalQuantities::CFrequency(frequencyKHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz()); } template diff --git a/src/blackmisc/aviation/modulator.h b/src/blackmisc/aviation/modulator.h index 04ce818cc..7ea816168 100644 --- a/src/blackmisc/aviation/modulator.h +++ b/src/blackmisc/aviation/modulator.h @@ -29,7 +29,8 @@ namespace BlackMisc IndexStandbyFrequency, IndexOutputVolume, IndexInputVolume, - IndexEnabled + IndexEnabledSend, + IndexEnabledReceive }; //! Toggle active and standby frequencies @@ -57,10 +58,16 @@ namespace BlackMisc QString getName() const; //! Enabled? - bool isEnabled() const; + bool isSendEnabled() const; //! Enabled? - void setEnabled(bool enable); + bool isReceiveEnabled() const; + + //! Enabled? + void setSendEnabled(bool enable); + + //! Enabled? + void setReceiveEnabled(bool enable); //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const BlackMisc::CPropertyIndex &index) const; @@ -121,9 +128,10 @@ namespace BlackMisc QString m_name; //!< name of the unit BlackMisc::PhysicalQuantities::CFrequency m_frequencyActive; //!< active frequency BlackMisc::PhysicalQuantities::CFrequency m_frequencyStandby; //!< standby frequency - int m_volumeInput = 0; //!< volume input - int m_volumeOutput = 0; //!< volume output - bool m_enabled = true; //!< is enabled, used e.g. for mute etc. + int m_volumeInput = 0; //!< volume input + int m_volumeOutput = 0; //!< volume output + bool m_sendEnabled = true; //!< is enabled, used e.g. for mute etc. + bool m_receiveEnabled = true; //!< is enabled, used e.g. for mute etc. //! Easy access to derived class (CRTP template parameter) AVIO const *derived() const @@ -144,7 +152,8 @@ namespace BlackMisc BLACK_METAMEMBER(frequencyStandby), BLACK_METAMEMBER(volumeInput), BLACK_METAMEMBER(volumeOutput), - BLACK_METAMEMBER(enabled) + BLACK_METAMEMBER(sendEnabled), + BLACK_METAMEMBER(receiveEnabled) ); };