source: flair-dev/trunk/include/FlairSensorActuator/BlCtrlV2_x4_speed.h @ 13

Last change on this file since 13 was 13, checked in by Bayard Gildas, 5 years ago

formatting script + include reformatted

File size: 2.7 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//  created:    2013/04/29
6//  filename:   BlCtrlV2_x4_speed.cpp
7//
8//  author:     Guillaume Sanahuja
9//              Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11//  version:    $Id: $
12//
13//  purpose:    objet integrant les moteurs i2c, controle en vitesse
14//
15//
16/*********************************************************************/
17
18#ifndef BLCTRLV2_X4_SPEED_H
19#define BLCTRLV2_X4_SPEED_H
20
21#include <IODevice.h>
22#include <Thread.h>
23
24namespace flair {
25namespace core {
26class cvmatrix;
27class FrameworkManager;
28class I2cPort;
29}
30namespace gui {
31class TabWidget;
32class Tab;
33class SpinBox;
34class DoubleSpinBox;
35class ComboBox;
36class PushButton;
37class GroupBox;
38}
39}
40
41namespace flair {
42namespace actuator {
43class BlCtrlV2_x4_speed : public core::Thread, public core::IODevice {
44
45public:
46  BlCtrlV2_x4_speed(core::FrameworkManager *parent, std::string name,
47                    core::I2cPort *i2cport, uint8_t base_address,
48                    uint8_t priority);
49  ~BlCtrlV2_x4_speed();
50  void UseDefaultPlot(void);
51  void LockUserInterface(void);
52  void UnlockUserInterface(void);
53  void SetEnabled(bool status);
54  void SetUroll(float value);
55  void SetUpitch(float value);
56  void SetUyaw(float value);
57  void SetUgaz(float value);
58  void SetRollTrim(float value);
59  void SetPitchTrim(float value);
60  void SetYawTrim(float value);
61  void SetGazTrim(float value);
62  float TrimValue(void);
63  int StartValue(void);
64
65private:
66  /*!
67  * \brief Update using provided datas
68  *
69  * Reimplemented from IODevice.
70  *
71  * \param data data from the parent to process
72  */
73  void UpdateFrom(core::io_data *data){};
74  void WriteValue(uint16_t value);
75  float GetSpeed(void);
76  void StartTest(void);
77  void StopTest(void);
78  /*!
79  * \brief Run function
80  *
81  * Reimplemented from Thread.
82  *
83  */
84  void Run(void);
85  void Update(void);
86  gui::Tab *main_tab;
87  gui::TabWidget *tab;
88  gui::GroupBox *reglages_groupbox;
89  gui::SpinBox *min, *max, *test;
90  gui::PushButton *button_avg, *button_avd, *button_arg, *button_ard;
91  gui::ComboBox *av_g, *av_d, *ar_g, *ar_d, *pas;
92  gui::DoubleSpinBox *trim, *kp, *ki;
93  gui::SpinBox *start_value, *poles;
94  core::Time start_time, flight_start_time;
95  int time_sec;
96  float speed_av_g, speed_av_d, speed_ar_g, speed_ar_d;
97  float int_av_g, int_av_d, int_ar_g, int_ar_d;
98
99  // matrix
100  core::cvmatrix *input;
101  core::cvmatrix *output;
102
103  int tested_motor;
104  core::I2cPort *i2cport;
105  uint8_t slave_address;
106
107  bool enabled;
108
109  uint16_t SatPWM(float vel_cons, uint16_t min, uint16_t max);
110};
111} // end namespace actuator
112} // end namespace flair
113#endif // BLCTRLV2_X4_SPEED_H
Note: See TracBrowser for help on using the repository browser.