Airplane.cc
Go to the documentation of this file.
1 #include "Airplane.h"
2 #include "Ads_bEvent.h"
3 #include "Flight.h"
4 #include "AirplaneUtil.h"
5 
6 #include "utl/Vector.h"
7 //uncomment for debugging
8 //#include "utl/ErrorLogger.h"
9 
10 using namespace RdAirplane;
11 using namespace std;
12 using namespace utl;
13 using namespace boost::tuples;
14 using namespace RdAirplane::Util;
15 
16 Airplane::Airplane(const string& pId, Ads_bDataBase* pAirplaneDataBase) :
17  _id_(pId),
18  _ads_bDataBase_(pAirplaneDataBase) {}
19 
22 }
23 
25  for(FlightList::iterator iter = _flights_.begin(); iter!=_flights_.end(); ++iter) {
26  (*iter)->Init();
27  }
28 }
29 
30 Ads_bEvent* Airplane::AddAds_bEvent(const TimeStamp& pCaptureTime, const UTMPoint& pCoordinates, const string& pAds_bMessageAsHex) {
31  Flight* flight = NULL;
32  if(_flights_.empty()) {
33  flight = _addFlight();
34  } else {
35  flight = *_flights_.rbegin();
37  flight = _addFlight();
38  }
39  }
40  return flight->addAds_bEvent(pCaptureTime, pCoordinates, pAds_bMessageAsHex);
41 }
42 
43 
45  for(FlightList::const_iterator iter = _flights_.begin(); iter!=_flights_.end(); ++iter) {
46  if((*iter)->isTimeDuringFlight(pTime))
47  return *iter;
48  }
49  return NULL;
50 }
51 
53  Flight* flight = new Flight(this);
54  _flights_.push_back(flight);
55  return flight;
56 }
57 
58 
59 string Airplane::getInformation() const {
60  ostringstream info;
61  info << endl
62  << " Airplane id: " << _id_ << endl
63  << " captured " << _flights_.size() << " different flight(s):" << endl;
64  for(FlightList::const_iterator iter = _flights_.begin(); iter!=_flights_.end(); ++iter) {
65  info << (*iter)->getInfo();
66  }
67  return info.str();
68 }
69 
std::string getInformation() const
Definition: Airplane.cc:59
Class to hold and convert a point in geodetic coordinates.
Definition: UTMPoint.h:40
Flight * getFlight(const utl::TimeStamp &pTime) const
Definition: Airplane.cc:44
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
double abs(const SVector< n, T > &v)
Ads_bEvent * AddAds_bEvent(const utl::TimeStamp &pCaptureTime, const utl::UTMPoint &pCoordinates, const std::string &pAds_bMessageAsHex)
Definition: Airplane.cc:30
FlightList _flights_
Definition: Airplane.h:54
Flight * _addFlight()
Definition: Airplane.cc:52
const Ads_bEvent * getLatestAds_bEvent() const
Definition: Flight.cc:54
const utl::TimeStamp & getCaptureTime() const
Definition: Ads_bEvent.h:39
void deleteAllPointersInContainer(ContainerType &pContainer)
Definition: AirplaneUtil.h:41
std::string _id_
Definition: Airplane.h:55
Airplane(const std::string &pId, Ads_bDataBase *pAirplaneDataBase)
Definition: Airplane.cc:16
virtual ~Airplane()
Definition: Airplane.cc:20
Ads_bEvent * addAds_bEvent(const utl::TimeStamp &pCaptureTime, const utl::UTMPoint &pCoordinates, const std::string &pAds_bMessageAsHex)
Definition: Flight.cc:144
static const long LONGEST_TIMESSPAN_BETWEEN_TWO_ADS_B_EVENTS_DURING_ONE_FLIGHT_IN_SECONDS
Definition: Airplane.h:24

, generated on Tue Sep 26 2023.