source: flair-src/branches/mavlink/lib/FlairSensorActuator/src/BlCtrlV2_x4_speed.h@ 57

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

sources reformatted with flair-format-dir script

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.