refs #837 CAircraftSituation altitude is part of its position.

This commit is contained in:
Mathew Sutcliffe
2016-12-15 02:32:10 +00:00
parent 7e1ed21662
commit 7e85422da7
11 changed files with 29 additions and 47 deletions

View File

@@ -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;
}

View File

@@ -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()),

View File

@@ -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);

View File

@@ -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 };
}

View File

@@ -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),

View File

@@ -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()),