The jar library CompositeWaveDisplay.jar contains a set of Java classes providing support for Web-based data visualization. The same classes are also used by a native library (JavaMds) to provide a callable interface to data visualization. It is therefore possible to integrate waveform display in user-written applications.
I Using CompositeWaveDisplay as an Applet Currently the applet provided in CompositeWaveDisplay.jar supports visualization for signals in Jet, TWU and every experiment using MdsPlus.The applet activation requires the installation of the JVM-plug-in in the browser. An easy way to create the HTML code is to use the HTML converter, as follows:
Create an HTML page using the <APPLET> tag:
<APPLET CODE = "CompositeWaveDisplay.class" ARCHIVE = "CompositeWaveDisplay.jar" WIDTH = "700" HEIGHT = "500" NAME = "CompositeWaveDisplay" ALIGN = "baseline">
the applet can be configured by means of the following parameters:
AUTENTICATION: the password required for accessing signals
SIGNAL_1, .. SIGNAL_N: the list of signals to be displayed. Each signals definition is composed of the following parts defining the location of the signal data and the position of the corresponding plot panel in the (multipanel) applet window:
url = signal source definition
mds|rda|twu://server_address/experiment/shot/signal_path
row = row position of the panel in which plot the signal
col = column position of the panel in which plot the signal
color = signal color in exadecimal format 0xRRGGBB
name = signal name (which will be displayed in the legend)
marker = signal marker (0 = none, 1 = square, 2=circle, 3=cross, 4=triangle, 5=point)
for example:
<PARAM NAME = "SIGNAL_1" VALUE = " url = mds://150.178.3.80/a/14000/\emra_it row = 1 col = 1 color = 0xaf0000">
<PARAM NAME = "SIGNAL_2" VALUE = " url = mds://150.178.3.80/a/14001/\emra_it row = 2 col = 1 color = 0xaf0000">
Download the HTML converter from http://java.sun.com/products/plugin/1.3/docs/html_converter.html
After the conversion, the resulting HTML definition can be used both in Netscape and Iexplore.
If there are security applet problems , the policytool program of the JRE distribution can be used to trust the signal server data source.
II Using CompositeWaveDisplay from a C/C++ program
The shared library JavaMds (part of the MdsPlus distribution) provides a set of routines for initializing the Java Virtual Machine from a native application, creating windows and plotting signals:
void createWindow(char *name, int idx)
void clearWindow(char *name, int idx)
void showWindow(int obj_idx, int x, int y, int width, int height)
void addSignalWithParam(int idx, float *x, float *y, int
num_points,int row,
int column,char *colour, char *name, int inter, int marker)
//Same as addSignal, plus the following parameters:
//inter : if not zero a line is draw between points
//marker : draw a marker in each point (0 = none, 1 = square, 2=circle, 3=cross,
4=triangle, 5=point)
An example
The following fragment of code displays a sinusoidal function:
float y[100];
float x[100];
int n_points = 100;
int i;
//Create the window with identifier 0
createWindow("Test", 0);
// initialize x y vectors to the signal value to plot
for(i = 0; i < 100: i++)
{
x[i] = i * 3.14/100;
y[i] = sin(x[i]);
}
//add the signal to waveform panel (1,1) using black color and
//"sine" legend name
addSignal(0, x, y, n_points, 1, 1, "black", "test");
//Show the window
showWindow(0, 50,50, 500, 500);
III Using CompositeWaveDisplay from TDI
A set of TDI function has been created to display waveforms by means of TDI calls. The TDI functions have the same meaning of the above C routine:
FUN PUBLIC JavaNewWindow(in _label, in _idx)
creates a new window
FUN PUBLIC JavaClearWindow(in _label, in _idx)
Clears the window
FUN PUBLIC JavaAddSignal(in _idx, in _y, optional _opt_x, optional
_opt_row, optional _opt_col,
optional _opt_color, optional _opt_label)
Adds a new signal to the window
FUN PUBLIC JavaShowWindow(in _idx, in _x, in _y, in _width, in _height)
Displays the window