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

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