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

Last change on this file since 10 was 10, checked in by Sanahuja Guillaume, 8 years ago

lic

File size: 3.2 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
18namespace flair {
19 namespace core {
20 class FrameworkManager;
21 }
22 namespace filter {
23 class Ahrs;
24 class UavMultiplex;
25 }
26 namespace actuator {
27 class Bldc;
28 }
29 namespace sensor {
30 class UsRangeFinder;
31 class BatteryMonitor;
32 class VrpnClient;
33 class Imu;
34 class Camera;
35 }
36}
37
38namespace flair {
39namespace meta {
40 class MetaUsRangeFinder;
41 class MetaVrpnObject;
42
43 /*! \class Uav
44 *
45 * \brief Base class to construct sensors/actuators depending on uav type
46 */
47 class Uav: public core::Object {
48 public:
49 /*
50 typedef enum {
51 None,
52 Auto,//rt serial if hds x4 ou x8, auto ip sinon
53 AutoIP,
54 UserDefinedIP,
55 AutoSerialPort,
56 } VRPNType_t;
57*/
58 //uav_name: for optitrack
59 Uav(core::FrameworkManager* parent,std::string name,filter::UavMultiplex *multiplex=NULL);
60 ~Uav();
61 void SetupVRPN(std::string optitrack_address,std::string name);
62 //vrpn serial: broken, need to add serial port in uav specific code
63 //void SetupVRPNSerial(core::SerialPort *vrpn_port,std::string name,int VRPNSerialObjectId);
64 virtual void SetupVRPNAutoIP(std::string name);
65
66 virtual void StartSensors(void);
67 void UseDefaultPlot(void);
68 actuator::Bldc* GetBldc(void) const;
69 filter::UavMultiplex* GetUavMultiplex(void) const;
70 sensor::Imu* GetImu(void) const;
71 filter::Ahrs* GetAhrs(void) const;
72 MetaUsRangeFinder* GetMetaUsRangeFinder(void) const;
73 sensor::UsRangeFinder* GetUsRangeFinder(void) const;
74 sensor::BatteryMonitor* GetBatteryMonitor(void) const;
75 sensor::VrpnClient* GetVrpnClient(void) const;
76 meta::MetaVrpnObject* GetVrpnObject(void) const;
77 sensor::Camera* GetVerticalCamera(void) const;
78
79 protected:
80 void SetBldc(const actuator::Bldc *bldc);
81 void SetMultiplex(const filter::UavMultiplex *multiplex);
82 void SetAhrs(const filter::Ahrs *ahrs);
83 void SetUsRangeFinder(const sensor::UsRangeFinder *us);
84 void SetBatteryMonitor(const sensor::BatteryMonitor *battery);
85 void SetVerticalCamera(const sensor::Camera *verticalCamera);
86
87 private:
88 sensor::Imu* imu;
89 filter::Ahrs* ahrs;
90 actuator::Bldc* bldc;
91 filter::UavMultiplex *multiplex;
92 sensor::UsRangeFinder* us;
93 MetaUsRangeFinder* meta_us;
94 sensor::VrpnClient *vrpnclient;
95 MetaVrpnObject* uav_vrpn;
96 sensor::BatteryMonitor* battery;
97 sensor::Camera* verticalCamera;
98 };
99} // end namespace meta
100} // end namespace flair
101#endif // HDSUAV_H
Note: See TracBrowser for help on using the repository browser.