6 #include <QRegularExpression>
13 namespace swift::misc::aviation
18 qRegisterMetaType<TransponderMode>();
19 qDBusRegisterMetaType<CTransponder::TransponderMode>();
23 : m_transponderCode(transponderCode), m_transponderMode(transponderMode)
27 : m_transponderCode(transponderCode), m_transponderMode(StateStandby)
33 : m_transponderCode(0), m_transponderMode(transponderMode)
36 m_transponderCode = transponderCode.
toInt(&ok);
37 if (!ok) m_transponderCode = -1;
41 : m_transponderCode(0), m_transponderMode(StateStandby)
44 m_transponderCode = transponderCode.
toInt(&ok);
45 if (!ok) m_transponderCode = -1;
64 default:
return false;
99 const int m =
static_cast<int>(mode);
100 if (m == m_transponderMode) {
return false; }
101 m_transponderMode = m;
126 else { Q_ASSERT_X(
false,
"CTransponder::setTransponderCode",
"illegal transponder value"); }
131 if (transponderCode.
isEmpty() || transponderCode.
length() > 4)
return false;
133 int tc = transponderCode.
toInt(&number);
134 if (!number)
return false;
135 if (tc < 0 || tc > 7777)
return false;
137 return rx.match(transponderCode).hasMatch();
142 if (transponderCode < 0 || transponderCode > 7777)
return false;
153 static const QString i(
"Ident");
154 static const QString s(
"Standby");
155 static const QString mc(
"Mode C");
156 static const QString ms(
"Mode S");
157 static const QString m1(
"Mil.Mode 1");
158 static const QString m2(
"Mil.Mode 2");
159 static const QString m3(
"Mil.Mode 3");
160 static const QString m4(
"Mil.Mode 4");
161 static const QString m5(
"Mil.Mode 5");
167 case ModeC:
return mc;
168 case ModeS:
return ms;
169 case ModeMil1:
return m1;
170 case ModeMil2:
return m2;
171 case ModeMil3:
return m3;
172 case ModeMil4:
return m4;
174 default: qFatal(
"Illegal Transponder Mode");
195 case ModeC:
return mc;
196 case ModeS:
return ms;
197 case ModeMil1:
return m1;
198 case ModeMil2:
return m2;
199 case ModeMil3:
return m3;
200 case ModeMil4:
return m4;
202 default: qFatal(
"Illegal Transponder Mode");
217 case IndexTransponderCodeAndModeFormatted:
222 Q_ASSERT_X(
false,
"CTransponder",
"index unknown");
237 case IndexMode: m_transponderMode = variant.
toInt();
break;
239 case IndexTransponderCode:
240 case IndexTransponderCodeFormatted:
244 case IndexTransponderCodeAndModeFormatted:
245 default: Q_ASSERT_X(
false,
"CTransponder",
"index unknown");
break;
Non-owning reference to a CPropertyIndex with a subset of its features.
QString toQString(bool i18n=false) const
Cast as QString.
CastType frontCasted() const
First element casted to given type, usually the PropertIndex enum.
bool isMyself() const
Myself index, used with nesting.
QString getTransponderCodeAndModeFormatted() const
Formatted with code / mode.
static bool isValidTransponderCode(const QString &transponderCode)
Is valid transponder code?
static CTransponder getStandardTransponder(qint32 transponderCode, TransponderMode mode)
Transponder unit.
static void registerMetadata()
Register metadata.
void setModeAsString(const QString &mode)
Transponder mode as string.
void setTransponderCode(int transponderCode)
Set transponder code.
void setPropertyByIndex(CPropertyIndexRef index, const QVariant &variant)
Set property by index.
static const QString & modeAsShortString(CTransponder::TransponderMode mode)
Transponder mode as short string.
static TransponderMode modeFromString(const QString &modeString)
Mode from string.
int getTransponderCode() const
Transponder code.
bool setTransponderMode(TransponderMode mode)
Set transponder mode.
void toggleTransponderMode()
Transponder mode toggled.
QString convertToQString(bool i18n=false) const
Cast as QString.
QVariant propertyByIndex(CPropertyIndexRef index) const
Property by index.
static const QString & modeAsString(TransponderMode mode)
Transponder mode as string.
bool validValues() const
Are set values valid?
bool isInNormalSendingMode() const
In any sending mode such as MIL1 oder ModeS.
QString getModeAsString() const
Transponder mode as string.
CTransponder()
Default constructor.
TransponderMode
Transponder codes.
@ StateStandby
not a real mode, more a state
@ StateIdent
not a real mode, more a state
TransponderMode getTransponderMode() const
Transponder mode.
QString getTransponderCodeFormatted() const
Transponder code.
QString & append(QChar ch)
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
bool isEmpty() const const
qsizetype length() const const
QString number(double n, char format, int precision)
QString right(qsizetype n) &&
bool startsWith(QChar c, Qt::CaseSensitivity cs) const const
int toInt(bool *ok, int base) const const
bool canConvert() const const
QVariant fromValue(T &&value)
int toInt(bool *ok) const const
QString toString() const const
#define SWIFT_DEFINE_VALUEOBJECT_MIXINS(Namespace, Class)
Explicit template definition of mixins for a CValueObject subclass.