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

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

lic

File size: 5.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 JoyReference.h
7 * \brief Class creating references from a joystick
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2012/08/29
10 * \version 4.0
11 */
12
13#ifndef JOYREFERENCE_H
14#define JOYREFERENCE_H
15
16#include <IODevice.h>
17#include <stdint.h>
18
19namespace flair
20{
21 namespace core {
22 class Quaternion;
23 class AhrsData;
24 }
25 namespace gui {
26 class LayoutPosition;
27 }
28}
29
30class JoyReference_impl;
31
32namespace flair { namespace filter {
33 /*! \class JoyReference
34 *
35 * \brief Class creating references from a joystick
36 */
37 class JoyReference : public core::IODevice
38 {
39 public:
40 /*!
41 * \brief Constructor
42 *
43 * Construct a JoyReference at given position. \n
44 * The JoyReference will automatically be child of position->getLayout() Layout. After calling this function,
45 * position will be deleted as it is no longer usefull. \n
46 * JoyReference compute reference in quaternion, wz, altitude and altitude speed.
47 *
48 * \param position position
49 * \param name name
50 */
51 JoyReference(const gui::LayoutPosition* position,std::string name);
52
53 /*!
54 * \brief Destructor
55 *
56 */
57 ~JoyReference();
58
59 /*!
60 * \brief Set roll axis value
61 *
62 * \param value value
63 */
64 void SetRollAxis(float value);
65
66 /*!
67 * \brief Set pitch axis value
68 *
69 * \param value value
70 */
71 void SetPitchAxis(float value);
72
73 /*!
74 * \brief Set yaw axis value
75 *
76 * \param value value
77 */
78 void SetYawAxis(float value);
79
80 /*!
81 * \brief Set thrust axis value
82 *
83 * \param value value
84 */
85 void SetAltitudeAxis(float value);
86
87 /*!
88 * \brief Get orientation reference
89 *
90 * \return reference
91 */
92 core::AhrsData* GetReferenceOrientation(void) const;
93
94 /*!
95 * \brief Get z reference
96 *
97 * \return reference
98 */
99 float ZRef(void) const;
100
101 /*!
102 * \brief Get z derivative reference
103 *
104 * \return reference
105 */
106 float DzRef(void) const;
107
108 /*!
109 * \brief Get roll trim
110 *
111 * \return trim value
112 */
113 float RollTrim(void) const;
114
115 /*!
116 * \brief Get pitch trim
117 *
118 * \return trim value
119 */
120 float PitchTrim(void) const;
121
122 /*!
123 * \brief Set yaw reference
124 *
125 * Yaw part of the output quaternion is obtained by integrating the wz desired angular speed.\n
126 * This method reset the yaw.
127 *
128 * \param value value
129 */
130 void SetYawRef(float value);
131
132 /*!
133 * \brief Set yaw reference
134 *
135 * Yaw part of the output quaternion is obtained by integrating the wz desired angular speed.\n
136 * This method reset the yaw.
137 *
138 * \param value value, only the yaw part of the quaternion is used
139 */
140 void SetYawRef(core::Quaternion const &value);
141
142 /*!
143 * \brief Set z reference
144 *
145 * Altitude of the output is obtained by integrating the vz desired altitude speed.\n
146 * This method reset z.
147 *
148 * \param value value
149 */
150 void SetZRef(float value);
151
152 /*!
153 * \brief Trim up roll
154 *
155 * Roll trim value is increased by one
156 */
157 void RollTrimUp(void);
158
159 /*!
160 * \brief Trim down roll
161 *
162 * Roll trim value is decreased by one
163 */
164 void RollTrimDown(void);
165
166 /*!
167 * \brief Trim up pitch
168 *
169 * Pitch trim value is increased by one
170 */
171 void PitchTrimUp(void);
172
173 /*!
174 * \brief Trim down pitch
175 *
176 * Pitch trim value is decreased by one
177 */
178 void PitchTrimDown(void);
179
180 /*!
181 * \brief Update references
182 *
183 * Calls UpdateFrom with values entered manually.
184 *
185 * \param time time
186 */
187 void Update(core::Time time);
188
189 private:
190 /*!
191 * \brief Update using provided datas
192 *
193 * Reimplemented from IODevice.
194 *
195 * \param data data from the parent to process
196 */
197 void UpdateFrom(const core::io_data *data);
198
199 class JoyReference_impl* pimpl_;
200 };
201} // end namespace sensor
202} // end namespace flair
203
204#endif // JOYREFERENCE_H
Note: See TracBrowser for help on using the repository browser.