Global Timers
A global timer ends an infinite loop when 5 seconds have passed.
from bpod_core.fsm import StateMachine
fsm = StateMachine()
fsm.set_global_timer(
index=0,
duration=5,
)
fsm.add_state(
name='StartGlobalTimer',
timer=0.25,
transitions={'Tup': 'Port1Light'},
actions={'GlobalTimerTrig': 0},
)
fsm.add_state(
name='Port1Light',
timer=0.25,
transitions={
'Tup': 'Port3Light',
'GlobalTimer0_End': '>exit',
},
actions={'PWM1': 255},
)
fsm.add_state(
name='Port3Light',
timer=0.25,
transitions={
'Tup': 'Port1Light',
'GlobalTimer0_End': '>exit',
},
actions={'PWM3': 255},
)
{
"states": {
"StartGlobalTimer": {
"timer": 0.25,
"transitions": {
"Tup": "Port1Light"
},
"actions": {
"GlobalTimerTrig": 0
}
},
"Port1Light": {
"timer": 0.25,
"transitions": {
"Tup": "Port3Light",
"GlobalTimer0_End": ">exit"
},
"actions": {
"PWM1": 255
}
},
"Port3Light": {
"timer": 0.25,
"transitions": {
"Tup": "Port1Light",
"GlobalTimer0_End": ">exit"
},
"actions": {
"PWM3": 255
}
}
},
"global_timers": {
"0": {
"duration": 5.0
}
}
}
states:
StartGlobalTimer:
timer: 0.25
transitions:
Tup: Port1Light
actions:
GlobalTimerTrig: 0
Port1Light:
timer: 0.25
transitions:
Tup: Port3Light
GlobalTimer0_End: '>exit'
actions:
PWM1: 255
Port3Light:
timer: 0.25
transitions:
Tup: Port1Light
GlobalTimer0_End: '>exit'
actions:
PWM3: 255
global_timers:
0:
duration: 5.0