source: flair-src/trunk/lib/FlairSensorActuator/src/UsRangeFinder.h @ 10

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

sensoractuator

File size: 3.5 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 UsRangeFinder.h
7 * \brief Base class for UsRangeFinder
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2014/01/22
10 * \version 4.0
11 */
12
13#ifndef USRANGEFINDER_H
14#define USRANGEFINDER_H
15
16#include <IODevice.h>
17
18namespace flair
19{
20    namespace core
21    {
22        class cvmatrix;
23    }
24    namespace gui
25    {
26        class Tab;
27        class TabWidget;
28        class GroupBox;
29        class Layout;
30        class DataPlot1D;
31    }
32}
33
34namespace flair
35{
36namespace sensor
37{
38    /*! \class UsRangeFinder
39    *
40    * \brief Base class for UsRangeFinder
41    *
42    * Use this class to define a custom UsRangeFinder.
43    *
44    */
45    class UsRangeFinder : public core::IODevice
46    {
47        public:
48            /*!
49            * \brief Constructor
50            *
51            * Construct a UsRangeFinder. Control part.
52            *
53            * \param parent parent
54            * \param name name
55            */
56            UsRangeFinder(const core::FrameworkManager* parent,std::string name);
57
58            /*!
59            * \brief Constructor
60            *
61            * Construct a UsRangeFinder. Simulation part.
62            *
63            * \param parent parent
64            * \param name name
65            */
66            UsRangeFinder(const core::IODevice* parent,std::string name);
67
68            /*!
69            * \brief Destructor
70            *
71            */
72            ~UsRangeFinder();
73
74            /*!
75            * \brief Lock user interface
76            *
77            */
78            void LockUserInterface(void) const;
79
80            /*!
81            * \brief Unlock user interface
82            *
83            */
84            void UnlockUserInterface(void) const;
85
86            /*!
87            * \brief Use default plot
88            *
89            * Should no be used for the simulation part.
90            */
91            void UseDefaultPlot(void);
92
93            /*!
94            * \brief Plot
95            *
96            * \return DataPlot1D
97            */
98            gui::DataPlot1D* GetPlot(void) const;
99
100            /*!
101            * \brief Setup Layout
102            *
103            * \return a Layout available
104            */
105            gui::Layout* GetLayout(void) const;
106
107            /*!
108            * \brief Plot tab
109            *
110            * \return plot Tab
111            */
112            gui::Tab* GetPlotTab(void) const;
113
114            /*!
115            * \brief Value
116            *
117            * \return output value
118            */
119            float Value(void) const;
120
121        protected:
122            /*!
123            * \brief Output matrix
124            *
125            * \return output matrix
126            */
127            core::cvmatrix *output;
128
129            /*!
130            * \brief Setup GroupBox
131            *
132            * \return a GroupBox available
133            */
134            gui::GroupBox* GetGroupBox(void) const;
135
136        private:
137            /*!
138            * \brief Update using provided datas
139            *
140            * Reimplemented from IODevice.
141            *
142            * \param data data from the parent to process
143            */
144            void UpdateFrom(const core::io_data *data){};
145
146            gui::Tab* main_tab;
147            gui::TabWidget *tab;
148            gui::GroupBox* setup_groupbox;
149            gui::Tab* sensor_tab;
150            gui::DataPlot1D* plot;
151            gui::Tab* plot_tab;
152    };
153} // end namespace sensor
154} // end namespace flair
155#endif // USRANGEFINDER_H
Note: See TracBrowser for help on using the repository browser.