source: flair-src/trunk/lib/FlairMeta/src/Uav.h@ 185

Last change on this file since 185 was 185, checked in by Sanahuja Guillaume, 7 years ago

modifs gps

File size: 2.7 KB
Line 
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}
5/*!
6 * \file Uav.h
7 * \brief Base class to construct sensors/actuators depending on uav type
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2014/01/22
10 * \version 3.4
11 */
12
13#ifndef HDSUAV_H
14#define HDSUAV_H
15
16#include <Object.h>
17#include <UsRangeFinder.h>
18
19namespace 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
36namespace flair {
37namespace meta {
38class MetaUsRangeFinder;
39
40/*! \class Uav
41*
42* \brief Base class to construct sensors/actuators depending on uav type.
43* The Object is created with
44* the FrameworkManager as parent. FrameworkManager must be created before.
45* Only one instance of this class is allowed by program.
46*/
47class Uav : public core::Object {
48public:
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
70protected:
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
80private:
81 sensor::Imu *imu;
82 sensor::NmeaGps *gps;
83 filter::Ahrs *ahrs;
84 actuator::Bldc *bldc;
85 filter::UavMultiplex *multiplex;
86 sensor::UsRangeFinder *us;
87 MetaUsRangeFinder *meta_us;
88 sensor::BatteryMonitor *battery;
89 sensor::Camera *verticalCamera,*horizontalCamera;
90};
91
92/*!
93* \brief get Uav
94*
95* \return the Uav
96*/
97Uav *GetUav(void);
98
99} // end namespace meta
100} // end namespace flair
101#endif // HDSUAV_H
Note: See TracBrowser for help on using the repository browser.