Flair
Framework Libre Air
X4.h
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: 2012/08/21
6 // filename: X4.h
7 //
8 // author: Osamah Saif, Guillaume Sanahuja
9 // Copyright Heudiasyc UMR UTC/CNRS 7253
10 //
11 // version: $Id: $
12 //
13 // purpose: classe definissant un x4
14 //
15 /*********************************************************************/
16 
17 #ifndef X4_H
18 #define X4_H
19 
20 #include <Model.h>
21 #include <stdint.h>
22 #include <stdio.h>
23 
24 namespace flair {
25 namespace core {
26 class Mutex;
27 }
28 namespace gui {
29 class DoubleSpinBox;
30 }
31 namespace actuator {
32 class SimuBldc;
33 }
34 }
35 
36 #ifdef GL
37 namespace irr {
38 namespace scene {
39 class IMesh;
40 }
41 }
42 #endif
43 
44 namespace flair {
45 namespace simulator {
46 class Simulator;
47 class Blade;
48 class MeshSceneNode;
49 
50 class X4 : public Model {
51 public:
52  X4(const Simulator *parent, std::string name, int dev_id);
53  ~X4();
54 #ifdef GL
55  virtual void Draw(void);
56  virtual void ExtraDraw(void){};
57 
58 protected:
59  irr::scene::IMesh *red_arm, *black_arm, *motor;
60  MeshSceneNode *fl_arm, *fr_arm, *rl_arm, *rr_arm;
61  MeshSceneNode *fl_motor, *fr_motor, *rl_motor, *rr_motor;
62  Blade *fl_blade, *fr_blade, *rl_blade, *rr_blade;
63  core::Mutex *motor_speed_mutex;
64 #endif
65 private:
66  void CalcModel(void);
67 #ifdef GL
68  bool OnEvent(const irr::SEvent &event){};
69  void AnimateModel(void);
70  size_t dbtSize(void) const;
71  void WritedbtBuf(char *dbtbuf);
72  void ReaddbtBuf(char *dbtbuf);
73 #endif
74 
75  actuator::SimuBldc *motors;
76  float motor_speed[4];
77  gui::DoubleSpinBox *m, *arm_length, *l_cg;
78  gui::DoubleSpinBox *k_mot, *c_mot;
79  gui::DoubleSpinBox *f_air_vert, *f_air_lat;
80  gui::DoubleSpinBox *j_roll, *j_pitch, *j_yaw;
81 };
82 } // end namespace simulator
83 } // end namespace flair
84 #endif // X4_H
namespace of the flair Framework
Definition: Ahrs.h:19
Definition: Blade.h:33
Definition: X4.h:50
Definition: Simulator.h:37
Class defining a mutex.
Definition: Mutex.h:29
Definition: MeshSceneNode.h:26
Definition: Blade.h:22
Definition: Model.h:55
Class for a simulation bldc.
Definition: SimuBldc.h:37
Class displaying a QDoubleSpinBox on the ground station.
Definition: DoubleSpinBox.h:28