summaryrefslogtreecommitdiff
path: root/i/marvin/src/es/es.hh
diff options
context:
space:
mode:
Diffstat (limited to 'i/marvin/src/es/es.hh')
-rw-r--r--i/marvin/src/es/es.hh25
1 files changed, 23 insertions, 2 deletions
diff --git a/i/marvin/src/es/es.hh b/i/marvin/src/es/es.hh
index 600a480..8abcca4 100644
--- a/i/marvin/src/es/es.hh
+++ b/i/marvin/src/es/es.hh
@@ -35,6 +35,11 @@ class Config;
/// Gère la carte es et ses capteurs et actionneurs
class Es : public Proto::Receiver
{
+ public:
+ enum etatBarillet{empty,white,black};
+ enum posBar{avant0 = 0x00, arriere2 = 0x04, avant4 = 0x08, arriere1 =
+ 0x0C, avant3 = 0x10, arriere0 = 0x14, avant2 = 0x18, arriere4 = 0x1C,
+ avant1 = 0x20, arriere3 = 0x24};
typedef std::vector<int> Sharps;
private:
@@ -72,10 +77,14 @@ class Es : public Proto::Receiver
/// Stat of front sensors
int rvbSniffFrontStat_;
int thresholdFrontSensors_, thresholdBallSensors_, thresholdHoleSensors_;
-
-
+ /// Stock du barillet
+ etatBarillet stockBarillet[5];
+ /// Position du barillet
+ posBar positionBarillet_;
/// System for analyse a ball
int seenColors_[5], lastSeenColors_[5], comptSeenColors_[5];
+ /// Si la turbine avant est allumé
+ bool frontTurbineIsFull_;
public:
// Some fucking defines !
@@ -160,18 +169,30 @@ class Es : public Proto::Receiver
void barilletSleep (void);
/// Dépose une balle du barillet
void deposeBalle(void);
+ /// Dépose une balle blanche
+ bool dropWhiteBall(void);
+ /// Dépose une balle noire
+ bool dropBlackBall(void);
+ /// Place un trou vide à l'avant
+ bool setEmptyHoleFront(void);
/// Extrait une balle
void extraitBalle(void);
/// Rotation du barillet
void rotationBarillet(int posFinal);
/// Empty everything in the barillet
void barilletEmpty (void);
+ /// Say if barillet is full
+ bool barilletIsFull(void);
/// What color do you see my lord ?
int colorSeen (int sensor_num);
private:
/// Decode a color into a string
std::string decodeColor (int color);
+ /// Analyse une balle arrivant par devant
+ void newBallFront (void);
+ /// Analyse une balle arrivant par derrière
+ void newBallRear (void);
/// Update system for one sensor
void updateAnalysisSensor (int value, int index, int threshold);
};