Chapter 5
Main Window

The only fixed UI elements in ngscopeclient are the main menu and toolbar at the top of the window. All remaining space may be filled with waveform plots, properties dialogs, protocol analyzers, and other dockable windows as required for a given experimental setup. This flexibility allows almost the entire screen to be dedicated to waveform views, or more space allocated to controls and protocol decodes.

5.1.1 File

This menu contains commands for saving and loading session files.

5.1.2 View

5.1.3 Add

This menu allows new waveforms views or instrument connections to be created.

5.1.4 Setup

5.1.5 Window

This menu provides access to various utility windows.

5.1.6 Debug

Provides access to various features intended only for developers.

5.1.7 Help

5.2 Toolbar

The toolbar contains buttons and controls for the most frequently used actions.

5.2.1 Capture buttons

The capture button group (Fig. ??) contains five buttons. From left to right these are “arm normal trigger", “arm one-shot trigger", “immediate/forced trigger", “arm auto trigger", and “stop trigger".

Note that the “normal" and “auto" trigger mode still uses one-shot capture internally so that all waveform data can be downloaded before the next trigger event 1, so it is normal to see the scope rapidly switching back and forth between single-shot and stopped mode.

5.2.2 History

The history button (Fig. ??) toggles display of the waveform history view.

5.2.3 Refresh Settings

In order to improve performance, ngscopeclient caches many instrument settings locally rather than constantly querying the instrument for the current timebase, trigger configuration, etc. If settings are changed via the instrument front panel while ngscopeclient is running, ngscopeclient may not be aware of these changes.

The Refresh Settings button (Fig. ??) clears all cached instrument configuration and updates ngscopeclient with the current instrument settings. For most “headless" instruments, such as Pico Technology devices or the ThunderScope, this button has no effect.

5.2.4 Clear Sweeps

The Clear Sweeps button (Fig. ??) clears all persistence waveforms, accumulated eye pattern / waterfall data, and any other data that filter grap blocks persist across multiple waveforms. Waveform data, both history and the currently displayed waveforms, are not deleted.

5.2.5 Fullscreen

The Fullscreen button (Fig. ??) toggles ngscopeclient between normal and full-screen mode.

5.2.6 Intensity slider

The opacity slider (Fig. 5.1) controls the alpha/opacity used to display intensity-graded waveforms. At the leftmost position, waveforms are invisible. At the rightmost position, waveforms are fully opaque with no intensity grading other than that provided by antialiasing (Fig. 5.3). Experiment to find what setting gives the most useful visualization for your data (Fig. 5.2).

PIC

Figure 5.1: Trace opacity slider

PIC

Figure 5.2: Intensity graded waveform

PIC

Figure 5.3: Same waveform with opacity turned up to 100%, losing fine details

5.2.7 Persistence slider

The persistence slider (Fig. 5.4) controls the decay rate for persistence-mode waveform display. At the far-left position (default) there is no persistence, and only the data from the most recent trigger event is visible. At the far right position, waveforms persist forever (until the clear-sweeps button is clicked or the display is scrolled/zoomed).

Persistence is applied to all analog and digital waveforms by default, but can be turned off for any individual waveform by right clicking the channel name in the plot and unchecking the “persistence" menu item. Digital buses and protocol decodes do not support persistence, and will always only show the most recent waveform state.

PIC

Figure 5.4: Waveform persistence slider

PIC

Figure 5.5: Example waveform display with persistence active

1The repeating-trigger mode on almost all benchtop oscilloscopes is not interlocked with data transfer, meaning that attempting to download waveform data when the trigger is active will likely lead to corruption or desynchronization in which the data from one channel is from a later trigger event than a channel downloaded previously. Halting the trigger during waveform transfer avoids this issue, although refresh rate is reduced somewhat.