- uint8_t side;
- uint8_t next_mode;
- } prep_pickup;
-
- struct {
- uint8_t level_l;
- uint8_t level_r;
- } prep_build;
-
- struct {
- uint8_t side;
- } push_temple_disc;
-
- struct {
- uint8_t level;
- } push_temple;
-
- struct {
- uint8_t level_left;
- uint8_t level_right;
- uint8_t count_left;
- uint8_t count_right;
- uint8_t distance_left;
- uint8_t distance_right;
- uint8_t do_lintel;
- } autobuild;
-
- struct {
- uint8_t level_l;
- uint8_t level_r;
- } prep_inside;
- };
-};
-
-/****/
-
-/* only valid in manual mode */
-#define I2C_CMD_MECHBOARD_ARM_GOTO 0x03
-
-struct i2c_cmd_mechboard_arm_goto {
- struct i2c_cmd_hdr hdr;
-#define I2C_MECHBOARD_ARM_LEFT 0
-#define I2C_MECHBOARD_ARM_RIGHT 1
-#define I2C_MECHBOARD_ARM_BOTH 2
- uint8_t which;
-
- uint8_t height; /* in cm */
- uint8_t distance; /* in cm */
-};
-
-/****/
-
-#define I2C_CMD_SENSORBOARD_SET_BEACON 0x04
-
-struct i2c_cmd_sensorboard_start_beacon {
- struct i2c_cmd_hdr hdr;
- uint8_t enable;
-};
-
-
-/****/
-
-#define I2C_CMD_SENSORBOARD_SET_SCANNER 0x05
-
-struct i2c_cmd_sensorboard_scanner {
- struct i2c_cmd_hdr hdr;
-
-#define I2C_SENSORBOARD_SCANNER_STOP 0x00
-#define I2C_SENSORBOARD_SCANNER_PREPARE 0x01
-#define I2C_SENSORBOARD_SCANNER_START 0x02
- uint8_t mode;
-};
-
-/*****/
-
-#define I2C_CMD_SENSORBOARD_CALIB_SCANNER 0x06
-struct i2c_cmd_sensorboard_calib_scanner {
- struct i2c_cmd_hdr hdr;
-};
-
-/*****/
-
-#define I2C_CMD_SENSORBOARD_SCANNER_ALGO 0x07
-struct i2c_cmd_sensorboard_scanner_algo {
- struct i2c_cmd_hdr hdr;
-
-#define I2C_SCANNER_ALGO_COLUMN_DROPZONE 1
-#define I2C_SCANNER_ALGO_CHECK_TEMPLE 2
-#define I2C_SCANNER_ALGO_TEMPLE_DROPZONE 3
- uint8_t algo;
-
- union {
- struct {
-#define I2C_SCANNER_ZONE_0 0
-#define I2C_SCANNER_ZONE_1 1
-#define I2C_SCANNER_ZONE_DISC 2
- uint8_t working_zone;
- int16_t center_x;
- int16_t center_y;
- } drop_zone;
-
- struct {
- uint8_t level;
- int16_t temple_x;
- int16_t temple_y;
- } check_temple;