X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=projects%2Fmicrob2010%2Fmainboard%2Fstrat.c;h=ad37ec44a3d86076fd2729ee39561c0123684f17;hp=3ef6675f5837a3535a9e001a497fb5c28f55a77a;hb=d23a4fdeed4e90d004d407942b230c188d012465;hpb=0a6dcb3bfa4b8b424975f91b8bcd57f0832deb9e diff --git a/projects/microb2010/mainboard/strat.c b/projects/microb2010/mainboard/strat.c index 3ef6675..ad37ec4 100644 --- a/projects/microb2010/mainboard/strat.c +++ b/projects/microb2010/mainboard/strat.c @@ -116,8 +116,8 @@ void strat_event_disable(void) void strat_init(void) { #ifdef HOST_VERSION - position_set(&mainboard.pos, 298.16, - COLOR_Y(308.78), COLOR_A(70.00)); + position_set(&mainboard.pos, 258., + COLOR_Y(246.), COLOR_A(45.)); #endif /* we consider that the color is correctly set */ @@ -155,18 +155,33 @@ void strat_exit(void) #endif } -/* called periodically (10ms) */ -void strat_event(void *dummy) +/* mark tomato as not present */ +static void check_tomato(void) +{ + int16_t x, y; + uint8_t i, j; + + x = position_get_x_s16(&mainboard.pos); + y = position_get_y_s16(&mainboard.pos); + + if (xycoord_to_ijcoord(&x, &y, &i, &j) < 0) + return; + + if (strat_db.wp_table[i][j].type != WP_TYPE_TOMATO) + return; + + strat_db.wp_table[i][j].present = 0; +} + +/* mark corn as not present and give correct commands to the cobboard + * for spickles */ +static void check_corn(void) { uint8_t flags; int8_t lcob_near, rcob_near; uint8_t lcob, rcob; uint8_t lidx, ridx; - /* ignore when strat is not running */ - if (strat_running == 0) - return; - /* read sensors from ballboard */ IRQ_LOCK(flags); lcob = ballboard.lcob; @@ -255,9 +270,19 @@ void strat_event(void *dummy) else i2c_cobboard_deploy(I2C_RIGHT_SIDE); } +} + +/* called periodically (10ms) */ +void strat_event(void *dummy) +{ + /* ignore when strat is not running */ + if (strat_running == 0) + return; + check_tomato(); + check_corn(); /* limit speed when opponent is near */ - strat_limit_speed(); + //strat_limit_speed(); }