source: flair-dev/trunk/include/FlairFilter/X4X8Multiplex.h@ 9

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

lic

File size: 3.0 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
21{
22namespace filter
23{
24 /*! \class X4X8Multiplex
25 *
26 * \brief Class defining X4 and X8 multiplexing
27 *
28 * The output order of the motors can be changed through ground station.
29 */
30 class X4X8Multiplex : public UavMultiplex
31 {
32 friend class ::X4X8Multiplex_impl;
33
34 public:
35 /*!
36 \enum UavType_t
37 \brief type of UAV
38 */
39 typedef enum {
40 X4,/*!< 4 motors: front left, front right, rear left, rear right */
41 X8/*!< 8 motors: top front left, top front right, top rear left, top rear right, bottom front left, bottom front right, bottom rear left, bottom rear right */
42 } UavType_t;
43
44 /*!
45 \enum MotorNames_t
46 \brief Motor names
47 */
48 typedef enum {
49 TopFrontLeft=0,/*!< Top front left, X4 or X8 */
50 TopFrontRight=1,/*!< Top front right, X4 or X8 */
51 TopRearLeft=2,/*!< Top rear left, X4 or X8 */
52 TopRearRight=3,/*!< Top rear right, X4 or X8 */
53 BottomFrontLeft=4,/*!< Bottom front left, X8 */
54 BottomFrontRight=5,/*!< Bottom front right, X8 */
55 BottomRearLeft=6,/*!< Bottom rear left, X8 */
56 BottomRearRight=7,/*!< Bottom rear right, X8 */
57 } MotorNames_t;
58
59 /*!
60 * \brief Constructor
61 *
62 * Construct a X4 and X8 multiplexing
63 *
64 * \param parent parent
65 * \param name name
66 * \param type type
67 */
68 X4X8Multiplex(const core::FrameworkManager* parent,std::string name,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
93 private:
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 };
106} // end namespace filter
107} // end namespace flair
108#endif // X4X8MULTIPLEX_H
Note: See TracBrowser for help on using the repository browser.