The Module 'Scope' is designed for implementing oscilloscopes by creating Device Classes.
Device Class development
An oscilloscope has many parameters that are needed before a certain configuration is reproduced. Sometimes it is easier to change parameters directly at the device. To not overwrite certain parameters when starting a measurment, we recommend to add "As is" to each ComboBox. In that case, the Device Class should not send any command to the oscilloscope.
A ComboBox to provide possible trigger sources such as the channels of the oscilloscope or an external trigger in port
A ComboBox to provide the trigger coupling that defines which mode is used to get triggered, e.g. it can be 'AC', 'DC', or high frequency ('HF').
A ComboBox to provide the trigger slope, e.g. a rising flank, a falling flank or both
A LineEdit to provide the trigger level at which the signal is recognized and the time is zeroed.
A LineEdit to provide the trigger hysteresis (i.e. a voltage) around the trigger level within the trigger is not initiated again.
A LineEdit to provide the trigger delay time in seconds.
A LineEdit to provide the trigger timeout in seconds. If the oscilloscope is triggered externally, the timeout must be larger than the time it needs to send the trigger. In case an oscilloscope receives no trigger, the Device Class should stop the instrument from waiting for a trigger and stop the measurement.
A ComboBox to provide how acquisition is done. Typically, the acquisition is done 'Continuous'. However, if the data related to a single trigger event needs to be measured, one should provide a mode like 'Single'.
A ComboBox to provide typical values that can be used for averaging, e.g. 1, 2, 4, 8 ...
A Line Edit to provide the numbers of sample per second.
A ComboBox to provide different modes that can be used to define the time span that is used for collecting the data.
A LineEdit to get the number that is specifying the time range. For example, if TimeRange is 'Time range [s]' one can insert the time span of the captured signal. If the TimeRange is 'Time scale [s/div]' one has to insert the time span of a single division.
A LineEdit to get the offset time in seconds to shift x-axis horizontally.
A ComboBox to select in which way the value of Channel<i>_Range is given, e.g. "Voltage range in V" or "Voltage range V/div".
A CheckBox for each channel <i> that tells you whether the channel should be used or not.
The name that the user gave to channel <i>. Please use it do define self.variables accordingly.
The voltage range of channel <i>.
The voltage offset of channel <i>.
The impedance value of channel <i>.
The coupling of channel <i>. Please use Channel<i>_Coupling for version >= 1.5.4.x
The coupling of channel <i>, e.g. 'AC' or 'DC'
The probe of channel <i>. If not automatically detected one might have to provide options like '1:1' or '10:1'