mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-07 11:05:33 +08:00
Ref T27, store flight plan remarks in VATSIM reader
This can be used in airspace monitor
This commit is contained in:
committed by
Mathew Sutcliffe
parent
39bd8aa2bb
commit
042f725e54
@@ -121,14 +121,16 @@ namespace BlackCore
|
||||
CVoiceCapabilities CVatsimDataFileReader::getVoiceCapabilityForCallsign(const CCallsign &callsign)
|
||||
{
|
||||
QReadLocker rl(&this->m_lock);
|
||||
if (this->m_voiceCapabilities.contains(callsign))
|
||||
{
|
||||
return m_voiceCapabilities[callsign];
|
||||
}
|
||||
else
|
||||
{
|
||||
return CVoiceCapabilities::fromVoiceCapabilities(CVoiceCapabilities::Unknown);
|
||||
}
|
||||
return (this->m_voiceCapabilities.contains(callsign)) ?
|
||||
m_voiceCapabilities[callsign] :
|
||||
CVoiceCapabilities::fromVoiceCapabilities(CVoiceCapabilities::Unknown);
|
||||
}
|
||||
|
||||
QString CVatsimDataFileReader::getFlightPlanRemarksForCallsign(const CCallsign &callsign)
|
||||
{
|
||||
QReadLocker rl(&this->m_lock);
|
||||
return (this->m_flightPlanRemarks.contains(callsign)) ?
|
||||
m_flightPlanRemarks[callsign] : "";
|
||||
}
|
||||
|
||||
void CVatsimDataFileReader::updateWithVatsimDataFileData(CSimulatedAircraft &aircraftToBeUdpated) const
|
||||
@@ -237,7 +239,8 @@ namespace BlackCore
|
||||
CServerList fsdServers;
|
||||
CAtcStationList atcStations;
|
||||
CSimulatedAircraftList aircraft;
|
||||
QMap<CCallsign, CVoiceCapabilities> voiceCapabilities;
|
||||
QMap<CCallsign, CVoiceCapabilities> voiceCapabilitiesMap;
|
||||
QMap<CCallsign, QString> flightPlanRemarksMap;
|
||||
QDateTime updateTimestampFromFile;
|
||||
|
||||
QStringList clientSectionAttributes;
|
||||
@@ -289,16 +292,17 @@ namespace BlackCore
|
||||
const double alt = clientPartsMap["altitude"].toDouble();
|
||||
const CFrequency frequency = CFrequency(clientPartsMap["frequency"].toDouble(), CFrequencyUnit::MHz());
|
||||
CCoordinateGeodetic position(lat, lng, alt);
|
||||
CAltitude altitude(alt, CAltitude::MeanSeaLevel, CLengthUnit::ft());
|
||||
QString flightPlanRemarks = clientPartsMap["planned_remarks"];
|
||||
const CAltitude altitude(alt, CAltitude::MeanSeaLevel, CLengthUnit::ft());
|
||||
const QString flightPlanRemarks = clientPartsMap["planned_remarks"].trimmed();
|
||||
|
||||
// Voice capabilities
|
||||
if (!flightPlanRemarks.isEmpty())
|
||||
{
|
||||
CVoiceCapabilities vc(flightPlanRemarks);
|
||||
flightPlanRemarksMap[callsign] = flightPlanRemarks;
|
||||
const CVoiceCapabilities vc(flightPlanRemarks);
|
||||
if (!vc.isUnknown())
|
||||
{
|
||||
voiceCapabilities.insert(callsign, vc);
|
||||
voiceCapabilitiesMap.insert(callsign, vc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,9 +407,8 @@ namespace BlackCore
|
||||
this->setUpdateTimestamp(updateTimestampFromFile);
|
||||
this->m_aircraft = aircraft;
|
||||
this->m_atcStations = atcStations;
|
||||
this->m_voiceCapabilities = voiceCapabilities;
|
||||
|
||||
// check if we need to save in cache
|
||||
this->m_voiceCapabilities = voiceCapabilitiesMap;
|
||||
this->m_flightPlanRemarks = flightPlanRemarksMap;
|
||||
}
|
||||
|
||||
// update cache itself is thread safe
|
||||
@@ -417,7 +420,6 @@ namespace BlackCore
|
||||
this->m_lastGoodSetup.set(vs);
|
||||
}
|
||||
|
||||
|
||||
// warnings, if required
|
||||
if (!illegalIcaoCodes.isEmpty())
|
||||
{
|
||||
|
||||
@@ -109,6 +109,10 @@ namespace BlackCore
|
||||
//! \threadsafe
|
||||
BlackMisc::Network::CVoiceCapabilities getVoiceCapabilityForCallsign(const BlackMisc::Aviation::CCallsign &callsign);
|
||||
|
||||
//! Flight plan remarks for callsign
|
||||
//! \threadsafe
|
||||
QString getFlightPlanRemarksForCallsign(const BlackMisc::Aviation::CCallsign &callsign);
|
||||
|
||||
//! Update aircraft with VATSIM aircraft data from data file
|
||||
//! \threadsafe
|
||||
void updateWithVatsimDataFileData(BlackMisc::Simulation::CSimulatedAircraft &aircraftToBeUdpated) const;
|
||||
@@ -140,11 +144,12 @@ namespace BlackCore
|
||||
private:
|
||||
void reloadSettings();
|
||||
|
||||
BlackMisc::Aviation::CAtcStationList m_atcStations;
|
||||
BlackMisc::Simulation::CSimulatedAircraftList m_aircraft;
|
||||
BlackMisc::Aviation::CAtcStationList m_atcStations;
|
||||
BlackMisc::Simulation::CSimulatedAircraftList m_aircraft;
|
||||
BlackMisc::CData<BlackCore::Data::TVatsimSetup> m_lastGoodSetup { this };
|
||||
BlackMisc::CSettingReadOnly<BlackCore::Vatsim::TVatsimDataFile> m_settings { this, &CVatsimDataFileReader::reloadSettings };
|
||||
QMap<BlackMisc::Aviation::CCallsign, BlackMisc::Network::CVoiceCapabilities> m_voiceCapabilities;
|
||||
QMap<BlackMisc::Aviation::CCallsign, BlackMisc::Network::CVoiceCapabilities> m_voiceCapabilities; //!< voice capabilities
|
||||
QMap<BlackMisc::Aviation::CCallsign, QString> m_flightPlanRemarks; //!< cache for flight plan remarks
|
||||
|
||||
//! Split line and assign values to their corresponding attribute names
|
||||
//! \remark attributes expected as lower case
|
||||
|
||||
Reference in New Issue
Block a user