source: flair-src/trunk/lib/FlairFilter/src/Ahrs.h@ 10

Last change on this file since 10 was 10, checked in by Sanahuja Guillaume, 8 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.