Flight.h
Go to the documentation of this file.
1 /*
2  * Flight.h
3  *
4  * Created on: Apr 24, 2015
5  * Author: leven
6  */
7 
8 #ifndef FLIGHT_H_
9 #define FLIGHT_H_
10 #include "Macros_Convenience.h"
11 
12 #include "utl/UTMPoint.h"
13 #include "utl/PhysicalConstants.h"
14 #include "utl/TimeStamp.h"
15 
16 #include "Ads_bEvent.h" // enum, comparator
17 
18 #include <set>
19 #include <list>
20 
21 namespace RdAirplane {
22 
23  class Airplane;
24  class Interpolator3D;
25  class AirplaneOffset;
29  class Flight {
30  public:
31  typedef std::set<Ads_bEvent*, Ads_bEventComparator> Ads_bEventSet;
32 
33  typedef std::list<Interpolator3D*> InterpolatorList;
34 
35  // within this time span we consider the trajectory of an airplane as predictable without getting new information about its position
37 
38  Flight(Airplane* pAirplane);
39 
40  virtual ~Flight();
41 
42  Ads_bEvent* addAds_bEvent(const utl::TimeStamp& pCaptureTime, const utl::UTMPoint& pCoordinates, const std::string& pAds_bMessageAsHex);
43 
44  void Init();
45 
46  const std::string& getId() const {
47  return _id_;
48  }
49 
50  const AirplaneOffset* getOffset() const {
51  return _offset_;
52  }
53 
54  const Ads_bEventSet& getAdsbEvents(Ads_bEvent::AltitudeType pAltitudeType) const;
55  const Ads_bEventSet& getAdsbEvents() const;
56 
57  const Airplane& getAirplane() const {
58  return *_airplane_;
59  }
60 
61  const Ads_bEvent* getEarliestAds_bEvent() const;
62  const Ads_bEvent* getLatestAds_bEvent() const;
63 
67  utl::Point* getPosition(const utl::TimeStamp& pTime, Ads_bEvent::AltitudeType pAltitudeType) const;
68 
69  utl::Point* getPosition(const utl::TimeStamp& pTime) const;
70 
74  utl::Vector* getSpeed(const utl::TimeStamp& pTime, Ads_bEvent::AltitudeType pAltitudeType) const;
75  utl::Vector* getSpeed(const utl::TimeStamp& pTime) const;
76 
77  bool isTimeDuringFlight(const utl::TimeStamp& pTime) const;
78 
79  std::string getInfo() const;
80 
81 private:
83  void _setId();
87 
88  std::string _id_;
90 
95 
100 
103 
105 
106  };
107 
108 
109 } /* namespace RdAirplane */
110 #endif /* FLIGHT_H_ */
InterpolatorList _interpolatorsGPSAltitude_
Definition: Flight.h:99
Point object.
Definition: Point.h:32
const Ads_bEvent * getEarliestAds_bEvent() const
Definition: Flight.cc:48
Class to hold and convert a point in geodetic coordinates.
Definition: UTMPoint.h:40
utl::Point * getPosition(const utl::TimeStamp &pTime, Ads_bEvent::AltitudeType pAltitudeType) const
Definition: Flight.cc:186
Flight(Airplane *pAirplane)
Definition: Flight.cc:31
InterpolatorList _interpolatorsGDASCorrectedPressureAltitude_
Definition: Flight.h:98
std::list< Interpolator3D * > InterpolatorList
Definition: Flight.h:33
void _interpolateAds_bEvents(Ads_bEvent::AltitudeType pAltitudeType)
Definition: Flight.cc:60
const Ads_bEventSet & getAdsbEvents() const
Definition: Flight.cc:125
const Airplane & getAirplane() const
Definition: Flight.h:57
Ads_bEventSet _ads_bEventsAll_
Definition: Flight.h:94
const Ads_bEvent * _latestEvent_
Definition: Flight.h:102
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
static const utl::TimeInterval & MaxAllowedTimeBetweenADS_BEventsForInterpolation()
Definition: Flight.cc:26
utl::Vector * getSpeed(const utl::TimeStamp &pTime, Ads_bEvent::AltitudeType pAltitudeType) const
Definition: Flight.cc:212
DISALLOW_COPY_AND_ASSIGN(Flight)
Ads_bEventSet _ads_bEventsPressureAltitude_
Definition: Flight.h:91
const AirplaneOffset * _offset_
Definition: Flight.h:104
const Ads_bEvent * _earliestEvent_
Definition: Flight.h:101
Ads_bEventSet & _getAdsbEvents(Ads_bEvent::AltitudeType pAltitudeType) const
Definition: Flight.cc:86
Ads_bEventSet _ads_bEventsCorrectedPressureAltitude_
Definition: Flight.h:92
InterpolatorList _interpolatorsPressureAltitude_
Definition: Flight.h:96
const Ads_bEvent * getLatestAds_bEvent() const
Definition: Flight.cc:54
A TimeInterval is used to represent time elapsed between two events.
Definition: TimeInterval.h:43
std::string _id_
Definition: Flight.h:88
Vector object.
Definition: Vector.h:30
bool isTimeDuringFlight(const utl::TimeStamp &pTime) const
Definition: Flight.cc:182
std::set< Ads_bEvent *, Ads_bEventComparator > Ads_bEventSet
Definition: Flight.h:31
std::string getInfo() const
Definition: Flight.cc:238
const std::string & getId() const
Definition: Flight.h:46
const AirplaneOffset * getOffset() const
Definition: Flight.h:50
InterpolatorList _interpolatorsManuallyCorrectedPressureAltitude_
Definition: Flight.h:97
virtual ~Flight()
Definition: Flight.cc:174
Ads_bEventSet _ads_bEventsGPSAltitude_
Definition: Flight.h:93
InterpolatorList & _getInterpolators(Ads_bEvent::AltitudeType pAltitudeType) const
Definition: Flight.cc:103
Airplane * _airplane_
Definition: Flight.h:89
Ads_bEvent * addAds_bEvent(const utl::TimeStamp &pCaptureTime, const utl::UTMPoint &pCoordinates, const std::string &pAds_bMessageAsHex)
Definition: Flight.cc:144

, generated on Tue Sep 26 2023.