UltimaSerial  XChart: A charting control designed for data acquisition applications
Data logger
UltimaSerial

 

Windaq add-ons
Windaq Add-ons

 

Spectrogram
UltimaWaterfall

 

Ultimaserial XChart
XChart

 

FFT1024
FFT1024

 

Ultimaserial Classroom
Lessons

 

If you can't see the video demo above, please click this YouTube link directly

 

XChart is a charting control specifically designed for data acquisition applications. It provides engineers and scientists with a powerful, easy-to-use scroll chart component that can be integrate seamlessly into their applications.

Paid registration of XChart is highly appreciated, which helps us to maintain the website and design more tools.

Until XChart is registered, an ad-line will be displayed in the chart. As a bonus, paid registration users have access to CopyToClipboard method.

Key Features

  • Any combinations, up to 16 waveforms(channels) in a chart
  • Analog oscilloscope-like fading option to show trends
  • Copy image to clipboard
  • Scrolling and sweeping
  • Scaling for all or specific waveforms(s)
  • Vertical Cursor
  • Group or individual waveform offsetting and scaling
  • Drag-and-drop waveform(s)
  • Scaling is only a button-click away
  • User text anywhere on the chart
  • Color legends for each waveform
  • Analog or digital plot
  • Flexible X and Y grid spacing
  • Color selection for each waveform
  • Doubling width for active waveform

Installation

or

  • The package contains FFT1024, XChart and UltimaWaterfall, executable demos and VB samples for the charting utilities. The waveforms are generated artificially, making it a good starting point to incorporate these charting utilities with any user data.
  • Here are the two VBX2008 projects for reference (VB6 examples comes with the installations). For other languages, please check this out

    1. DemoWaterfall1024 in VBX2008

Examples

  • Two VB6 sample programs are included if you install Charting controls for everyone. If you use Visual Basic 2008 Express Edition, please get the source codes from here
    • demo_xchart: demonstrate how to create an user data array to send data to XChart. 
    • demo_waterfall_1024: demonstrate how to create a waveform for FFT1024 and Ultimawaterfall
  • You can also find it being used in  Sound Analyzer package, which uses the microphone on PC to display the spectrogram of audio signal
  • Further more, Windaq Add-ons package's scope demonstrates the use of XChart

Properties and Methods:

 denotes new features comparing to DQChart. For users familiar with DATAQ's DQChart, XChart is like a super set of DQChart. With minimum modification, you can immediately replace DQChart with XChart.

short ActiveChannel: Specify the channel to receive the mouse/button/wheel scaling and offsetting operation if GroupSetting is enabled

Demonstrated in the source codes of Windaq oscilloscope add-on

boolean BaseLineLegend: When set, the color legends for each traces will be placed at the trace's baseline defined in BaseLine[ChannelIndex]. Otherwise, the legends will be displayed according to the channel allocation.

Demonstrated in the source codes of Windaq oscilloscope add-on

short Channel: Index of channel to plot, analog or digital. To plot a digital channel, Channel must be specified, and DigitalMask should be used. For analog channel, you may use ChannelMask to select the channel combination. If this number is -1, all channels (up to 16) will be used for analog charting.

XChart.Channel = -1
XChart.Chart A

This will plot all (up to 16) channels from A

XChart.Channel = 1
XChart.Chart A

This will plot only the second channel from A. The channel property is  now the index to the channels, where the first channel is indexed as 0.

long ChannelMask: To select a analog channel combination to plot. For example ChannelMask=5 plots channel 0 and 2 since the binary format of 5 is 101, thus the first and third channels are enabled. To plot all channels, assign ChannelMask =-1

Demonstrated in the source codes of Windaq oscilloscope add-on

BSTR ChartText: Auxiliary text (up to 32 letters) to be placed in the chart. Its position is defined by SetTextPos(x,y)

Demonstrated in the source codes of Windaq oscilloscope add-on

To remove the ad-line , please register Ultimaserial package

Copy2Clipboard: Copy the current image to the clipboard. This method is offered as a bonus to users with paid registration

boolean DigitalMask: To select a digital bit for plotting when Channel specifies a channel, i.e. Channel >=0

XChart.Channel=1
XChart.DigitalMask=2
XChart.Chart A
        
This will plot bit 1 of the second channel. 

short GridSpacingX: number of pixels between gridlines in X axis (default is 20). 

Starting June 26, 2007, negative number will be treated as 100th pixel. For example, -2320 will be 23.20 pixels. -1423 will be 14.23 pixels.

short GridSpacingY: number of pixels between gridlines in X axis (default is 20)

Starting June 26, 2007, negative number will be treated as 100th pixel. For example, -2320 will be 23.20 pixels. -1423 will be 14.23 pixels.

boolean GroupSetting: When set, the mouse/button scaling and offsetting operation will be applied to all the traces in the chart. Otherwise, only the ActiveChannel will be affected.

Demonstrated in the source codes of Windaq oscilloscope add-on

boolean Lock: When set, mouse scaling and offsetting operation will be disabled. Instead, the mouse position will be reported in CrossHair(offset) event when left button is pressed, and a vertical cursor will be displayed

