4 #include "comnavequipment.h"
8 namespace swift::misc::aviation
11 : m_equipment(comNavEquipment), m_cpdlcSatcomEquipment(cpdlcSatcomEquipment)
13 if (m_equipment == ComNavEquipment()) { m_equipment = NoEquip; }
18 if (equipment.isEmpty()) {
return; }
23 QString str = flagToString(flag);
24 if (equipment.contains(str))
26 equipment = equipment.remove(str);
32 QString str = flagToString(flag);
33 if (equipment.contains(str))
35 equipment = equipment.remove(str);
36 m_cpdlcSatcomEquipment |= flag;
40 append_equipment_flag_if_exist(Standard);
41 append_equipment_flag_if_exist(Gbas);
42 append_equipment_flag_if_exist(Lpv);
43 append_equipment_flag_if_exist(LoranC);
44 append_equipment_flag_if_exist(Dme);
45 append_equipment_flag_if_exist(FmcAcars);
46 append_equipment_flag_if_exist(DFisAcars);
47 append_equipment_flag_if_exist(PdcAcars);
48 append_equipment_flag_if_exist(Adf);
49 append_equipment_flag_if_exist(Gnss);
50 append_equipment_flag_if_exist(HfRtf);
51 append_equipment_flag_if_exist(InertiaNavigation);
52 append_equipment_flag_if_exist(Mls);
53 append_equipment_flag_if_exist(Ils);
54 append_equipment_flag_if_exist(NoEquip);
55 append_equipment_flag_if_exist(Vor);
56 append_equipment_flag_if_exist(Pbn);
57 append_equipment_flag_if_exist(Tacan);
58 append_equipment_flag_if_exist(UhfRtf);
59 append_equipment_flag_if_exist(VhfRtf);
60 append_equipment_flag_if_exist(Rvsm);
61 append_equipment_flag_if_exist(Mnps);
62 append_equipment_flag_if_exist(Vhf833);
63 append_equipment_flag_if_exist(Other);
64 append_satcom_flag_if_exist(CpdlcAtn);
65 append_satcom_flag_if_exist(CpdlcFansHfdl);
66 append_satcom_flag_if_exist(CpdlcFansVdlA);
67 append_satcom_flag_if_exist(CpdlcFansVdl2);
68 append_satcom_flag_if_exist(CpdlcFansSatcomInmarsat);
69 append_satcom_flag_if_exist(CpdlcFansSatcomMtsat);
70 append_satcom_flag_if_exist(CpdlcFansSatcomIridium);
71 append_satcom_flag_if_exist(AtcSatvoiceInmarsat);
72 append_satcom_flag_if_exist(AtcSatvoiceMtsat);
73 append_satcom_flag_if_exist(AtcSatvoiceIridium);
74 append_satcom_flag_if_exist(CpdlcRcp400);
75 append_satcom_flag_if_exist(CpdlcRcp240);
76 append_satcom_flag_if_exist(SatvoiceRcp400);
78 if (!equipment.isEmpty() && m_equipment == ComNavEquipment())
81 m_equipment = NoEquip;
82 m_cpdlcSatcomEquipment = {};
91 if (m_equipment.testFlag(flag)) list << flagToString(flag);
95 if (m_cpdlcSatcomEquipment.testFlag(flag)) list << flagToString(flag);
98 append_equipment_flag_if_exist(Standard);
99 append_equipment_flag_if_exist(Gbas);
100 append_equipment_flag_if_exist(Lpv);
101 append_equipment_flag_if_exist(LoranC);
102 append_equipment_flag_if_exist(Dme);
103 append_equipment_flag_if_exist(FmcAcars);
104 append_equipment_flag_if_exist(DFisAcars);
105 append_equipment_flag_if_exist(PdcAcars);
106 append_equipment_flag_if_exist(Adf);
107 append_equipment_flag_if_exist(Gnss);
108 append_equipment_flag_if_exist(HfRtf);
109 append_equipment_flag_if_exist(InertiaNavigation);
110 append_satcom_flag_if_exist(CpdlcAtn);
111 append_satcom_flag_if_exist(CpdlcFansHfdl);
112 append_satcom_flag_if_exist(CpdlcFansVdlA);
113 append_satcom_flag_if_exist(CpdlcFansVdl2);
114 append_satcom_flag_if_exist(CpdlcFansSatcomInmarsat);
115 append_satcom_flag_if_exist(CpdlcFansSatcomMtsat);
116 append_satcom_flag_if_exist(CpdlcFansSatcomIridium);
117 append_equipment_flag_if_exist(Mls);
118 append_equipment_flag_if_exist(Ils);
119 append_satcom_flag_if_exist(AtcSatvoiceInmarsat);
120 append_satcom_flag_if_exist(AtcSatvoiceMtsat);
121 append_satcom_flag_if_exist(AtcSatvoiceIridium);
122 append_equipment_flag_if_exist(NoEquip);
123 append_equipment_flag_if_exist(Vor);
124 append_satcom_flag_if_exist(CpdlcRcp400);
125 append_satcom_flag_if_exist(CpdlcRcp240);
126 append_satcom_flag_if_exist(SatvoiceRcp400);
127 append_equipment_flag_if_exist(Pbn);
128 append_equipment_flag_if_exist(Tacan);
129 append_equipment_flag_if_exist(UhfRtf);
130 append_equipment_flag_if_exist(VhfRtf);
131 append_equipment_flag_if_exist(Rvsm);
132 append_equipment_flag_if_exist(Mnps);
133 append_equipment_flag_if_exist(Vhf833);
134 append_equipment_flag_if_exist(Other);
142 Q_ASSERT_X(!equipmentString.isEmpty(), Q_FUNC_INFO,
"Equipment string should not be empty");
143 return equipmentString;
146 QString CComNavEquipment::flagToString(CpdlcSatcomEquipmentOption flag)
150 case CpdlcAtn:
return QStringLiteral(
"J1");
151 case CpdlcFansHfdl:
return QStringLiteral(
"J2");
152 case CpdlcFansVdlA:
return QStringLiteral(
"J3");
153 case CpdlcFansVdl2:
return QStringLiteral(
"J4");
154 case CpdlcFansSatcomInmarsat:
return QStringLiteral(
"J5");
155 case CpdlcFansSatcomMtsat:
return QStringLiteral(
"J6");
156 case CpdlcFansSatcomIridium:
return QStringLiteral(
"J7");
157 case AtcSatvoiceInmarsat:
return QStringLiteral(
"M1");
158 case AtcSatvoiceMtsat:
return QStringLiteral(
"M2");
159 case AtcSatvoiceIridium:
return QStringLiteral(
"M3");
160 case CpdlcRcp400:
return QStringLiteral(
"P1");
161 case CpdlcRcp240:
return QStringLiteral(
"P2");
162 case SatvoiceRcp400:
return QStringLiteral(
"P3");
167 QString CComNavEquipment::flagToString(ComNavEquipmentOption flag)
171 case Standard:
return QStringLiteral(
"S");
172 case Gbas:
return QStringLiteral(
"A");
173 case Lpv:
return QStringLiteral(
"B");
174 case LoranC:
return QStringLiteral(
"C");
175 case Dme:
return QStringLiteral(
"D");
176 case FmcAcars:
return QStringLiteral(
"E1");
177 case DFisAcars:
return QStringLiteral(
"E2");
178 case PdcAcars:
return QStringLiteral(
"E3");
179 case Adf:
return QStringLiteral(
"F");
180 case Gnss:
return QStringLiteral(
"G");
181 case HfRtf:
return QStringLiteral(
"H");
182 case InertiaNavigation:
return QStringLiteral(
"I");
183 case Mls:
return QStringLiteral(
"K");
184 case Ils:
return QStringLiteral(
"L");
185 case NoEquip:
return QStringLiteral(
"N");
186 case Vor:
return QStringLiteral(
"O");
187 case Pbn:
return QStringLiteral(
"R");
188 case Tacan:
return QStringLiteral(
"T");
189 case UhfRtf:
return QStringLiteral(
"U");
190 case VhfRtf:
return QStringLiteral(
"V");
191 case Rvsm:
return QStringLiteral(
"W");
192 case Mnps:
return QStringLiteral(
"X");
193 case Vhf833:
return QStringLiteral(
"Y");
194 case Other:
return QStringLiteral(
"Z");
202 static const QStringList r({
"S",
"A",
"B",
"C",
"D",
"E1",
"E2",
"E3",
"F",
"G",
"H",
"I",
"J1",
203 "J2",
"J3",
"J4",
"J5",
"J6",
"J7",
"K",
"L",
"M1",
"M2",
"M3",
"N",
"O",
204 "P1",
"P2",
"P3",
"R",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z" });
QString convertToQString(bool i18n=false) const
Get the equipment string of this object (for example "SDE2E3FGHIJ1RWXY")
CComNavEquipment()=default
Create default equipment with Standard COM/NAV.
CpdlcSatcomEquipmentOption
CPLDC and SATCOM equipment options.
QStringList enabledOptions() const
Get all enabled equipment codes of this object as a list.
ComNavEquipmentOption
COM/NAV equipment options.
static QStringList allEquipmentLetters()
Get all possible equipment code letters.
#define SWIFT_DEFINE_VALUEOBJECT_MIXINS(Namespace, Class)
Explicit template definition of mixins for a CValueObject subclass.