diff --git a/State-Machines.md b/State-Machines.md new file mode 100644 index 0000000..07b39af --- /dev/null +++ b/State-Machines.md @@ -0,0 +1,25 @@ +# Downlink Core: +![Manta Diagrams](https://user-images.githubusercontent.com/42497969/217994970-ff70a984-68bf-477a-b329-327f81ad9e7f.svg) + +## States: +__IDLE__ +* Nothing is happening +* FIFO isn't being written to or read from. It should be empty. +* Move into `ARM` when the arm command is received. + +__ARM__ +* Pop things into the FIFO. If the FIFO's more than halfway full, pop them out as well. This ensures the buffer remains half full. +* Move into `FILL` when trigger condition is met. + +__FILL__ +* Waiting for the FIFO to fill +* Move to `DOWNLINK` once full. + +__DOWNLINK__ +* Pop things off the FIFO until it's empty. +* Move to `IDLE` once FIFO is empty. + + + +# Uplink Core: +Just two states, `IDLE` and `RUN`. Unless we want it to be reconfigurable, in which case we'll need states for being uninitialized or uploading. But this can be specified in the YAML. \ No newline at end of file