source: flair-dev/trunk/include/FlairFilter/Ahrs.h @ 9

Last change on this file since 9 was 9, checked in by Sanahuja Guillaume, 5 years ago

lic

File size: 4.3 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 Ahrs.h
7 * \brief Abstract class for AHRS
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2014/01/14
10 * \version 4.0
11 */
12
13#ifndef AHRS_H
14#define AHRS_H
15
16#include <IODevice.h>
17#include <DataPlot.h>
18
19namespace flair {
20    namespace core {
21        class Euler;
22        class Vector3D;
23        class ImuData;
24        class Quaternion;
25        class AhrsData;
26    }
27    namespace gui {
28        class Tab;
29        class DataPlot1D;
30    }
31    namespace sensor {
32        class Imu;
33    }
34}
35
36class Ahrs_impl;
37
38namespace flair { namespace filter {
39    /*! \class Ahrs
40    *
41    * \brief Abstract class for AHRS
42    *
43    * Use this class to define a custom AHRS. This class is child
44    * of an Imu class, which will provide measurements. \n
45    *
46    */
47    class Ahrs : public core::IODevice {
48        public:
49            /*!
50            * \brief Constructor
51            *
52            * Construct an Ahrs.
53            *
54            * \param parent parent
55            * \param name name
56            */
57            Ahrs(const sensor::Imu* parent,std::string name);
58
59            /*!
60            * \brief Destructor
61            *
62            */
63            ~Ahrs();
64
65            /*!
66            * \brief Get parent Imu
67            *
68            * This function is identical to (Imu*)Parent()
69            */
70            const sensor::Imu *GetImu(void) const;
71
72            /*!
73            * \brief Get ahrs datas
74            *
75            * \return AhrsData
76            */
77            const core::AhrsData *GetDatas(void) const;
78
79            /*!
80            * \brief Lock the graphical user interface
81            *
82            * When locked, parameters cannot be modified.
83            *
84            */
85            void LockUserInterface(void) const;
86
87            /*!
88            * \brief Unlock the graphical user interface
89            *
90            */
91            void UnlockUserInterface(void) const;
92
93            /*!
94            * \brief Use default plot
95            *
96            * Plot the datas defined in imudata,
97            * and datas defined in Imu::imudata.
98            *
99            */
100            void UseDefaultPlot(void);
101
102            /*!
103            * \brief Add plot
104            *
105            * Add plot of an AhrsData to the default plot
106            *
107            * \param ahrsData ahrs datas to plot
108            * \param color color to use
109            */
110            void AddPlot(const core::AhrsData *ahrsData,gui::DataPlot::Color_t color);
111
112            /*!
113            * \brief Roll plot
114            *
115            * Use this plot to add own curves.
116            *
117            * \return plot
118            *
119            */
120            gui::DataPlot1D *RollPlot(void)const ;
121
122            /*!
123            * \brief Pitch plot
124            *
125            * Use this plot to add own curves.
126            *
127            * \return plot
128            *
129            */
130            gui::DataPlot1D *PitchPlot(void) const;
131
132            /*!
133            * \brief Yaw plot
134            *
135            * Use this plot to add own curves.
136            *
137            * \return plot
138            *
139            */
140            gui::DataPlot1D *YawPlot(void) const;
141
142            /*!
143            * \brief Rotation speed around x axis plot
144            *
145            * Use this plot to add own curves.
146            *
147            * \return plot
148            *
149            */
150            gui::DataPlot1D *WXPlot(void) const;
151
152            /*!
153            * \brief Rotation speed around y axis plot
154            *
155            * Use this plot to add own curves.
156            *
157            * \return plot
158            *
159            */
160            gui::DataPlot1D *WYPlot(void) const;
161
162            /*!
163            * \brief Rotation speed around z axis plot
164            *
165            * Use this plot to add own curves.
166            *
167            * \return plot
168            *
169            */
170            gui::DataPlot1D *WZPlot(void) const;
171
172        protected:
173            /*!
174            * \brief Get ahrs datas
175            *
176            * \param ahrsData ahrs datas
177            */
178            void GetDatas(core::AhrsData **ahrsData) const;
179
180        private:
181            class Ahrs_impl *pimpl_;
182    };
183} // end namespace filter
184} // end namespace flair
185#endif // AHRS_H
Note: See TracBrowser for help on using the repository browser.