source: flair-src/tags/latest/lib/FlairFilter/src/Ahrs.h@ 451

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

add getdata for imu

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