summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/top_cb.c
diff options
context:
space:
mode:
authorJérémy Dufour2008-05-03 11:15:31 +0200
committerJérémy Dufour2008-05-03 11:15:31 +0200
commit1bcff7dbcbb284f5564ac708292b23fd447395a9 (patch)
tree2cc5f47226bd7155f9ed575d1a76593b6f14a802 /digital/io/src/top_cb.c
parentd803fd8ba61dba29c904ee1fccfab2b7177834d4 (diff)
* digital/io/src
* top FSM - change the position where to drop balls at the gutter (to prevent the order of dropped balls to change) ; - change the order of balls taken at the distributor: first two samples with three ice, then three samples with two ice. * get samples FSM - manage the case where the arm passed the noted position in the state where it should not (because the arm was blocked) ; - add some debug messages. * gutter FSM - reduce the time spent to drop the balls at the gutter. * move FSM - update the algorithm to avoid obstacle: when a obstacle is seen, first way, then if it is not present anymore continue, otherwise, try to find an alternative path; if none found, wait again. * chrono - near end of the match time increased to 83s.
Diffstat (limited to 'digital/io/src/top_cb.c')
-rw-r--r--digital/io/src/top_cb.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/digital/io/src/top_cb.c b/digital/io/src/top_cb.c
index 0cccdf38..2710543d 100644
--- a/digital/io/src/top_cb.c
+++ b/digital/io/src/top_cb.c
@@ -144,7 +144,7 @@ top__GO_TO_ADVERSE_ICE_DISTRIBUTOR__move_fsm_finished (void)
/* Start the get samples FSM with the correct angle to get only two
* samples. The problem is this should depend on the time we have until
* the end of match */
- uint8_t bitfield = _BV (out_right_box) | _BV (middle_right_box);
+ uint8_t bitfield = 0x3E;
getsamples_start (PG_DISTRIBUTOR_ICE_ADVERSE_A, bitfield);
return top_next (GO_TO_ADVERSE_ICE_DISTRIBUTOR, move_fsm_finished);
}
@@ -161,14 +161,14 @@ top__GO_TO_OUR_ICE_DISTRIBUTOR__move_fsm_finished (void)
uint8_t bitfield = 0;
if (top_fsm_loop_count_ == 0)
{
- /* First time we try to get our ice, let's took two */
- bitfield = _BV (middle_left_box) | _BV (middle_right_box);
+ /* First time we try to get our ice, let's took three */
+ bitfield = _BV (out_left_box) | _BV (middle_box) | _BV
+ (out_right_box);
}
else
{
- /* Second time we try to get our ice, let's took only three */
- bitfield = _BV (out_left_box) | _BV (middle_box) | _BV
- (out_right_box);
+ /* Second time we try to get our ice, let's took only two */
+ bitfield = _BV (middle_left_box) | _BV (middle_right_box);
}
getsamples_start (PG_DISTRIBUTOR_ICE_OUR_A, bitfield);
return top_next (GO_TO_OUR_ICE_DISTRIBUTOR, move_fsm_finished);
@@ -186,15 +186,14 @@ top__GO_TO_SAMPLE_DISTRIBUTOR__move_fsm_finished (void)
uint8_t bitfield = 0;
if (top_fsm_loop_count_ == 0)
{
- /* First time we try to get our samples, let's took three of them */
- bitfield = _BV (out_left_box) | _BV (middle_box) | _BV
- (out_right_box);
+ /* First time we try to get our samples, let's took only two of them */
+ bitfield = _BV (middle_left_box) | _BV (middle_right_box);
}
else
{
- /* Second time we try to get our samples, let's took only two of them
- */
- bitfield = _BV (middle_left_box) | _BV (middle_right_box);
+ /* Second time we try to get our samples, let's took three of them */
+ bitfield = _BV (out_left_box) | _BV (middle_box) | _BV
+ (out_right_box);
}
getsamples_start (PG_DISTRIBUTOR_SAMPLE_OUR_A, bitfield);
return top_next (GO_TO_SAMPLE_DISTRIBUTOR, move_fsm_finished);