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

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

lic

File size: 3.0 KB
RevLine 
[9]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}
[6]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.