summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/getsamples.c
diff options
context:
space:
mode:
authorNélio Laranjeiro2008-04-11 00:43:24 +0200
committerNélio Laranjeiro2008-04-11 00:43:24 +0200
commit1dd17a56e081e19dd1f8de9ea2035a6f4d83d1db (patch)
tree70f99e5aaba6be1e7bee030971e87dbbcbe82cc4 /digital/io/src/getsamples.c
parent370fa5662360eaa582bed9d55e092b627aef8920 (diff)
Update the fsms.
Diffstat (limited to 'digital/io/src/getsamples.c')
-rw-r--r--digital/io/src/getsamples.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/digital/io/src/getsamples.c b/digital/io/src/getsamples.c
index 73859fa3..b80881eb 100644
--- a/digital/io/src/getsamples.c
+++ b/digital/io/src/getsamples.c
@@ -25,6 +25,7 @@
#include "common.h"
#include "getsamples.h"
#include "fsm.h"
+#include "trap.h"
struct getsamples_data_t getsamples_data;
@@ -42,3 +43,35 @@ getsamples_start (uint32_t distributor_x, uint32_t distributor_y,
fsm_handle_event (&getsamples_fsm, GETSAMPLES_EVENT_ok);
}
+/** Configure the classifier using the bit fields in the getsamples_data
+ * structure.
+ */
+void
+getsamples_configure_classifier (void)
+{
+ switch (getsamples_data.samples)
+ {
+ case 0x15:
+ trap_setup_path_to_box (out_left_box);
+ getsamples_data.samples &= 0xF;
+ break;
+ case 0xA:
+ trap_setup_path_to_box (middle_left_box);
+ getsamples_data.samples &= 0x7;
+ break;
+ case 0x5:
+ trap_setup_path_to_box (middle_box);
+ getsamples_data.samples &= 0x3;
+ break;
+ case 0x2:
+ trap_setup_path_to_box (middle_right_box);
+ getsamples_data.samples &= 0x1;
+ break;
+ case 0x1:
+ trap_setup_path_to_box (out_right_box);
+ getsamples_data.samples = 0x0;
+ break;
+ default:
+ trap_setup_path_to_box (garbage);
+ }
+}