State machine
Dependencies: HIDScope QEI biquadFilter mbed
Fork of State_machine by
main.cpp@0:1b2c842eca42, 2018-10-22 (annotated)
- Committer:
- CasperK
- Date:
- Mon Oct 22 12:25:04 2018 +0000
- Revision:
- 0:1b2c842eca42
- Child:
- 1:afb820c6fc0d
Empty state machine, apart from killswitch
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CasperK | 0:1b2c842eca42 | 1 | #include "mbed.h" |
CasperK | 0:1b2c842eca42 | 2 | |
CasperK | 0:1b2c842eca42 | 3 | enum State(PositionCalibration, EmgCalibration, Movement, KILL); |
CasperK | 0:1b2c842eca42 | 4 | |
CasperK | 0:1b2c842eca42 | 5 | int main() |
CasperK | 0:1b2c842eca42 | 6 | { |
CasperK | 0:1b2c842eca42 | 7 | State = PositionCalibration; |
CasperK | 0:1b2c842eca42 | 8 | |
CasperK | 0:1b2c842eca42 | 9 | while (true) { |
CasperK | 0:1b2c842eca42 | 10 | switch(States) { |
CasperK | 0:1b2c842eca42 | 11 | case PositionCalibration: |
CasperK | 0:1b2c842eca42 | 12 | if (!KillSwitch) { |
CasperK | 0:1b2c842eca42 | 13 | State = KILL; |
CasperK | 0:1b2c842eca42 | 14 | Break; |
CasperK | 0:1b2c842eca42 | 15 | } |
CasperK | 0:1b2c842eca42 | 16 | |
CasperK | 0:1b2c842eca42 | 17 | Break; |
CasperK | 0:1b2c842eca42 | 18 | |
CasperK | 0:1b2c842eca42 | 19 | case EmgCalibration: |
CasperK | 0:1b2c842eca42 | 20 | if (!KillSwitch) { |
CasperK | 0:1b2c842eca42 | 21 | State = KILL; |
CasperK | 0:1b2c842eca42 | 22 | Break; |
CasperK | 0:1b2c842eca42 | 23 | } |
CasperK | 0:1b2c842eca42 | 24 | |
CasperK | 0:1b2c842eca42 | 25 | Break; |
CasperK | 0:1b2c842eca42 | 26 | |
CasperK | 0:1b2c842eca42 | 27 | case Movement: |
CasperK | 0:1b2c842eca42 | 28 | if (!KillSwitch) { |
CasperK | 0:1b2c842eca42 | 29 | State = KILL; |
CasperK | 0:1b2c842eca42 | 30 | Break; |
CasperK | 0:1b2c842eca42 | 31 | } |
CasperK | 0:1b2c842eca42 | 32 | |
CasperK | 0:1b2c842eca42 | 33 | Break; |
CasperK | 0:1b2c842eca42 | 34 | |
CasperK | 0:1b2c842eca42 | 35 | case KILL: |
CasperK | 0:1b2c842eca42 | 36 | turnoffmotors() //placeholder |
CasperK | 0:1b2c842eca42 | 37 | flashsos() //placeholder |
CasperK | 0:1b2c842eca42 | 38 | if (!KillSwitch){ |
CasperK | 0:1b2c842eca42 | 39 | State = PositionCalibration; |
CasperK | 0:1b2c842eca42 | 40 | } |
CasperK | 0:1b2c842eca42 | 41 | Break; |
CasperK | 0:1b2c842eca42 | 42 | } |
CasperK | 0:1b2c842eca42 | 43 | } |