6 #ifndef SWIFT_MISC_AVIATION_NAVSYSTEM_H
7 #define SWIFT_MISC_AVIATION_NAVSYSTEM_H
12 namespace swift::misc::aviation
32 CNavSystem(const QString &name, const swift::misc::physical_quantities::CFrequency &activeFrequency,
33 const swift::misc::physical_quantities::CFrequency &standbyFrequency)
34 :
CModulator(name, activeFrequency, standbyFrequency)
42 this->setFrequencyActive(f);
50 this->setFrequencyStandby(f);
57 return fr >= 108.0 && fr <= 117.95;
64 return fr >= 960.0 && fr <= 1215.0;
70 return isValidCivilNavigationFrequency(f) || isValidMilitaryNavigationFrequency(f);
80 standbyFrequencyMHz < 0 ? activeFrequencyMHz : standbyFrequencyMHz,
90 standbyFrequency.isNull() ? activeFrequency : standbyFrequency);
100 standbyFrequencyMHz < 0 ? activeFrequencyMHz : standbyFrequencyMHz,
110 standbyFrequency.isNull() ? activeFrequency : standbyFrequency);
115 CNavSystem
const *derived()
const {
return static_cast<CNavSystem
const *
>(
this); }
118 CNavSystem *derived() {
return static_cast<CNavSystem *
>(
this); }
Base class for COM, NAV, Squawk units.
static const QString & NameNav2()
NAV2.
static const QString & NameNav1()
NAV1.
NAV system (radio navigation)
static CNavSystem getNav2System(const swift::misc::physical_quantities::CFrequency &activeFrequency, const swift::misc::physical_quantities::CFrequency &standbyFrequency={ 0, swift::misc::physical_quantities::CFrequencyUnit::nullUnit() })
NAV2 unit.
static bool isValidMilitaryNavigationFrequency(const swift::misc::physical_quantities::CFrequency &f)
Valid military aviation frequency?
void setFrequencyStandbyMHz(double frequencyMHz)
Set standby frequency.
static CNavSystem getNav1System(double activeFrequencyMHz, double standbyFrequencyMHz=-1)
NAV1 unit.
static CNavSystem getNav1System(const swift::misc::physical_quantities::CFrequency &activeFrequency, const swift::misc::physical_quantities::CFrequency &standbyFrequency={ 0, swift::misc::physical_quantities::CFrequencyUnit::nullUnit() })
NAV1 unit.
static bool isValidCivilNavigationFrequency(const swift::misc::physical_quantities::CFrequency &f)
Valid civil aviation frequency?
static CNavSystem getNav2System(double activeFrequencyMHz, double standbyFrequencyMHz=-1)
NAV2 unit.
void setFrequencyActiveMHz(double frequencyMHz)
Set active frequency.
static bool isValidNavigationFrequency(const swift::misc::physical_quantities::CFrequency &f)
Valid aviation frequency (military/civil)
static double round(double value, int digits)
Utility round method.
CRTP class template from which a derived class can inherit property indexing functions.
CRTP class template which will generate marshalling operators for a derived class with its own marsha...
static CFrequencyUnit nullUnit()
Null unit.
static CFrequencyUnit MHz()
Megahertz.
double valueRounded(MU unit, int digits=-1) const
Rounded value in given unit.
#define SWIFT_MISC_DECLARE_USING_MIXIN_INDEX(DERIVED)
When a derived class and a base class both inherit from mixin::Index, the derived class uses this mac...
#define SWIFT_MISC_EXPORT
Export a class or function from the library.