Using the OSL Clock#
The OpenSourceLeg
class contains a clock
object that can be used to control the execution of infinite loops.
The clock
is an iterable object that returns a new value (the time since instantiation in seconds) at a specified rate.
Using osl.clock
in a for
loop will create an infinite loop that executes at a fixed frequency. That is,
for t in osl.clock:
# this code will execute repeatedly at a fixed rate
Note
The frequency that osl.clock
updates at is the same as the frequency selected when instantiating the OpenSourceLeg
object.
The clock will continue ticking until one of three conditions are met:
You call
osl.clock.stop()
An exception occurs
You press ctrl+c on the keyboard.
We normally use option 3 to end our scripts, allowing the ctrl+c keyboard combination to basically act as a stop button. In general, we suggest using the following overall structure for your code:
# Imports
# Configuration/Initialization Code
osl = OpenSourceLeg(frequency=loop_frequency)
with osl:
osl.home()
for t in osl.clock:
# Main loop code
osl.update()
# Cleanup code