/programming/general/control-methodology/a-function-pointer-based-state-machine/
https://blog.mbedded.ninja/programming/design/state-machines/a-function-pointer-based-state-machine/