Demonstrated in the source codes of Windaq oscilloscope add-on

OLE_COLOR PEraseBar: Defines the color palette for the erase bar

OLE_COLOR PGrid: Defines the color palette for the gridlines

OLE_COLOR PText: Defines the color palette for the auxiliary text

To change this property, you need to register Ultimaserial package

boolean ScrollMode: When set, left-moving scroll mode is enabled, otherwise, erase/scope mode is enabled

Demonstrated in the source codes of Windaq oscilloscope add-on

boolean ShowEraseBar: When set, the erase bar will be displayed in erase/scope mode.

boolean ShowLegend: When set, the color legends for each enabled channel will be displayed

Demonstrated in the source codes of Windaq oscilloscope add-on

boolean SolidBaseLine: When set, the horizontal gridline in the center of the chart will be a solid one

Demonstrated in the source codes of Windaq oscilloscope add-on

short Step: Number of data points to skip, if this number is a negative number S (minimum -4), each data point will be duplicated S times.

XChart.Step = 2
        
This will compress the waveform  on time-axis by skipping every other points

XChart.Step = -2
        
This will enlarge the waveform  on time-axis by duplicating every points twice

long Xmax: Returns the width of the chart in number of pixels

Demonstrated in the source codes of Windaq oscilloscope add-on

boolean SumWaveforms: When set, the trace in scope mode will NOT be erased when a new one is plotted

Demonstrated in the source codes of Windaq oscilloscope add-on

boolean DoubleActiveTrace: When set, the active trace will be highlighted.

Demonstrated in the source codes of Windaq oscilloscope add-on

short Persist: Persist delay factor when SumWaveforms is set. 0 to be infinity, 255 to be minimum persist delay, older waveforms fade away each time a new waveform is added to the chart, according to this factor (See the top of this page for visual effect). 

Demonstrated in the source codes of Windaq oscilloscope add-on

BSTR Key: XChart displays an ad-line at the end of ChartText unless Ultimaserial package is registered


void Chart(VARIANT Data): Chart the data, the data can be a single integer or array.

Dim vv(3, 100) As Integer

'fill the array with your own waveform

XChart.Chart (vv)

void ChartEx(short* Buffer, short Channel, short Total): Chart the data

void CopyToClipboard(void): Copy the image to clipboard. This method is offered as a bonus to users with paid registration

Demonstrated in the source codes of Windaq oscilloscope add-on

OLE_COLOR PLine(short Idx): Specify or retrieve the color palette of traces

Demonstrated in the source codes of Windaq oscilloscope add-on

void SetTextPos(short X, short Y): Specify the position of the auxiliary text, in terms of pixels, where X=0 and Y= 0 denote the Upper-Left corner< /FONT>

Demonstrated in the source codes of Windaq oscilloscope add-on

To change this property, you need to register Ultimaserial package

long Ymax(short Idx): Specify or retrieve the maximum of a trace in relative to the chart

Change the Ymax and Ymin properties of XChart by the same steps, say 100 
XChart.Ymax(0) = DQChart.Ymax(0) - 100
XChart.Ymin(0) = DQChart.Ymin(0) - 100
        
Watch: The screen will be cleared before the new waveform comes in when you do that

long Ymin(short Idx): Specify or retrieve the minimum of a trace in relative to the chart 

Demonstrated in the source codes of Windaq oscilloscope add-on

long BaseLine(short Idx): Specify the baseline for a trace

Demonstrated in the source codes of Windaq oscilloscope add-on

void AuxCrossHair(short X, short Y): Add an auxiliary cross hair to the chart if X or Y are positive numbers. Note, the auxiliary cross hair will only update when a new waveform plots

Demonstrated in the source codes of Windaq oscilloscope add-on

Event

ChartChanged(long Min, long Max): The scaling is changed for the active channel (ungrouped), or all channels ( grouped)  due to mouse/button scaling and button operation

Demonstrated in the source codes of Windaq oscilloscope add-on

CrossHair(long Offset): Report the mouse button position in X axis when Lock is set

Demonstrated in the source codes of Windaq oscilloscope add-on

Mouse/Button scaling/offsetting operation

When XChart.Lock = FALSE, You can use your mouse to the waveform up & down. When you push down the left button, you will see the shifting level indicator on the chart. 

To change the scale of the waveform, double-click the Left/Right mouse button to increase/decrease the amplitude of the waveform(s). 

You can  also use the mouse wheel to change the gain. To do so, click on the chart once so that the chart will get the focus, becoming the active component on your form, roll the wheel forward to increase the scale (zoom in), roll the wheel backward to decrease the scale (zoom out)

ChartChanged event will be fired when the scale or offset changes

 

Paid registration of XChart is highly appreciated, which helps us to maintain the website and design more tools.

Until XChart is registered, an ad-line will be displayed in the chart. 

User Testimonial:

" I have enclosed the registration fee for UltimaSerial. You were so helpful even before I decided to register the program that I felt I should reward you for your efforts. I have made the check out in the sum of $25.00. Thanks for a nice program."

--  L.E.M.

 Last update: 05/27/10

Copyright: 2000-2005  www.UltimaSerial.com