Engine Program Control
The time-lapse engine operates under the context of a 'program'. The 'program' is considered to be the collection of your current settings, automating certain activities for you on a schedule. The schedule is determined by the camera intervalometer, controlling how often to fire the camera and therefor when to move motors and check keyframes. You may change any settings during program execution, or even begin executing a program without having entered any settings. (The result of this would be to have the program run timer incrementing for you.)
For example, a program may look like this:
- Trigger exposure for 100ms on a 5 second interval
- Delay 75ms after exposure before moving any motors
- Move motor 0 three hundred steps between shots, for a maximum of ten thousand steps
- Move motor 1 two hundred steps between shots, for a maximum of fifty thousand steps, with a linear ramp rate of ten
- Execute action 0 after 100 exposures
Any program setting may be changed during execution, but some changes may have a deliterious impact on your final output video (such as changing a motor's ramp rate during ramp execution).
The concept of executing within a program is important as certain settings may be discarded or changed during execution, for example, keyframes that have been executed are removed to prevent accidental multiple execution of them, and to allow you to continue to add new keyframes in their place. Additionally, the engine keeps many data elements during program execution, including how far motors have moved, where in ramp cycles motors are, how many shots have been taken, etc.
You may, of course, use the engine without ever starting the program, and instead choosing to manually determine when to fire shots and when to move motors.
There are three basic controls for program execution:
The start control is very simple: it starts the current program wherever it left off, or at the beginning if cleared or in a first run. Once a start command is received, the pogram will begin immediately.
The pause control pauses the execution of the current program. The program run timer is stopped until a start command is received, but any outstanding settings or configuration items are retained.
It is important to note that the pause command will not interfere with anything currently being executed, it will wait until the current tasks being performed are completed. For example, if you pause during an exposure, the exposure will continue, any expected camera keyframe will be executed, the current motor move cycle will run, and any associated motor keyframes and time keyframes will execute if pending, and then the program will be paused.
All information regarding the current execution will be retained when restarted from a pause state.
The clear control both stops program execution, and removes most settings such as actions and keyframes, and also resets all information about the running program.
It is not possible to recover from a clear control and resume your program where it left off.
The clear control should be used before sending a new program, even if paused, to make sure that settings that haven't been used in your current program don't remain from a previous program.