Case Study #4 – Digital Scope

A company had us create a prototype digital scope for what was probably an engine test stand (they never told us what it was for). Some of the features included:

Display Features

  • Display multiple xy datasets, with x-values for each dataset expressed in elapsed time (milliseconds), and the y-values expressed as double numeric values.
  • There will be no hard-coded limits for the number of points in each dataset, or the total number of datasets, permitted in the chart. There will be practical space restrictions, as increasing the number of signals creates more y-axes, which requires the use of more room in the chart.
  • Practically, we will be testing the software for a maximum of ten signals of 100,000 points each.
  • Every signal will be displayed using its own y-scale, so that the full scale range of each signal can be overlaid, one on top of another. A unique y-axis, one for each signal’s y-axis scale, will be display to the left of the charts plotting area, each signal’s y-axis offset so as to not overlay. The y-axis color will match the color of the associated signal.
  • There are two options for scaling a signal’s y-axis. The first is to auto-scale for the range of y-values in the signal. This works for signals which vary, i.e. have a non-zero range. The second is manual scaling of the y-axis to known values.
  • A single, elapsed time x-axis, will be displayed, and this will map in the x-values of all of the signals. The format of the x-axis will be elapsed time-based, i.e.12:32:11.123, with a resolution of 1 millisecond.
  • The display will display one or two graphs. Signals can be assigned to either of the two graphs for plotting using the signal setup dialog.

User Interface Features

  • Cross-hair cursor with y-value readout – A cross-hair cursor, which shows when the mouse is in the plotting area of the chart. As the cursor moves, the current elapsed time value for the cursor is updated above it, outside of the plotting area of the chart.
  • Integrated zooming – A mouse button down – drag – release operation in the plot area of the chart will zoom the chart to the new coordinate range. All signals in the chart will be zoomed the same relative amount. You will also be able to retrace previous zoom levels, one level at a time, using a mouse click, keyboard event, or button event. In split screen mode, the bottom graph will track the zooming of the top graph, keeping the signals in sync.
  • Plot selection – Highlight a signal (make the line attribute of the plot thicker) by clicking on it with the mouse.
  • Time interval measurement – Use the mouse to specify the start of a chart signal event, and the end of an event. The software will display summary information for the events in the chart, and calculate the time interval between the two events. The events will remain fixed to their proper locations, regardless of how the chart is scrolled our zoomed. In split screen mode, time interval measurement works in both the upper and low charts.
  • Horizontal and vertical panning – Horizontal and vertical scroll bars will pan the chart left, right, up and down. The scroll bars will always have the same range as the full range of the signal, and the size and position of each scroll bar “thumb” will represent the current zoom level. In split screen mode, one horizontal scrollbar controls scrolling for both upper and lower graphs, always keeping them in sync. Each graph has an independent vertical scrollbar.
  • Color Selection – Click on a y-axis and you will be able to define/change the color of the axis, and the associated signal using a simple color chooser dialog. This can also be done under program control.eature for every event