summaryrefslogtreecommitdiffhomepage
path: root/digital/io-hub/src
diff options
context:
space:
mode:
authorJerome Jutteau2013-05-01 17:53:37 +0200
committerJerome Jutteau2013-05-01 17:54:09 +0200
commit5ba738d4fe93ea04f259badb38343c5e2fb6168e (patch)
tree7d6b235cf380ce0bdb2d0d3a35dc8bf1dd8d0c75 /digital/io-hub/src
parenta90882ab6912fc85436b9a5b5ae51d3b2007ed3e (diff)
digital/io-hub/src/apbirthday: add plate counter
Diffstat (limited to 'digital/io-hub/src')
-rw-r--r--digital/io-hub/src/apbirthday/plate.cc21
-rw-r--r--digital/io-hub/src/apbirthday/plate.hh7
2 files changed, 28 insertions, 0 deletions
diff --git a/digital/io-hub/src/apbirthday/plate.cc b/digital/io-hub/src/apbirthday/plate.cc
index 43e05e57..8fda068b 100644
--- a/digital/io-hub/src/apbirthday/plate.cc
+++ b/digital/io-hub/src/apbirthday/plate.cc
@@ -25,6 +25,26 @@
#include "defs.hh"
#include "plate.hh"
+Plate::Plate ()
+{
+ reset_plate_nb ();
+}
+
+inline int Plate::get_plate_nb ()
+{
+ return nb_plate;
+}
+
+inline void Plate::reset_plate_nb ()
+{
+ nb_plate = 0;
+}
+
+inline void Plate::ppp ()
+{
+ nb_plate++;
+}
+
inline void Plate::arm_down ()
{
robot->hardware.cherry_plate_down.set (true);
@@ -120,6 +140,7 @@ FSM_TRANS_TIMEOUT (PLATE_TAKE_GLUE, 100, PLATE_TAKE_UPING)
FSM_TRANS_TIMEOUT (PLATE_TAKE_UPING, 100, PLATE_I_HAZ_PLATE)
{
robot->fsm_queue.post (FSM_EVENT (plate_taken));
+ robot->plate.ppp ();
}
FSM_TRANS (PLATE_I_HAZ_PLATE, plate_take, PLATE_I_HAZ_PLATE)
diff --git a/digital/io-hub/src/apbirthday/plate.hh b/digital/io-hub/src/apbirthday/plate.hh
index 2740b001..614c1790 100644
--- a/digital/io-hub/src/apbirthday/plate.hh
+++ b/digital/io-hub/src/apbirthday/plate.hh
@@ -28,11 +28,18 @@
class Plate
{
public:
+ Plate ();
+ int get_plate_nb ();
+ void reset_plate_nb ();
+ // Increment plate_nb, internal use for FSM
+ void ppp ();
// GPIO manipulation.
static void arm_down ();
static void arm_up ();
static void clamp_open ();
static void clamp_close ();
+ private:
+ int nb_plate;
};
#endif // plate_hh