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.hh75
1 files changed, 60 insertions, 15 deletions
diff --git a/i/marvin/src/es/es.hh b/i/marvin/src/es/es.hh
index deb9771..ecdcd08 100644
--- a/i/marvin/src/es/es.hh
+++ b/i/marvin/src/es/es.hh
@@ -28,12 +28,17 @@
#include "proto/proto.hh"
#include <string>
+#include <vector>
class Config;
/// Gère la carte es et ses capteurs et actionneurs
class Es : public Proto::Receiver
{
+ typedef std::vector<int> SensorRVB;
+ typedef std::vector<SensorRVB> SensorsRVB;
+ typedef std::vector<int> SniffRVB;
+ typedef std::vector<int> Sharps;
private:
// Objet Proto de communication vers la carte es
Proto proto_;
@@ -41,40 +46,70 @@ class Es : public Proto::Receiver
std::string tty_;
/// Système de log
Log log_;
+ /// For LCD communication
+ char lcd_mess_char_[32];
+ /// Key pressed by the LCD Keyboard
+ int lcd_key_pressed_;
+ /// Frontal choc !
+ bool front_sensor_;
+ /// Vector of sensors
+ SensorsRVB sensorsRvb_;
+ /// Sniff RVB
+ SniffRVB sniffRvb_;
+ /// Sharps
+ Sharps sharps_;
public:
/// Constructeur
Es (const Config & config);
- /// Initialise les capteurs et actionneurs
- void init(void);
+ /// Initialise les capteurs et actionneurs, reset
+ void reset (void);
/// On attend ...
- bool wait(int timeout = -1);
+ bool wait (int timeout = -1);
/// Récupère le File Descriptor
- int getFd(void);
+ int getFd (void);
/// définition du receiver::receive
- void receive(char command, const Proto::Frame & frame);
+ void receive (char command, const Proto::Frame & frame);
/// sync..
- bool sync(void);
- private:
+ bool sync (void);
+
/// Charge les paramètre du fichier de config
- void loadConfig(const Config & config);
+ void loadConfig (const Config & config);
/// Envoie de la config des sensors RVB
void setRVBSensorsConfig(int false_ic, int max_ov);
/// Envoie de la config des sniff RVB
- void setRVBSniffConfig(int ref_ratio);
+ void setRVBSniffConfig(int ref_ratio, int green_limit, int clear_limit);
/// Règle les stats des sensors RVB
void setRVBSensorsStat(int mask_captor, int freq);
/// règle la couleur actuelle comme référente
void setRefColor(int mask_captor, int mode);
- /// Règle les stats si le "sensors is seen"
- // XXX Faudra lui filer un vrai nom quand même
- void setRVBSeenStat(int mask_captor, int freq);
+ /// Règle les stats d'affichage de la couleur
+ void setRVBSniffStat (int mask_captor, int freq);
+ /// Configure statistic for the sensor of the ball
+ void setRVBBallStat (int sensor_num, int freq);
+ /// Enable all the sensors or just the 4 and 1 near the ground
+ void enableAllSensors (bool enable);
+
/// Discute avec les servo...
- void setServoPos(int servoNb, int servoPos);
+ void setServoPos (int servoNb, int servoPos);
+
+ /// Set update frequency of sharps
+ void setSharpUpdate (int sharp_mask, int freq);
+ /// Set statistics frequency of sharps
+ void setSharpStat (int sharp_mask, int freq);
+ /// Set configuration of threshold sharps
+ void setSharpThreshold (int sharp_num, int threshold_high,
+ int threshold_low);
+
+ /// Print something on the LCD (max 32 char)
+ void lcdPrint (const std::string &message);
+ /// Get the current pressed keys of the LCD
+ void lcdGetKey (int freq);
+
/// Règle la vitesse des turbines
- void setTurbineSpeed(int turbNb, int speed);
+ void setTurbineSpeed (int turbNb, int speed);
/// Règle le sens de rotation du barillet
- void setTheMeaningOfRotationOfBarillet(int answer);
+ void setTheMeaningOfRotationOfBarillet (int answer);
/// Init n°2 of barillet
void init2Barillet(void);
/// Dépose une balle du barillet
@@ -83,5 +118,15 @@ class Es : public Proto::Receiver
void extraitBalle(void);
/// Rotation du barillet
void rotationBarillet(int posFinal);
+ /// Put barillet in sleep mode
+ void barilletSleep (void);
+
+ /// Shut up !
+ void shutUp (void);
+ /// Set frequency of ack
+ void setAckStat (int freq);
+
+ /// Stat for the main ()
+ void setMainStat (int freq);
};
#endif // es_hh