state_init();
else if (!strcmp_P(res->arg1, PSTR("eject")))
state_set_mode(I2C_COBBOARD_MODE_EJECT);
+ else if (!strcmp_P(res->arg1, PSTR("ignore_i2c")))
+ state_set_i2c_ignore(1);
+ else if (!strcmp_P(res->arg1, PSTR("care_i2c")))
+ state_set_i2c_ignore(0);
/* other commands */
}
prog_char str_state1_arg0[] = "cobboard";
parse_pgm_token_string_t cmd_state1_arg0 = TOKEN_STRING_INITIALIZER(struct cmd_state1_result, arg0, str_state1_arg0);
-prog_char str_state1_arg1[] = "init#eject";
+prog_char str_state1_arg1[] = "init#eject#ignore_i2c#care_i2c";
parse_pgm_token_string_t cmd_state1_arg1 = TOKEN_STRING_INITIALIZER(struct cmd_state1_result, arg1, str_state1_arg1);
prog_char help_state1[] = "set cobboard mode";
__attribute__((unused)) void *data)
{
struct cmd_state2_result *res = parsed_result;
- uint8_t side, mode = state_get_mode();
+ uint8_t side;
- if (!strcmp_P(res->arg2, PSTR("left"))) {
+ if (!strcmp_P(res->arg2, PSTR("left")))
side = I2C_LEFT_SIDE;
- mode &= ~(I2C_COBBOARD_MODE_L_DEPLOY | I2C_COBBOARD_MODE_L_HARVEST);
- }
- else {
+ else
side = I2C_RIGHT_SIDE;
- mode &= ~(I2C_COBBOARD_MODE_R_DEPLOY | I2C_COBBOARD_MODE_R_HARVEST);
- }
if (!strcmp_P(res->arg1, PSTR("pack"))) {
- /* nothing to do */
+ state_set_mode(I2C_COBBOARD_MODE_HARVEST);
+ state_set_spickle(side, 0);
}
else if (!strcmp_P(res->arg1, PSTR("deploy"))) {
- if (side == I2C_LEFT_SIDE)
- mode |= I2C_COBBOARD_MODE_L_DEPLOY;
- else
- mode |= I2C_COBBOARD_MODE_R_DEPLOY;
+ state_set_mode(I2C_COBBOARD_MODE_HARVEST);
+ state_set_spickle(side, I2C_COBBOARD_SPK_DEPLOY);
}
else if (!strcmp_P(res->arg1, PSTR("harvest"))) {
- if (side == I2C_LEFT_SIDE) {
- mode |= I2C_COBBOARD_MODE_L_DEPLOY;
- mode |= I2C_COBBOARD_MODE_L_HARVEST;
- }
- else {
- mode |= I2C_COBBOARD_MODE_R_DEPLOY;
- mode |= I2C_COBBOARD_MODE_R_HARVEST;
- }
+ state_set_mode(I2C_COBBOARD_MODE_HARVEST);
+ state_set_spickle(side, I2C_COBBOARD_SPK_DEPLOY |
+ I2C_COBBOARD_SPK_AUTOHARVEST);
+ }
+ else if (!strcmp_P(res->arg1, PSTR("deploy_nomove"))) {
+ state_set_mode(I2C_COBBOARD_MODE_HARVEST);
+ state_set_spickle(side, I2C_COBBOARD_SPK_DEPLOY |
+ I2C_COBBOARD_SPK_NO_MOVE);
+ }
+ else if (!strcmp_P(res->arg1, PSTR("harvest_nomove"))) {
+ state_set_mode(I2C_COBBOARD_MODE_HARVEST);
+ state_set_spickle(side, I2C_COBBOARD_SPK_DEPLOY |
+ I2C_COBBOARD_SPK_AUTOHARVEST |
+ I2C_COBBOARD_SPK_NO_MOVE);
}
-
- state_set_mode(mode);
}
prog_char str_state2_arg0[] = "cobboard";
parse_pgm_token_string_t cmd_state2_arg0 = TOKEN_STRING_INITIALIZER(struct cmd_state2_result, arg0, str_state2_arg0);
-prog_char str_state2_arg1[] = "harvest#deploy#pack";
+prog_char str_state2_arg1[] = "harvest#deploy#pack#harvest_nomove#deploy_nomove";
parse_pgm_token_string_t cmd_state2_arg1 = TOKEN_STRING_INITIALIZER(struct cmd_state2_result, arg1, str_state2_arg1);
prog_char str_state2_arg2[] = "left#right";
parse_pgm_token_string_t cmd_state2_arg2 = TOKEN_STRING_INITIALIZER(struct cmd_state2_result, arg2, str_state2_arg2);