Libreria de máquina de estados arduino

Alguien ha trabajado alguna vez con la librería de FSM (Arduino Playground - FiniteStateMachine Library) estoy intentando usarla, pero hay algunas cosas que no sé como se usan. Por ejemplo me gustaría asignar a una variable el estado actual en el que se encuentra el programa, pero no soy capaz, alguien podría ayudarme?

Hola Santiago,
no se si he entendido bien la pregunta, pero el estado actual en el que se encuentra puedes saber por la variable "buttonPresses ". Hacen un switch y el valor que tiene coincide con el estado en el que está 0, 1, 2 o 3.
Otra manera, sería crearte una variable y cambiar su estado cuando entre en los estados.
Por ejemplo (y es muy chorra)

int chorra;

switch (buttonPresses){
case 0: chorra = 0;
ledStateMachine.transitionTo(On); break;
case 1: chorra = 1;
ledStateMachine.transitionTo(Off); break;
.....
}

Pero claro, esta variable tiene el mismo valor q "buttonPresses".
Igual no entendí bien la pregunta, de todas formas, espero que te sirva.
A2

Hola bodhi, eso es en el caso que ponen en el ejemplo, que es bastante sencillo, ya que como indicas, el cambio de estado se hace cuando se pulsa un botón y es secuencial, pero por ejemplo si el cambio de estado se hace cuando un sensor de temperatura llegue a un cierto valor, o con otro tipo de acción que no se tenga controlado, cómo se puede saber?
En la documentación ponen:

State& getCurrentState()

Returns the current state

Que imagino que hace lo que quiere, pero no sé cómo usarla, no sé qué significa que esa variable State tenga el & al final...