mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
refs #837 CAircraftSituation altitude is part of its position.
This commit is contained in:
@@ -46,8 +46,8 @@ namespace BlackCore
|
||||
CCoordinateGeodetic(
|
||||
CLatitude::fromWgs84("N 049° 18' 17"),
|
||||
CLongitude::fromWgs84("E 008° 27' 05"),
|
||||
CLength(0, CLengthUnit::m())),
|
||||
CAltitude(312, CAltitude::MeanSeaLevel, CLengthUnit::ft())
|
||||
CAltitude(312, CAltitude::MeanSeaLevel, CLengthUnit::ft())
|
||||
)
|
||||
);
|
||||
return situation;
|
||||
}
|
||||
|
||||
@@ -800,8 +800,7 @@ namespace BlackCore
|
||||
// if altered in underlying classes, this change needs to be reverted
|
||||
CAircraftSituation situation(
|
||||
callsign,
|
||||
CCoordinateGeodetic(position->latitude, position->longitude),
|
||||
CAltitude(position->altitudePressure, CAltitude::MeanSeaLevel, CLengthUnit::ft()),
|
||||
CCoordinateGeodetic(position->latitude, position->longitude, position->altitudePressure),
|
||||
CHeading(position->heading, CHeading::True, CAngleUnit::deg()),
|
||||
CAngle(position->pitch, CAngleUnit::deg()),
|
||||
CAngle(position->bank, CAngleUnit::deg()),
|
||||
@@ -878,8 +877,7 @@ namespace BlackCore
|
||||
{
|
||||
CAircraftSituation situation(
|
||||
CCallsign(sender),
|
||||
CCoordinateGeodetic(position->latitude, position->longitude, 0.0),
|
||||
CAltitude(position->altitudeTrue, CAltitude::MeanSeaLevel, CLengthUnit::ft()),
|
||||
CCoordinateGeodetic(position->latitude, position->longitude, position->altitudeTrue),
|
||||
CHeading(position->heading, CHeading::True, CAngleUnit::deg()),
|
||||
CAngle(position->pitch, CAngleUnit::deg()),
|
||||
CAngle(position->bank, CAngleUnit::deg()),
|
||||
|
||||
@@ -289,7 +289,7 @@ namespace BlackCore
|
||||
const double lng = clientPartsMap["longitude"].toDouble();
|
||||
const double alt = clientPartsMap["altitude"].toDouble();
|
||||
const CFrequency frequency = CFrequency(clientPartsMap["frequency"].toDouble(), CFrequencyUnit::MHz());
|
||||
CCoordinateGeodetic position(lat, lng, -1);
|
||||
CCoordinateGeodetic position(lat, lng, alt);
|
||||
CAltitude altitude(alt, CAltitude::MeanSeaLevel, CLengthUnit::ft());
|
||||
QString flightPlanRemarks = clientPartsMap["planned_remarks"];
|
||||
|
||||
@@ -308,7 +308,7 @@ namespace BlackCore
|
||||
{
|
||||
// Pilot section
|
||||
const double groundspeed = clientPartsMap["groundspeed"].toDouble();
|
||||
CAircraftSituation situation(position, altitude);
|
||||
CAircraftSituation situation(position);
|
||||
situation.setGroundSpeed(CSpeed(groundspeed, CSpeedUnit::kts()));
|
||||
CSimulatedAircraft currentAircraft(user.getCallsign().getStringAsSet(), user, situation);
|
||||
|
||||
|
||||
@@ -27,13 +27,13 @@ namespace BlackMisc
|
||||
CAircraftSituation::CAircraftSituation()
|
||||
: m_groundElevation({ 0, nullptr }, CAltitude::MeanSeaLevel) {}
|
||||
|
||||
CAircraftSituation::CAircraftSituation(const CCoordinateGeodetic &position, const CAltitude &altitude, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CAltitude &groundElevation)
|
||||
: m_position(position), m_altitude(altitude), m_heading(heading), m_pitch(pitch),
|
||||
CAircraftSituation::CAircraftSituation(const CCoordinateGeodetic &position, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CAltitude &groundElevation)
|
||||
: m_position(position), m_heading(heading), m_pitch(pitch),
|
||||
m_bank(bank), m_groundSpeed(gs), m_groundElevation(groundElevation) {}
|
||||
|
||||
CAircraftSituation::CAircraftSituation(const CCallsign &correspondingCallsign, const CCoordinateGeodetic &position, const CAltitude &altitude, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CAltitude &groundElevation)
|
||||
CAircraftSituation::CAircraftSituation(const CCallsign &correspondingCallsign, const CCoordinateGeodetic &position, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CAltitude &groundElevation)
|
||||
: m_correspondingCallsign(correspondingCallsign),
|
||||
m_position(position), m_altitude(altitude), m_heading(heading), m_pitch(pitch),
|
||||
m_position(position), m_heading(heading), m_pitch(pitch),
|
||||
m_bank(bank), m_groundSpeed(gs), m_groundElevation(groundElevation)
|
||||
{
|
||||
m_correspondingCallsign.setTypeHint(CCallsign::Aircraft);
|
||||
@@ -42,7 +42,6 @@ namespace BlackMisc
|
||||
QString CAircraftSituation::convertToQString(bool i18n) const
|
||||
{
|
||||
QString s(this->m_position.toQString(i18n));
|
||||
s.append(" altitude: ").append(this->m_altitude.toQString(i18n));
|
||||
s.append(" bank: ").append(this->m_bank.toQString(i18n));
|
||||
s.append(" pitch: ").append(this->m_pitch.toQString(i18n));
|
||||
s.append(" gs: ").append(this->m_groundSpeed.toQString(i18n));
|
||||
@@ -74,7 +73,7 @@ namespace BlackMisc
|
||||
case IndexLongitude:
|
||||
return this->longitude().propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexAltitude:
|
||||
return this->m_altitude.propertyByIndex(index.copyFrontRemoved());
|
||||
return this->getAltitude().propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexHeading:
|
||||
return this->m_heading.propertyByIndex(index.copyFrontRemoved());
|
||||
case IndexPitch:
|
||||
@@ -105,9 +104,6 @@ namespace BlackMisc
|
||||
case IndexPosition:
|
||||
this->m_position.setPropertyByIndex(index.copyFrontRemoved(), variant);
|
||||
break;
|
||||
case IndexAltitude:
|
||||
this->m_altitude.setPropertyByIndex(index.copyFrontRemoved(), variant);
|
||||
break;
|
||||
case IndexPitch:
|
||||
this->m_pitch.setPropertyByIndex(index.copyFrontRemoved(), variant);
|
||||
break;
|
||||
@@ -143,7 +139,7 @@ namespace BlackMisc
|
||||
return this->m_position.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getPosition());
|
||||
break;
|
||||
case IndexAltitude:
|
||||
return this->m_altitude.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getAltitude());
|
||||
return this->getAltitude().comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getAltitude());
|
||||
break;
|
||||
case IndexPitch:
|
||||
return this->m_pitch.comparePropertyByIndex(index.copyFrontRemoved(), compareValue.getPitch());
|
||||
@@ -185,15 +181,15 @@ namespace BlackMisc
|
||||
|
||||
CLength CAircraftSituation::getHeightAboveGround() const
|
||||
{
|
||||
if (this->m_altitude.getReferenceDatum() == CAltitude::AboveGround)
|
||||
if (this->getAltitude().getReferenceDatum() == CAltitude::AboveGround)
|
||||
{
|
||||
// we have a sure value
|
||||
return this->getAltitude();
|
||||
}
|
||||
const CLength gh(getGroundElevation());
|
||||
if (!gh.isNull() && !m_altitude.isNull())
|
||||
if (!gh.isNull() && !getAltitude().isNull())
|
||||
{
|
||||
return m_altitude - gh;
|
||||
return getAltitude() - gh;
|
||||
}
|
||||
return { 0, nullptr };
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace BlackMisc
|
||||
CAircraftSituation();
|
||||
|
||||
//! Comprehensive constructor
|
||||
CAircraftSituation(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude,
|
||||
CAircraftSituation(const BlackMisc::Geo::CCoordinateGeodetic &position,
|
||||
const BlackMisc::Aviation::CHeading &heading = {},
|
||||
const BlackMisc::PhysicalQuantities::CAngle &pitch = {},
|
||||
const BlackMisc::PhysicalQuantities::CAngle &bank = {},
|
||||
@@ -70,7 +70,7 @@ namespace BlackMisc
|
||||
|
||||
//! Comprehensive constructor
|
||||
CAircraftSituation(const BlackMisc::Aviation::CCallsign &correspondingCallsign,
|
||||
const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude,
|
||||
const BlackMisc::Geo::CCoordinateGeodetic &position,
|
||||
const BlackMisc::Aviation::CHeading &heading = {},
|
||||
const BlackMisc::PhysicalQuantities::CAngle &pitch = {},
|
||||
const BlackMisc::PhysicalQuantities::CAngle &bank = {},
|
||||
@@ -102,11 +102,7 @@ namespace BlackMisc
|
||||
virtual bool isOnGroundGuessed() const;
|
||||
|
||||
//! \copydoc Geo::ICoordinateGeodetic::geodeticHeight
|
||||
const BlackMisc::PhysicalQuantities::CLength &geodeticHeight() const override
|
||||
{
|
||||
static const BlackMisc::PhysicalQuantities::CLength gh { 0, nullptr };
|
||||
return gh;
|
||||
}
|
||||
const BlackMisc::Aviation::CAltitude &geodeticHeight() const override { return this->m_position.geodeticHeight(); }
|
||||
|
||||
//! \copydoc Geo::ICoordinateGeodetic::normalVector
|
||||
virtual QVector3D normalVector() const override { return this->m_position.normalVector(); }
|
||||
@@ -130,10 +126,10 @@ namespace BlackMisc
|
||||
void setHeading(const BlackMisc::Aviation::CHeading &heading) { this->m_heading = heading; }
|
||||
|
||||
//! Get altitude (true)
|
||||
const BlackMisc::Aviation::CAltitude &getAltitude() const { return this->m_altitude; }
|
||||
const BlackMisc::Aviation::CAltitude &getAltitude() const { return this->m_position.geodeticHeight(); }
|
||||
|
||||
//! Set altitude
|
||||
void setAltitude(const BlackMisc::Aviation::CAltitude &altitude) { this->m_altitude = altitude; }
|
||||
void setAltitude(const BlackMisc::Aviation::CAltitude &altitude) { this->m_position.setGeodeticHeight(altitude); }
|
||||
|
||||
//! Get pitch
|
||||
const BlackMisc::PhysicalQuantities::CAngle &getPitch() const { return this->m_pitch; }
|
||||
@@ -180,7 +176,6 @@ namespace BlackMisc
|
||||
private:
|
||||
CCallsign m_correspondingCallsign;
|
||||
BlackMisc::Geo::CCoordinateGeodetic m_position;
|
||||
BlackMisc::Aviation::CAltitude m_altitude;
|
||||
BlackMisc::Aviation::CHeading m_heading;
|
||||
BlackMisc::PhysicalQuantities::CAngle m_pitch;
|
||||
BlackMisc::PhysicalQuantities::CAngle m_bank;
|
||||
@@ -193,7 +188,6 @@ namespace BlackMisc
|
||||
CAircraftSituation,
|
||||
BLACK_METAMEMBER(correspondingCallsign),
|
||||
BLACK_METAMEMBER(position),
|
||||
BLACK_METAMEMBER(altitude),
|
||||
BLACK_METAMEMBER(heading),
|
||||
BLACK_METAMEMBER(pitch),
|
||||
BLACK_METAMEMBER(bank),
|
||||
|
||||
@@ -238,8 +238,7 @@ namespace XBus
|
||||
plane->situations.push_frontMaxElements(
|
||||
{
|
||||
callsign,
|
||||
BlackMisc::Geo::CCoordinateGeodetic(latitude, longitude, 0),
|
||||
CAltitude(altitude, CAltitude::MeanSeaLevel, CLengthUnit::ft()),
|
||||
BlackMisc::Geo::CCoordinateGeodetic(latitude, longitude, altitude),
|
||||
CHeading(heading, CHeading::True, CAngleUnit::deg()),
|
||||
CAngle(pitch, CAngleUnit::deg()),
|
||||
CAngle(roll, CAngleUnit::deg()),
|
||||
|
||||
Reference in New Issue
Block a user