Abstract:
A method and apparatus for displaying information on a device acquiring data is provided. The method includes the steps of receiving an input data, generating a version of the received input data to be displayed in accordance with one or more display parameters and displaying the generated version of the received input data. A requested change in one or more display parameters is received and the requested change of the one or more display parameters is implemented on the displayed data. Processing continues on the further received input data in accordance with the requested change in the one or more display parameters and the display is ultimately updated with the processed further received input data.

Description:
BACKGROUND OF THE INVENTION 
     In a digital oscilloscope, a waveform trace is a fundamental software object that provides the user with a representative view of an acquired waveform data. Vertical and horizontal scale and offset controls affect the definition of the grid on which the waveform trace is displayed. The vertical (y) and horizontal (x) extents of the grid may be expressed as the waveform frame (in vertical and horizontal units of the waveform, e.g. Volts and Seconds) or in terms of display units (e.g. pixels). 
     In such a digital oscilloscope, a waveform trace renderer has the responsibility to process the waveform data to produce appropriate data, and place this data in a buffer so that the data is properly scaled to the display. This may be necessary because the digital oscilloscope typically acquires many more data points than are displayable on any type of oscilloscope display, or for other reasons. Thus, the data is most often decimated appropriately so that this decimated waveform representation can be displayed. 
     However, the inventor of the present invention has determined that as a user changes these scale and offset controls, it is desirable for the waveform trace to be updated relative to the modified controls to provide feedback for the user, and to display the waveform trace in a form corresponding to the new scale and offset as selected by the user. As waveform data sizes become large and/or as waveform analysis functions become complex (computationally intense), such updating becomes a more time-consuming endeavor. Indeed, it has been determined that it becomes more difficult to update the waveform data and the resulting waveform trace quickly enough in response to such control changes. As a result, this may result in the user having to wait for some period of time between different settings when changing those settings to see what the screen display will look like. This in turn may cause the system to feel sluggish, may result in the user having a more difficult and cumbersome task when moving the controls, and may result in a reduced accuracy of such movements by the user. 
     This result is primarily based upon the need to process a new incoming data stream each time new settings are selected. As is shown in  FIG. 1 , Controls  110  may comprise horizontal and vertical scale and offset controls, or other variable display settings. A waveform data producer  120  produces various waveform data and waveform frame information. This produced information, along with the horizontal and vertical scale and offset controls, is provided to a waveform trace renderer  130 . Trace renderer  130  provides an input trace buffer that is updated based upon the received waveform data, and an output trace buffer for indicating the data that is to be drawn to a display. Employing a dual buffer design, once the information from the output buffer is written to the display and the information to the input buffer is updated, the identity of the input buffer and the output buffer are switched. Then, the information that was updated when acting as the input buffer becomes the output buffer and is written to the display. The prior output buffer is now the input buffer and receives further updated information as above. As is apparent, each time a horizontal and vertical scale and offset control is changed, the processing by the waveform trace renderer must be performed. Based upon the volume of data, or the complexity of the required processing operations, this processing may delay the display of data on the display, as noted above. 
     SUMMARY OF THE INVENTION 
     In accordance with the invention, a method and apparatus are provided for previewing data while allowing for an improved user experience when a data update is desirable. The invention provides a means of updating a waveform trace in order to take into account new scale and offset settings as a function of a previous waveform trace data. Because any waveform trace data size is a function of the display grid size (e.g. 1000 horizontal pixels), this preview update does not take a long time to process. Indeed, even if the source waveform data increases in size and/or the time to compute the source waveform data increases in time, the processing for updating the display to conform to the new scale and offset settings does not increase. 
     Furthermore, in accordance with the invention, by maintaining two waveform trace buffers, it is possible to perform the inventive preview update on the previous trace data concurrently with the “regular” processing of newly acquired incoming data, including any waveform trace update that depends on the full waveform data. This results in a responsive system where the preview waveform trace is displayed quickly in response to user changes to the scale, offset, or other settings that might result in an update of the displayed waveform data. The updated preview display is in turn eventually replaced by the fully accurate waveform trace when the “regular” update completes processing the next incoming acquired data, or waveform data otherwise stored, imported, generated from a simulation or any other source for waveform data. 
     Additionally, in accordance with the invention, through the use of operating system threading priorities, the preview update thread may be assigned a higher priority than the regular (full data) update thread causing it to complete more quickly whenever the user is making scaling or offset changes. If the user isn&#39;t making any changes, then the preview update thread remains idle and has no affect on the regular (full data) update performance. 
     This technique may be applied to any scenario wherein incoming data is being received and displayed, and where any settings might be changed, automatically, or by a user, that would normally result in a reprocessing of a large amount of information, thus slowing down the display of that updated information. 
     Therefore it is an object of the invention to provide a user with an improved method and apparatus for updating displayed information 
     Still other objects and advantages of the invention will in part be obvious and will in part be apparent from the specification and the drawings. 
     The invention accordingly comprises the several steps and the relation of one or more of such steps with respect to each of the others, and the apparatus embodying features of construction, combination(s) of elements and arrangement of parts that are adapted to effect such steps, all as exemplified in the following detailed disclosure, and the scope of the invention will be indicated in the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of the invention, reference is made to the following description and accompanying drawings, in which: 
         FIG. 1  is a flow chart diagram depicting conventional processing of updating display data in a digital oscilloscope; and 
         FIG. 2  is a flowchart diagram depicting processing of updating display data in a digital oscilloscope in accordance with the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The invention will now be described making reference to the drawings. Within a digital oscilloscope there may be a number of different types of waveform traces. The present invention may be applied to most, if not all, of them, with slight implementation variations depending on the specifics of the waveform type. Therefore, the processing in accordance with the invention is not limited to any particular type of waveform. 
     By way of example, and for illustrative purposes only, one waveform trace type may be produced by compacting received and acquired waveform data to a series of min/max vertical lines. Thus, in accordance with such a procedure, for example, if the acquired waveform data size is 1e6 samples and the waveform trace size to be displayed on the display is 1000 horizontal pixels, then each horizontal pixel location will preferably draw a vertical line from the min to max value within those 1000 samples in the waveform data. Thus, at each horizontal pixel, a vertical line will be provided in a display buffer to be shown to the user on a display. 
     Referring next to  FIG. 2 , the more general case of an implementation of the present invention will be described. As is shown in  FIG. 2 , at step  210 , a determination is made whether to call a preview update or a regular update. Regular update is the process utilized when updating the display under normal operating conditions, i.e. when new data is being acquired, and the display is being updated to reflect this new data. When such regular update is selected at step  220 , at step  230  the attributes of the data, and the data and frame are obtained from a waveform data producer. This information is further processed to generate display data that is stored to the waveform renderer input trace buffer. Thereafter, at step  240 , the waveform renderer swaps the input and output trace buffers and a display manager requests an update of drawing the new information from the output trace buffer to the display. At step  250  the waveform renderer draws information to the display from the output trace buffer which has preview frame equal to the data frame, so that no rescaling or offset is necessary in the drawing operation 
     However, each time this processing takes place, a substantial time delay may be involved for processing of the new data. As noted above, when a redrawing of the display is to take place upon changing one or more of the user-selected display parameters, this processing may result in sluggish performance of the apparatus. Therefore, in accordance with the invention, as is further shown in  FIG. 2 , if it is determined at step  210  that a preview update processing in response to a change is just such a display parameter, rather than implementing the processing noted above with respect to steps  220 - 250 , processing will instead pass to a preview update procedure at step  260 . At step  270 , frame information is provided from the waveform data producer that is indicative of the user-selected parameters. No version of acquired data is provided. This information is stored to the waveform renderer output trace buffer preview frame. Then at step  280 , the display manager requests an update of drawing the output trace buffer to the display. At step  290 , the waveform renderer draws information to the display from the output trace buffer with rescaling and/or offsetting reflecting the differences between the preview frame and the data frame”. 
     Thus, as each change of parameter results in essentially a resealing of the data that is included in a display buffer and is already written to the screen. Thus, even though the changed parameters are desired to apply to further acquisition data, they are applied to the information already displayed on the screen so that the user is able to view what such changes will look like on the display without having to wait for more processing of new data. Thereafter, when the timing requirements are not as critical, more regular processing (steps  220 - 250 ) can take place to provide the new data in accordance with the updated parameters. 
     Application of such processing to the trace including compacted vertical lines, by way of example only will be described. A preview update for this type of trace is implemented so that any vertical scale and/or offset changes are first applied by rescaling and/or offsetting all of the min/max values relative to the original scale and offset, using the displayed data from the display buffer. Horizontal scale and/or offset changes may also be applied by resealing and/or offsetting the bitmap image of the trace as displayed. Thus, it is possible, in accordance with the invention to implement such parameter changes without requiring complete processing of any new data. 
     Thus, the preview feature, as implemented in accordance with the present invention, preferably does not have any direct dependency or implementation based upon on the full waveform data. Such preview processing preferably does not attempt to access the full waveform data, because it may take a long time to update. The full waveform data may be updated after the preview is complete, or concurrently to the processing of the preview update as described in accordance with the invention. 
     Similar preview procedures may also be applied to other types of waveform traces; for example histogram compactions, persistence bitmaps, digital waveforms. These various waveform trace objects may be the produced by acquisition channels for which the horizontal and vertical scale and offset controls may include classic oscilloscope controls such as time per division, trigger delay, voltage per division, offset and the like. They may also be produced by math functions or other analysis and/or processing objects for which the horizontal scale and offset controls may be “zoom” controls. 
     Therefore, the principle of the invention can be expressed as a preview of a processing result in response to some control change can be calculated without requiring the full input processing results (e.g. waveforms). For some cases, these controls may be related to scaling or offset (as in the specific scenarios described previously). However, there may be other cases where the processing transformations are not a function of scaling but rather something else (e.g. FFT dependency on input waveform time per point). In accordance with the invention, a quickly computed preview may be provided as when controls are changed by the user without requiring access to or synchronization with the full processing result that may be concurrently or subsequently computed. 
     It will thus be seen that the objects set forth above, among those made apparent from the preceding description, are efficiently attained and, because certain changes may be made in carrying out the above method and in the construction(s) set forth without departing from the spirit and scope of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense. 
     It is also to be understood that the description is intended to cover all of the generic and specific features of the invention herein described and all statements of the scope of the invention which, as a matter of language, might be said to fall there between.