source: flair-src/trunk/lib/FlairFilter/src/X4X8Multiplex.h@ 101

Last change on this file since 101 was 15, checked in by Bayard Gildas, 8 years ago

sources reformatted with flair-format-dir script

File size: 2.4 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 X4X8Multiplex.h
7 * \brief Class defining X4 and X8 multiplexing
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2014/04/10
10 * \version 4.0
11 */
12
13#ifndef X4X8MULTIPLEX_H
14#define X4X8MULTIPLEX_H
15
16#include <UavMultiplex.h>
17
18class X4X8Multiplex_impl;
19
20namespace flair {
21namespace filter {
22/*! \class X4X8Multiplex
23*
24* \brief Class defining X4 and X8 multiplexing
25*
26* The output order of the motors can be changed through ground station.
27*/
28class X4X8Multiplex : public UavMultiplex {
29 friend class ::X4X8Multiplex_impl;
30
31public:
32 /*!
33 \enum UavType_t
34 \brief type of UAV
35 */
36 typedef enum {
37 X4, /*!< 4 motors: front left, front right, rear left, rear right */
38 X8 /*!< 8 motors: top front left, top front right, top rear left, top rear
39 right, bottom front left, bottom front right, bottom rear left, bottom
40 rear right */
41 } UavType_t;
42
43 /*!
44 \enum MotorNames_t
45 \brief Motor names
46 */
47 typedef enum {
48 TopFrontLeft = 0, /*!< Top front left, X4 or X8 */
49 TopFrontRight = 1, /*!< Top front right, X4 or X8 */
50 TopRearLeft = 2, /*!< Top rear left, X4 or X8 */
51 TopRearRight = 3, /*!< Top rear right, X4 or X8 */
52 BottomFrontLeft = 4, /*!< Bottom front left, X8 */
53 BottomFrontRight = 5, /*!< Bottom front right, X8 */
54 BottomRearLeft = 6, /*!< Bottom rear left, X8 */
55 BottomRearRight = 7, /*!< Bottom rear right, X8 */
56 } MotorNames_t;
57
58 /*!
59 * \brief Constructor
60 *
61 * Construct a X4 and X8 multiplexing
62 *
63 * \param parent parent
64 * \param name name
65 * \param type type
66 */
67 X4X8Multiplex(const core::FrameworkManager *parent, std::string name,
68 UavType_t type);
69
70 /*!
71 * \brief Destructor
72 *
73 */
74 ~X4X8Multiplex();
75
76 /*!
77 * \brief Use default plot
78 *
79 * Plot the output values.
80 *
81 */
82 void UseDefaultPlot(void);
83
84 /*!
85 * \brief Motors count
86 *
87 * Reimplemented from UavMultiplex.
88 *
89 * \return motors count
90 */
91 uint8_t MotorsCount(void) const;
92
93private:
94 /*!
95 * \brief Update using provided datas
96 *
97 * Reimplemented from IODevice.
98 *
99 * \param data data from the parent to process
100 */
101 void UpdateFrom(const core::io_data *data);
102
103 X4X8Multiplex_impl *pimpl_;
104};
105} // end namespace filter
106} // end namespace flair
107#endif // X4X8MULTIPLEX_H
Note: See TracBrowser for help on using the repository browser.