Methods and apparatus for updating and antialiasing waveforms
First Claim
1. A method for operating a monitoring system that displays a waveform representing a time-varying characteristic of a data source, the monitoring system receiving data samples from the data source at a data sample frequency, the monitoring system including a processor and a memory, the processor executing an operating system, the monitoring system further including a display device having a plurality of pixels, the display device displaying the waveform as a fixed wave with an erase bar moving across the display screen to update the waveform, the method comprising the steps of:
- requesting that the operating system service an interrupt after an interrupt time period has lapsed;
storing the received data samples in the memory;
determining a maximum number of stored data samples that will be used to update the waveform at the servicing of the interrupt;
when the requested interrupt is serviced, determining whether the number of stored data samples exceeds the maximum number; and
updating the waveform based on the stored data samples, including the step of;
updating the waveform based on only the maximum number of stored data samples when the number of stored data samples exceeds the maximum number.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for scheduling waveform updates, and for implementing antialiasing techniques compatible with a standard graphics drawing package. Interrupts are requested at regular intervals to update a waveform based on data samples received from a data source. When there is a delay in servicing a requested interrupt, the waveform is updated with a relatively large number of data samples so that the monitoring system does not fall behind the data source. However, a limit is placed on the number of data samples used to update the waveform at the servicing of a single interrupt to ensure that an erase bar that updates the waveform maintains a substantially constant velocity. Additionally, when there is a delay in servicing an interrupt, the next interrupt is requested to occur more quickly. The waveform is broken up into a plurality of wave segments extending between adjacent pixel columns and each wave segment is updated using three calls to a line drawing primitive of the graphics package. Two one-pixel wide lines are drawn in an intermediate antialiasing color, and a one-pixel wide line is drawn in a foreground color.
24 Citations
38 Claims
-
1. A method for operating a monitoring system that displays a waveform representing a time-varying characteristic of a data source, the monitoring system receiving data samples from the data source at a data sample frequency, the monitoring system including a processor and a memory, the processor executing an operating system, the monitoring system further including a display device having a plurality of pixels, the display device displaying the waveform as a fixed wave with an erase bar moving across the display screen to update the waveform, the method comprising the steps of:
-
requesting that the operating system service an interrupt after an interrupt time period has lapsed; storing the received data samples in the memory; determining a maximum number of stored data samples that will be used to update the waveform at the servicing of the interrupt; when the requested interrupt is serviced, determining whether the number of stored data samples exceeds the maximum number; and updating the waveform based on the stored data samples, including the step of; updating the waveform based on only the maximum number of stored data samples when the number of stored data samples exceeds the maximum number. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for scheduling waveform updates in a monitoring system that displays a waveform representing a time-varying characteristic of a data source, the monitoring system receiving data samples from the data source at a data sample frequency, the monitoring system including a processor and a memory, the processor executing an operating system, the monitoring system further including a display device that displays the waveform as a fixed wave with an erase bar moving across the display device to udpate the waveform, the method comprising the steps of:
-
determining an ideal interrupt time period and a corresponding ideal number of data samples, the ideal interrupt time period indicating a time period at which the waveform would ideally be updated to synchronize waveform updates with the data source, the ideal number of data samples indicating the number of data samples that will be received from the data source during the ideal interrupt time period; requesting that the operating system service an interrupt after the expiration of the ideal interrupt time period; storing the received data samples in the memory; when the interrupt is serviced, determining the time at which a next data sample to be updated was received; determining an update time period indicating the amount of time elapsed between the receipt of the next data sample to be updated and the servicing of the interrupt; updating the waveform based on the stored data samples including the step of updating the waveform based on more than the ideal number of data samples when the update time period is two or more times as long as the ideal interrupt time period; determining a difference between the time at which the interrupt was requested to be serviced and the time at which the interrupt was actually serviced, the difference indicating an interrupt lag period; reducing the requested interrupt time period by the lag time period; and returning to the step of requesting that an interrupt be serviced. - View Dependent Claims (16)
-
-
17. A method for operating a monitoring system that displays a waveform representing a time-varying characteristic of a data source, the monitoring system receiving data samples from the data source at a data sample frequency, the monitoring system including a processor, a memory and a timer, the processor executing an operating system, the monitoring system further including a display device having a plurality of pixels, the display device displaying the waveform as a fixed wave with an erase bar moving across the display device to update the waveform, the method comprising the steps of:
-
setting the timer equal to an ideal interrupt time period indicating a time period at which waveform updates would ideally be performed to synchronize the waveform updates with the receipt of the data samples; requesting that the operating system service an interrupt after the expiration of the timer; storing the received data samples in the memory; when the requested interrupt is serviced, updating the waveform based on at least some of the stored data samples; determining a difference between the time at which the interrupt was requested to be serviced and the time at which the interrupt was actually serviced, the difference indicating an interrupt lag time; setting the timer equal to the ideal interrupt time period minus a value based on the interrupt lag time; and returning to the step of requesting that the operating system service an interrupt. - View Dependent Claims (18, 19, 20, 21)
-
-
22. An antialiasing method for drawing a waveform on a display device, the display device having an array of pixels, the array including a plurality of rows and columns, the method including the steps of:
-
selecting background, foreground and intermediate pixel colors; determining a plurality of interconnected wave segments that form the waveform, each wave segment extending between first and second end pixels, the end pixels being located in adjacent pixel columns; drawing one-pixel wide waveform-lines between the first and second end pixels of each wave segment, the waveform lines being drawn in the foreground color, each waveform line having a midpoint wherein the waveform line switches columns from the column including the first end pixel of the waveform line to the column including the second end pixel of the waveform line; and drawing an antialiasing line segment in the intermediate color for at least one waveform line, the antialiasing line segment having the same midpoint as the at least one waveform line and creating a mirror image of the at least one waveform line.
-
-
23. An antialiasing method for controlling a graphics drawing package to draw a waveform on a display device, the display device having an array of pixels, the array including a plurality of rows and columns, the graphics drawing package having a line drawing primitive which draws lines between two selected pixels, the method including the steps of:
-
selecting foreground, background and intermediate pixel colors; determining a plurality of interconnected wave line segments that form the waveform, each wave line segment extending between first and second end pixels, the end pixels being located in adjacent pixel columns, the first end pixel having column and row coordinates indicating a position of the first end pixel on the display device, the second end pixel having column and row coordinates indicating a position of the second end pixel on the display device; and drawing each wave line segment of the waveform, the drawing of each wave line segment including the steps of; calling the line drawing primitive to draw, in the intermediate color, a first line between the first end pixel of the wave line segment and a pixel having a column coordinate equal to the column coordinate of the first end pixel, and a row coordinate equal to the row coordinate of the second end pixel; calling the line drawing primitive to draw, in the intermediate color, a second line between the second end pixel of the wave line segment and a pixel having a column coordinate equal to the column coordinate of the second end pixel, and a row coordinate equal to the row coordinate of the first end pixel; and calling the line drawing primitive to draw, in the foreground color, a third line between the first and second end pixels of the wave line segment. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A monitoring system for displaying a waveform representing a time-varying characteristic of a data source, the monitoring system comprising:
-
a processor executing an operating system;
means for displaying the waveform as a fixed wave with a moving erase bar to update the waveform;means for requesting that the operating system service an interrupt after an interrupt time period has lapsed; means for storing the received data samples;
means for establishing a maximum number of stored data samples that will be used to update the waveform at the servicing of the interrupt;means for determining when the requested interrupt has been serviced; waveform update means for updating the waveform when the requested interrupt has been serviced, the waveform update means including; means for determining whether the number of stored data samples exceeds the maximum number; and means for updating the waveform based on only the maximum number of stored data samples when the number of stored data samples exceeds the maximum number. - View Dependent Claims (29, 30)
-
-
31. A monitoring system for displaying a waveform representing a time-varying characteristic of a data source, the monitoring system comprising:
-
a processor executing an operating system; means for displaying the waveform as a fixed wave with a moving erase bar to udpate the waveform; means for determining an ideal interrupt time period and a corresponding ideal number of data samples, the ideal interrupt time period indicating a time period at which the waveform would ideally be updated to synchronize waveform updates with the data source, the ideal number of data samples indicating the number of data samples that will be received from the data source during the ideal interrupt time period; means for requesting that the operating system service an interrupt after the expiration of the ideal interrupt time period; means for storing the received data samples; means for determining when the interrupt has been serviced; means for determining a difference between the time at which the interrupt was requested to be serviced and the time at which the interrupt was actually serviced, the difference indicating an interrupt lag period; and means for reducing the requested interrupt time period by the lag time period; and waveform update means for updating the waveform when the interrupt has been serviced, the waveform update means including; means for determining the time at which a next data sample to be updated was received; means for determining an update time period indicating the amount of time elapsed between the receipt of the next data sample to be updated and the servicing of the interrupt; and means for updating the waveform based on more than the ideal number of data samples when the update time period is two or more times as long as the ideal interrupt time period.
-
-
32. A monitoring system for displaying a waveform representing a time-varying characteristic of a data source, the monitoring system receiving data samples from the data source at a data source frequency, the monitoring system comprising:
-
a processor executing an operating system; means for displaying the waveform as a fixed wave with a moving erase bar to update the waveform; a timer for storing an interrupt time period; means for setting the timer equal to an ideal interrupt time period indicating a time period at which waveform updates would ideally be performed to synchronize the waveform updates with the receipt of the data samples; means for requesting that the operating system service an interrupt after the expiration of the timer; means for storing the received data samples; means for determining when the requested interrupt has been serviced and when the requested interrupt has been serviced, for updating the waveform based on at least some of the stored data samples; means for determining a difference between the time at which the interrupt was requested to be serviced and the time at which the interrupt was actually serviced, the difference indicating an interrupt lag time; and means for reducing the interrupt time period by a value based on the interrupt lag time.
-
-
33. An apparatus for drawing a waveform on a display device, the display device having an array of pixels, the array including a plurality of rows and columns, the apparatus comprising:
-
means for selecting background, foreground and intermediate pixel colors; means for determining a plurality of interconnected wave segments that form the waveform, each wave segment extending between first and second end pixels, the end pixels being located in adjacent pixel columns; means for drawing one-pixel wide waveform lines between the first and second end pixels of each wave segment, the waveform lines being drawn in the foreground color, each waveform line having a midpoint wherein the waveform line switches columns from the column including the first end pixel of the waveform line to the column including the second end pixel of the waveform line; and means for drawing an antialiasing line segment in the intermediate color for at least one waveform line, the antialiasing line segment having the same midpoint as the at least one waveform line and creating a mirror image of the at least one waveform line.
-
-
34. An apparatus for controlling a graphics drawing package to draw a waveform on a display device, the display device having an array of pixels, the array including a plurality of rows and columns, the graphics drawing package having a line drawing primitive which draws lines between two selected pixels, the method including the steps of:
-
means for selecting foreground, background and intermediate pixel colors; means for determining a plurality of interconnected wave line segments that form the waveform, each wave line segment extending between first and second end pixels, the end pixels being located in adjacent pixel columns, the first end pixel having column and row coordinates indicating a position of the first end pixel on the display device, the second end pixel having column and row coordinates indicating a position of the second end pixel on the display device; and drawing means for drawing each wave line segment of the waveform, the drawing means including; means for calling the line drawing primitive to draw, in the intermediate color, a first line between the first end pixel of the wave line segment and a pixel having a column coordinate equal to the column coordinate of the first end pixel, and a row coordinate equal to the row coordinate of the second end pixel; means for calling the line drawing primitive to draw, in the intermediate color, a second line between the second end pixel of the wave line segment and a pixel having a column coordinate equal to the column coordinate of the second end pixel, and a row coordinate equal to the row coordinate of the first end pixel; and means for calling the line drawing primitive to draw, in the foreground color, a third line between the first and second end pixels of the wave line segment.
-
-
35. An antialiasing method for controlling a graphics drawing package to draw a waveform on a display device, the display device having an array of pixels, the array including a plurality of rows and columns, the graphics drawing package having a line drawing primitive which draws lines between two selected pixels, the method including the steps of:
-
selecting foreground, background and intermediate pixel colors; determining a plurality of interconnected wave line segments that form the waveform, each wave line segment extending between first and second end pixels, the end pixels being located in adjacent pixel columns, the first end pixel having column and row coordinates indicating a position of the first end pixel on the display device, the second end pixel having column and row coordinates indicating a position of the second end pixel on the display device; and drawing each wave line segment of the waveform, the drawing of each wave line segment including the steps of; calling the line drawing primitive to draw, in the intermediate color, a first line between the first and second end pixels of the wave line segment; and calling the line drawing primitive to draw, in the foreground color, a second line between the first and second end pixels of the wave line segment. - View Dependent Claims (36, 37, 38)
-
Specification