StateMachine TimerTest { var int timerID var string fatalErrorMessage="" var bool isTimerID_OK initial state configState { entry { do log("configState Entry") set timerID=0 set isTimerID_OK=Timer.arm(timerID, 4.0) // do trigger() } transition if (isTimerID_OK == false) then { do log("Unable to create a valid timerID in the firstState") } select fatalErrorState transition Timer.timeout(timerID) select nextState } state nextState { entry { do log("nextState Entry") // set timerID=10 set isTimerID_OK=Timer.arm(timerID,20.0) // set timerID=11 // do trigger() } transition if (isTimerID_OK == false) then { do log("Unable to create a valid timerID in the nextState") } select fatalErrorState transition Timer.timeout(timerID) { do log("Leaving nextState") } select finalState } state fatalErrorState { entry { do log("fatalErrorState Entry") do trigger() } transition select finalState } final state finalState { } } RootMachine TimerTest TimerTest