LRT13  1.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
ShooterData.h
1 #ifndef SHOOTER_DATA_H
2 #define SHOOTER_DATA_H
3 
4 #include "ComponentData.h"
5 
6 namespace data
7 {
12  namespace shooter
13  {
14  enum Roller
15  {
16  OUTER = 1,
17  INNER = 0
18  };
19 
20  enum Speed
21  {
22  HIGH = 0,
23  LOW = 1
24  };
25 
26  enum ShooterSetting
27  {
28  OFF = 0,
29  MANUAL = 1,
30  ONCE = 2,
31  CONTINUOUS = 3
32  };
33 
34  enum PneumaticsState
35  {
36  EXTENDED = true,
37  RETRACTED = false
38  };
39 
40  class ShooterData
41  {
42  public:
43  ShooterData();
44  void SetDesiredSpeed(double desiredSpeed, Roller roller);
45  double GetDesiredSpeed(Roller roller);
46 
47  void SetAtSpeed(bool value, Roller roller);
48  bool IsAtSpeed(Roller roller);
49 
50  void SetAcceptableSpeedError(double error, int roller);
51  double GetAcceptableSpeedError(int roller);
52 
53  void SetSpeedOffset(double offset);
54  double GetSpeedOffset();
55 
56  void SetLauncherAngleHigh();
57  void SetLauncherAngleLow();
58  bool ShouldLauncherBeHigh();
59 
60  void increaseSpeed();
61  void decreaseSpeed();
62 
63  bool shouldIncreaseSpeedOnce();
64  bool shouldDecreaseSpeedOnce();
65 
66  void SetShooterSetting(ShooterSetting s);
67  int GetShooterSetting();
68 
69  int GetFrisbeeCounter();
70  void SetFrisbeeCounter(int numFrisbees);
71  void IncrementFrisbeeCounter();
72  void DecrementFrisbeeCounter();
73  void SetEnabled(bool enabled);
74  bool IsEnabled();
75 
76  bool IsFlashlightEnabled();
77  void EnableFlashlight(bool on);
78 
79  private:
80  bool m_isFlashlightEnabled;
81 
82  bool m_shouldIncreaseSpeed, m_shouldDecreaseSpeed;
83  double acceptableSpeedError[2];
84  double speed[2];
85  bool atSpeed[2];
86  bool extendLauncher;
87  ShooterSetting shooter_setting;
88  int frisbeeCounter;
89  bool m_enabled;
90  double speedOffset;
91  };
92  }
93 
94 
95 
96 }
97 
98 #endif