X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fcobboard%2Fcommands_cobboard.c;h=669c4c8bc8589ac9753377c0ae9ebc6520e02dc2;hp=bea27e9f83fa7a314261c72b855fc653a9b7b52a;hb=aa68be2d5d596693bda1109e4ccd6489f613b4f7;hpb=6914527de2ecfef9d790740c71739e7418246b96 diff --git a/projects/microb2010/cobboard/commands_cobboard.c b/projects/microb2010/cobboard/commands_cobboard.c index bea27e9..669c4c8 100644 --- a/projects/microb2010/cobboard/commands_cobboard.c +++ b/projects/microb2010/cobboard/commands_cobboard.c @@ -193,13 +193,17 @@ static void cmd_state1_parsed(void *parsed_result, 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"; @@ -229,43 +233,42 @@ static void cmd_state2_parsed(void *parsed_result, __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);