Flair
Framework Libre Air
Uav.h
Go to the documentation of this file.
1 // %flair:license{
2 // This file is part of the Flair framework distributed under the
3 // CECILL-C License, Version 1.0.
4 // %flair:license}
13 #ifndef HDSUAV_H
14 #define HDSUAV_H
15 
16 #include <Object.h>
17 #include <UsRangeFinder.h>
18 
19 namespace flair {
20  namespace filter {
21  class Ahrs;
22  class UavMultiplex;
23  }
24  namespace actuator {
25  class Bldc;
26  }
27  namespace sensor {
28  class UsRangeFinder;
29  class BatteryMonitor;
30  class Imu;
31  class Camera;
32  class NmeaGps;
33  }
34 }
35 
36 namespace flair {
37 namespace meta {
38 class MetaUsRangeFinder;
39 
47 class Uav : public core::Object {
48 public:
49 
50  Uav(std::string name,
51  filter::UavMultiplex *multiplex = NULL);
52  ~Uav();
53 
54  virtual void StartSensors(void)=0;
55  void UseDefaultPlot(void);
56  actuator::Bldc *GetBldc(void) const;
57  filter::UavMultiplex *GetUavMultiplex(void) const;
58  sensor::Imu *GetImu(void) const;
59  filter::Ahrs *GetAhrs(void) const;
60  MetaUsRangeFinder *GetMetaUsRangeFinder(void) const;
61  sensor::UsRangeFinder *GetUsRangeFinder(void) const;
62  sensor::BatteryMonitor *GetBatteryMonitor(void) const;
63  sensor::Camera *GetVerticalCamera(void) const;
64  sensor::Camera *GetHorizontalCamera(void) const;
65  sensor::NmeaGps *GetGps(void) const;
66  virtual std::string GetDefaultVrpnAddress(void) const{return "127.0.0.1:3883";}
67  virtual bool isReadyToFly(void) const { return true;}
68  virtual std::string GetType(void) const=0;
69 
70 protected:
71  void SetBldc(const actuator::Bldc *bldc);
72  void SetMultiplex(const filter::UavMultiplex *multiplex);
73  void SetAhrs(const filter::Ahrs *ahrs);//also sets imu (retrieved from the ahrs)
74  void SetUsRangeFinder(const sensor::UsRangeFinder *us);
75  void SetBatteryMonitor(const sensor::BatteryMonitor *battery);
76  void SetVerticalCamera(const sensor::Camera *verticalCamera);
77  void SetHorizontalCamera(const sensor::Camera *verticalCamera);
78  void SetGps(const sensor::NmeaGps *gps);
79 
80 private:
81  sensor::Imu *imu;
82  sensor::NmeaGps *gps;
83  filter::Ahrs *ahrs;
84  actuator::Bldc *bldc;
85  filter::UavMultiplex *multiplex;
87  MetaUsRangeFinder *meta_us;
88  sensor::BatteryMonitor *battery;
89  sensor::Camera *verticalCamera,*horizontalCamera;
90 };
91 
97 Uav *GetUav(void);
98 
99 } // end namespace meta
100 } // end namespace flair
101 #endif // HDSUAV_H
Base class for Camera.
Definition: Camera.h:39
Base class for all Framework's classes.
Definition: Object.h:77
namespace of the flair Framework
Definition: Ahrs.h:19
Base class for UsRangeFinder.
Definition: UsRangeFinder.h:40
Base class for Imu.
Definition: Imu.h:44
Base class for GPS using NMEA sentances.
Definition: NmeaGps.h:45
Base class for UsRangeFinder.
Abstract class for AHRS.
Definition: Ahrs.h:44
Uav * GetUav(void)
get Uav
Class defining uav multiplexing.
Definition: UavMultiplex.h:37
Classe haut niveau pour capteur à ultra son.
Definition: MetaUsRangeFinder.h:40
Base class for all Framework's classes.
Base class for battery monitor.
Definition: BatteryMonitor.h:35
Base class to construct sensors/actuators depending on uav type. The Object is created with the Frame...
Definition: Uav.h:47
Base class for brushless motors drivers.
Definition: Bldc.h:37