mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
refs #219, load flight plan
* fixed issue with parsing, only default locale is used. Now user's local possible * allow to load FP for other callsigns as well (voice capabilities) * Improved handling of CTime, inclusive bug fixes and time formatting * Max. lengths for FP fields as const value (so we can change it if required) * Load FP from GUI component * Samples for PQ classes * Adjusted depending classes (e.g. client)
This commit is contained in:
@@ -37,6 +37,9 @@ namespace BlackMisc
|
||||
SVFR //!< Special VFR (reserved for ATC use)
|
||||
};
|
||||
|
||||
static const int MaxRemarksLength = 150; //!< Max remarks length
|
||||
static const int MaxRouteLength = 150; //!< Max route length
|
||||
|
||||
/*!
|
||||
* Default constructor
|
||||
*/
|
||||
@@ -50,8 +53,12 @@ namespace BlackMisc
|
||||
const CAltitude &cruiseAltitude, const PhysicalQuantities::CSpeed &cruiseTrueAirspeed, FlightRules flightRules, const QString &route, const QString &remarks)
|
||||
: m_equipmentIcao(equipmentIcao), m_originAirportIcao(originAirportIcao), m_destinationAirportIcao(destinationAirportIcao), m_alternateAirportIcao(alternateAirportIcao),
|
||||
m_takeoffTimePlanned(takeoffTimePlanned), m_takeoffTimeActual(takeoffTimeActual), m_enrouteTime(enrouteTime), m_fuelTime(fuelTime),
|
||||
m_cruiseAltitude(cruiseAltitude), m_cruiseTrueAirspeed(cruiseTrueAirspeed), m_flightRules(flightRules), m_route(route), m_remarks(remarks.left(100))
|
||||
{}
|
||||
m_cruiseAltitude(cruiseAltitude), m_cruiseTrueAirspeed(cruiseTrueAirspeed), m_flightRules(flightRules),
|
||||
m_route(route.trimmed().left(MaxRouteLength).toUpper()), m_remarks(remarks.trimmed().left(MaxRemarksLength).toUpper())
|
||||
{
|
||||
m_enrouteTime.switchUnit(BlackMisc::PhysicalQuantities::CTimeUnit::hrmin());
|
||||
m_fuelTime.switchUnit(BlackMisc::PhysicalQuantities::CTimeUnit::hrmin());
|
||||
}
|
||||
|
||||
//! Set ICAO aircraft equipment code string (e.g. "T/A320/F")
|
||||
void setEquipmentIcao(const QString &equipmentIcao) { m_equipmentIcao = equipmentIcao; }
|
||||
@@ -87,10 +94,10 @@ namespace BlackMisc
|
||||
void setTakeoffTimeActual(QString time) { m_takeoffTimeActual = QDateTime::currentDateTimeUtc(); m_takeoffTimeActual.setTime(QTime::fromString(time, "hh:mm"));}
|
||||
|
||||
//! Set planned enroute flight time
|
||||
void setEnrouteTime(const PhysicalQuantities::CTime &enrouteTime) { m_enrouteTime = enrouteTime; }
|
||||
void setEnrouteTime(const PhysicalQuantities::CTime &enrouteTime) { m_enrouteTime = enrouteTime; m_enrouteTime.switchUnit(BlackMisc::PhysicalQuantities::CTimeUnit::hrmin());}
|
||||
|
||||
//! Set amount of fuel load in time
|
||||
void setFuelTime(const PhysicalQuantities::CTime &fuelTime) { m_fuelTime = fuelTime; }
|
||||
void setFuelTime(const PhysicalQuantities::CTime &fuelTime) { m_fuelTime = fuelTime; m_fuelTime.switchUnit(BlackMisc::PhysicalQuantities::CTimeUnit::hrmin());}
|
||||
|
||||
//! Set amount of fuel load in time hh:mm
|
||||
void setFuelTime(const QString &fuelTime) { m_fuelTime = PhysicalQuantities::CTime(fuelTime); }
|
||||
@@ -105,13 +112,13 @@ namespace BlackMisc
|
||||
void setFlightRule(FlightRules flightRules) { m_flightRules = flightRules; }
|
||||
|
||||
//! Set route string
|
||||
void setRoute(const QString &route) { m_route = route; }
|
||||
void setRoute(const QString &route) { m_route = route.trimmed().left(MaxRouteLength).toUpper(); }
|
||||
|
||||
//! Set remarks string (max 100 characters)
|
||||
void setRemarks(const QString &remarks) { m_remarks = remarks.left(100); }
|
||||
void setRemarks(const QString &remarks) { m_remarks = remarks.trimmed().left(MaxRemarksLength).toUpper(); }
|
||||
|
||||
//! When last sent
|
||||
void setWhenLastSent(const QDateTime &dateTime) { m_lastSent = dateTime; }
|
||||
void setWhenLastSentOrLoaded(const QDateTime &dateTime) { m_lastSentOrLoaded = dateTime; }
|
||||
|
||||
//! Get ICAO aircraft equipment code string
|
||||
const QString &getEquipmentIcao() const { return m_equipmentIcao; }
|
||||
@@ -147,7 +154,7 @@ namespace BlackMisc
|
||||
const PhysicalQuantities::CTime &getFuelTime() const { return m_fuelTime; }
|
||||
|
||||
//! Get amount of fuel load in time
|
||||
QString getFuelTimeHourMin() const { return m_enrouteTime.valueRoundedWithUnit(BlackMisc::PhysicalQuantities::CTimeUnit::hrmin()); }
|
||||
QString getFuelTimeHourMin() const { return m_fuelTime.valueRoundedWithUnit(BlackMisc::PhysicalQuantities::CTimeUnit::hrmin()); }
|
||||
|
||||
//! Cruising altitudes
|
||||
const BlackMisc::Aviation::CAltitude &getCruiseAltitude() const { return m_cruiseAltitude; }
|
||||
@@ -162,10 +169,16 @@ namespace BlackMisc
|
||||
const QString &getRoute() const { return m_route; }
|
||||
|
||||
//! When last sent
|
||||
const QDateTime &whenLastSent() const { return m_lastSent; }
|
||||
const QDateTime &whenLastSentOrLoaded() const { return m_lastSentOrLoaded; }
|
||||
|
||||
//! Flight plan already sent
|
||||
bool wasSent() const { return m_lastSent.isValid() && !m_lastSent.isNull(); }
|
||||
bool wasSentOrLoaded() const { return m_lastSentOrLoaded.isValid() && !m_lastSentOrLoaded.isNull(); }
|
||||
|
||||
//! \brief Received before n ms
|
||||
qint64 timeDiffSentOrLoadedMs() const
|
||||
{
|
||||
return this->m_lastSentOrLoaded.msecsTo(QDateTime::currentDateTimeUtc());
|
||||
}
|
||||
|
||||
//! Get remarks string
|
||||
const QString &getRemarks() const { return m_remarks; }
|
||||
@@ -219,13 +232,13 @@ namespace BlackMisc
|
||||
FlightRules m_flightRules;
|
||||
QString m_route;
|
||||
QString m_remarks;
|
||||
QDateTime m_lastSent;
|
||||
QDateTime m_lastSentOrLoaded;
|
||||
};
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
Q_DECLARE_METATYPE(BlackMisc::Aviation::CFlightPlan)
|
||||
BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::Aviation::CFlightPlan, (o.m_equipmentIcao, o.m_originAirportIcao, o.m_destinationAirportIcao, o.m_alternateAirportIcao,
|
||||
o.m_takeoffTimePlanned, o.m_takeoffTimeActual, o.m_enrouteTime, o.m_fuelTime, o.m_cruiseAltitude, tie(o.m_cruiseTrueAirspeed, o.m_flightRules, o.m_route, o.m_remarks, o.m_lastSent)))
|
||||
o.m_takeoffTimePlanned, o.m_takeoffTimeActual, o.m_enrouteTime, o.m_fuelTime, o.m_cruiseAltitude, tie(o.m_cruiseTrueAirspeed, o.m_flightRules, o.m_route, o.m_remarks, o.m_lastSentOrLoaded)))
|
||||
|
||||
#endif // guard
|
||||
|
||||
Reference in New Issue
Block a user