summaryrefslogtreecommitdiff
path: root/digital/io/src/getsamples.fsm
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/src/getsamples.fsm')
-rw-r--r--digital/io/src/getsamples.fsm47
1 files changed, 47 insertions, 0 deletions
diff --git a/digital/io/src/getsamples.fsm b/digital/io/src/getsamples.fsm
new file mode 100644
index 00000000..3f7266d0
--- /dev/null
+++ b/digital/io/src/getsamples.fsm
@@ -0,0 +1,47 @@
+#FSM get samples
+get_samples
+
+States:
+ START
+ GO_TO_POSITION
+ PREPARE_ARM
+ FORWARD_CONTROL
+ TAKE_SAMPLES
+ BACKWARD
+ END
+
+Events:
+ ok
+ position_reached
+ position_failed
+ arm_moved
+ sample_took
+ classifier_ready
+
+START:
+ ok -> GO_TO_POSITION
+ Go to the distributor. The distributor to reach shall be setted in the fsm structure.
+
+GO_TO_POSITION:
+ position_reached -> PREPARE_ARM
+ Go to the position desired, it is very near the position of the distributor in case it is a ice distributor or sample distributor.
+ position_failed -> GO_TO_POSITION
+ Go to another point before trying to go to this one again.
+
+PREPARE_ARM:
+ arm_moved -> FORWARD_CONTROL
+ Prepare the arm to the correct position.
+
+FORWARD_CONTROL:
+ position_reached -> TAKE_SAMPLES
+ End the position to the distributor.
+
+TAKE_SAMPLES:
+ sample_took: more -> .
+ Continue to take samples and classify the next sample.
+ sample_took: no_more -> BACKWARD
+ If the quantity of samples are tooked, then go backeward and conitnue classifying the samples.
+
+BACKWARD:
+ position_reached -> END
+ Ending this state machine.