/* status */
cobboard.mode = ans->mode;
cobboard.status = ans->status;
+ cobboard.cob_count = ans->cob_count;
cobboard.left_cobroller_speed = ans->left_cobroller_speed;
cs_set_consign(&mainboard.left_cobroller.cs, cobboard.left_cobroller_speed);
cobboard.right_cobroller_speed = ans->right_cobroller_speed;
}
case I2C_ANS_BALLBOARD_STATUS: {
+ uint8_t tmp;
struct i2c_ans_ballboard_status * ans =
(struct i2c_ans_ballboard_status *)buf;
ballboard.mode = ans->mode;
ballboard.status = ans->status;
ballboard.ball_count = ans->ball_count;
+ tmp = ans->lcob;
+ if (tmp != I2C_COB_NONE)
+ ballboard.lcob = tmp;
+ tmp = ans->rcob;
+ if (tmp != I2C_COB_NONE)
+ ballboard.rcob = tmp;
break;
}
int8_t i2c_cobboard_set_mode(uint8_t mode)
{
#ifdef HOST_VERSION
- return robotsim_i2c_cobboard_set_mode(mode);
-#else
+ cobboard.mode = mode;
+#endif
struct i2c_cmd_cobboard_set_mode buf;
buf.hdr.cmd = I2C_CMD_COBBOARD_SET_MODE;
buf.mode = mode;
return i2c_send_command(I2C_COBBOARD_ADDR, (uint8_t*)&buf, sizeof(buf));
-#endif
}
static int8_t i2c_cobboard_set_spickle(uint8_t side, uint8_t flags)
{
+#ifdef HOST_VERSION
+ return robotsim_i2c_cobboard_set_spickles(side, flags);
+#else
if (side == I2C_LEFT_SIDE)
cobboard.lspickle = flags;
else
cobboard.rspickle = flags;
return 0;
+#endif
}
int8_t i2c_cobboard_pack(uint8_t side)
return i2c_cobboard_set_spickle(side, 0);
}
-int8_t i2c_cobboard_harvest(uint8_t side)
+int8_t i2c_cobboard_pack_weak(uint8_t side)
+{
+ return i2c_cobboard_set_spickle(side, I2C_COBBOARD_SPK_WEAK);
+}
+
+int8_t i2c_cobboard_autoharvest(uint8_t side)
{
return i2c_cobboard_set_spickle(side,
I2C_COBBOARD_SPK_DEPLOY |
return i2c_cobboard_set_spickle(side, I2C_COBBOARD_SPK_DEPLOY);
}
+int8_t i2c_cobboard_autoharvest_nomove(uint8_t side)
+{
+ return i2c_cobboard_set_spickle(side,
+ I2C_COBBOARD_SPK_DEPLOY |
+ I2C_COBBOARD_SPK_AUTOHARVEST |
+ I2C_COBBOARD_SPK_NO_MOVE);
+}
+
+int8_t i2c_cobboard_deploy_nomove(uint8_t side)
+{
+ return i2c_cobboard_set_spickle(side, I2C_COBBOARD_SPK_DEPLOY |
+ I2C_COBBOARD_SPK_NO_MOVE);
+}
+
int8_t i2c_ballboard_set_mode(uint8_t mode)
{
struct i2c_cmd_ballboard_set_mode buf;