Each experiment has a name and ‘runs on’ a timeline.
A timeline ‘has first’ timeline event and may be ‘is running’ a current timeline event.
A timeline event is one of waveform, data acquisition or program.
A timeline has a duration which is calculated as the sum of the durations of the longest timeline event at the latest offset.
A timeline event ‘has first’ segment which may have a buffer that ‘buffers’ the segment. A segment is either a reading or a writing.
The segments are linked in a sequence (across ‘R17.follows’) to compose the various parts of the waveform or data acquisition into writings or readings respectively. This allows for step, ramp and arbitrary waveforms to be written out and various sample rate readings to be composed.
This model forms the core of a laboratory instrument that needs to apply a stimulating electrical waveform and measure the response.