beacon from 2009
[aversive.git] / projects / microb2010 / common / i2c_commands.h
index b5c9d36..9882ba6 100644 (file)
@@ -1,6 +1,6 @@
 /*
- *  Copyright Droids Corporation (2007)
- * 
+ *  Copyright Droids Corporation (2010)
+ *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 2 of the License, or
@@ -23,6 +23,7 @@
 #define _I2C_COMMANDS_H_
 
 #define I2C_OPPONENT_NOT_THERE -1000
+#define I2C_BEACON_NOT_FOUND -1000
 
 #define I2C_MAINBOARD_ADDR   1
 #define I2C_COBBOARD_ADDR    2
@@ -78,6 +79,8 @@ struct i2c_cmd_cobboard_set_mode {
 #define I2C_COBBOARD_MODE_HARVEST      0x01 /* harvest mode */
 #define I2C_COBBOARD_MODE_EJECT        0x02 /* eject cobs */
 #define I2C_COBBOARD_MODE_INIT         0x03 /* init state machine */
+#define I2C_COBBOARD_MODE_KICKSTAND_UP   0x04 /* help to climb the hill */
+#define I2C_COBBOARD_MODE_KICKSTAND_DOWN 0x05 /* help to climb the hill */
        uint8_t mode;
 };
 
@@ -90,13 +93,18 @@ struct i2c_cmd_ballboard_set_mode {
 #define I2C_BALLBOARD_MODE_OFF         0x01
 #define I2C_BALLBOARD_MODE_HARVEST     0x02
 #define I2C_BALLBOARD_MODE_EJECT       0x03
-#define I2C_BALLBOARD_MODE_PREP_L_FORK 0x04
-#define I2C_BALLBOARD_MODE_TAKE_L_FORK 0x05
-#define I2C_BALLBOARD_MODE_PREP_R_FORK 0x06
-#define I2C_BALLBOARD_MODE_TAKE_R_FORK 0x07
+#define I2C_BALLBOARD_MODE_PREP_FORK   0x04
+#define I2C_BALLBOARD_MODE_TAKE_FORK   0x05
        uint8_t mode;
 };
 
+#define I2C_CMD_BALLBOARD_SET_BEACON 0x04
+
+struct i2c_cmd_ballboard_start_beacon {
+       struct i2c_cmd_hdr hdr;
+       uint8_t enable;
+};
+
 /****/
 /* requests and their answers */
 /****/
@@ -123,11 +131,13 @@ struct i2c_ans_cobboard_status {
        /* mode type are defined above: I2C_COBBOARD_MODE_xxx */
        uint8_t mode;
 
-#define I2C_COBBOARD_STATUS_READY         0x00
-#define I2C_COBBOARD_STATUS_OFF           0x01
-#define I2C_COBBOARD_STATUS_LBUSY         0x02
-#define I2C_COBBOARD_STATUS_RBUSY         0x03
-#define I2C_COBBOARD_STATUS_EJECT         0x04
+#define I2C_COBBOARD_STATUS_READY          0x00
+#define I2C_COBBOARD_STATUS_OFF            0x01
+#define I2C_COBBOARD_STATUS_LBUSY          0x02
+#define I2C_COBBOARD_STATUS_RBUSY          0x03
+#define I2C_COBBOARD_STATUS_EJECT          0x04
+#define I2C_COBBOARD_STATUS_KICKSTAND_UP   0x05
+#define I2C_COBBOARD_STATUS_KICKSTAND_DOWN 0x06
        uint8_t status;
 
        uint8_t cob_count;
@@ -154,6 +164,11 @@ struct i2c_ans_ballboard_status {
 #define I2C_BALLBOARD_STATUS_F_EXCPT         0x02
        uint8_t status;
 
+       int16_t opponent_x;
+       int16_t opponent_y;
+       int16_t opponent_a;
+       int16_t opponent_d;
+
        uint8_t ball_count;
 
        /* detection of cobs */