Description: Description: Description: Description: Description: N:\groupadm\WWW\web2cToolkit\underConstruction.png   How-to-Use the Web2c Toolkit   Description: Description: Description: Description: Description: N:\groupadm\WWW\web2cToolkit\underConstruction.png

 

Author: R. Bacher, DESY/MCS                                                            

Last Update: December, 12th,  2011

Version: 6.0.x

Table of Contents:

Overview

Tools

Web2c Synoptic Display

 

Synoptic Display Component Reference

AnimatedImage

Button

Chat

EmbeddedPage

Histo

Image

Indicator

IndicatorList

Input

Label

LabelList

Page

Section

Slider

Text

TextList

Ticker

Time

Trend

Value

ValueList

Video

WheelSwitch

 

 

Synoptic Display Attribute Reference

alarmThreshold

alignment

backgroundColor

blinking

blinkingEnabled

border

borderColor

bounds

caption

color

condition

debug

exclusive

expert

expertComponent

extensionManifest

falseIcon

fontSize

fontThickness

format

fieldLength

function

headerBackgroundColor

headerCaption

headerColor

highColor

highIcon

id

image

ipAddress

keepHistory

legend

lowColor

lowIcon

maximum

message

minimum

minLimit

offset

plotAxis

plotColor

plotOrder

plotType

prompt

reconnect

scale

scrollBar

sound

soundEnabled

superComponent

supervisor

timeInterval

tooltipText

trueIcon

trueValue

uri

xLabel

xMax

xMin

 yMax

yMin



Synoptic Display Initialization File Specification

Synoptic Display Component Extension Interface

 

Web2c Archive Viewer

Archive Viewer Component Reference

ArchiveViewerDataSelector

ArchiveViewerDataPlot

EmbeddedPage

Page

Section

Archive Viewer Attribute Reference

backgroundColor

border

borderColor

bounds

caption

compositeEntry

defaultCompositeEntry

defaultSingleEntry

expert

id

inline

ipAddress

lineType

plotAxis

plotType

singleEntry

tooltipText

uri

visible

yMax

yMin





 Archive Viewer Initialization File Specification

 

Web2c Synoptic Display Editor

 

Web2cMessenger

Messenger Configuration File Specification


Web2cGateway

Gateway HTTP-Post API Reference

Gateway Configuration File Specification


Web2cLogbook


Web2cManager

Server

Build, Deployment and Launching

Logging and Debugging

API documentation

Control System Device and Archive Access

Video Capability

Implementation Status

Client

Browser Compatibility

Page Download


Overview

Description: Description: Description: Description: Description: N:\groupadm\WWW\web2cToolkit\overview.jpg

[back]


Tools

Web2c Synoptic Display

The Web2c Synoptic Display is a configurable, browser-hosted, dynamic and interactive internet application. Each page [jpg] consists of various components listed in a corresponding  configuration file [xml]. The page is updated at a rate as specified in the corresponding page configuration file. Clicking a Value (ValueList) component will display a 120-seconds history of the corresponding read-back value(s). Each page may contain another pages as embedded pages. The sections of the embedded pages must fit fully within the borders (browser window) of the superior page.

All users have to login prior to page download. Access will be granted only to registered and authenticated users. All open page have their own http session running on a web application server and do not interfere. Passive components such as trends or read-back values will be displayed to all users. Buttons, sliders, wheel switches and input fields will be displayed to authorized users (so-called experts and supervisors) only as specified in the corresponding page configuration file. In addition, buttons, sliders, wheel switches and input fields marked as super components will be visible for supervisors only. IP addresses are specified in the corresponding page configuration file the requesting IP address must coincide with one of the listed IP addresses to keep expert or supervisor privileges.

The Web2c Synoptic Display supports video. The image displayed by a video components is updated at the page update rate.

Each page is attached to a unique chat channel which can be collaboratively used by users with expert or supervisor privileges as specified in the corresponding page configuration file.

The pre-defined functionality of most Web2c Synoptic Display components can indiviually be overwritten and extended at run-time by user-defined extension classes (JAVA). The extensions must implement the corresponding Web2c Synoptic Display component extension interface.

Web2c Archive Viewer

The Web2c Archive Viewer is a configurable, browser-hosted, dynamic and interactive internet application. Each archive viewer page [jpg] is configured according to its corresponding configuration file [xml] specifying a set of archive data channels names. Data (maximal 3600 data points within the selected time interval) can be displayed graphically or as  table of comma-separated values. The data plot allows to zoom in by clicking successively the left and right edge of the area of interest.

All users will have full access without passing a specific login procedure.

The archive viewer can be used in two modes. In the manual mode, the user can select the data channels through the data selector form. In the automatic mode, the data selector form is hidden and only the chart with pre-selected data channels and time interval is displayed automatically after page download.

Web2c Synoptic Display Editor

The Web2c Synoptic Display Editor is a browser-hosted, dynamic and interactive internet application [jpg] to create, edit and save synoptic display configuration files. If minimized, the size of the drawing frame is one quarter of the actual size (1230px * 974px), and matches with the actual size, if maximized. A page consists of sections which must be positioned relatively to the left-top corner of the browser window. Each page may contain components which must be positioned relatively to the left-top corner of the corresponding sections. In addition, each page may contain another pages as embedded pages. The sections of the embedded pages must fit fully within the borders (browser window) of the superior page.

The Web2c Synoptic Display Editor has limited WYSIWYG functionality. Indicators, lists of indicators, animated images and static images are displayed as specified in the list of attributes of the corresponding component. Other element types such as buttons, sliders etc. are replaced by generic text labels. A page preview of a loaded synoptic display configuration file can be launched by clicking the "Page Preview" button.

Components already added to the drawing frame can be selected by mouse click. Clicking and dragging  the lower right corner of a selected component resizes the component. The attribute list displays the attribute values of the selected component. Component attribute values can be modified by entering the corresponding text in the right column of the attribute list. Multiple entries (see expert, ipAddress, caption, legend, uri attribute etc.) have to be separated by ";" and entered as a single line. All attribute changes must be confirmed before selecting the next component.

All users have to login prior to page download. Access will be granted only to registered and authenticated users. Synoptic display configuration files can be saved to disk by authorized users (so-called experts) only as specified in the editor page configuration file.

Web2c Messenger

The Web2c Messenger is a servlet process which can send messages to the following interfaces:

Twitter: The messenger configuration file ("messenger.xml") defines the tweets (status) which are published periodically. The file has to be located  in the sub-directory "web2cToolkit/WebContent/userdocs". By default, the twitter service is disabled and must be enabled explicitly in the corresponding twitter profile file ("Web2cTwitterInit.xml") containing the twitter service credentials. The different tweets are sent one after another at intervals of 3 minutes and can be retrieved from the servlet.

SMTP (E-Mail / SMS): The servlet provides a form to write and send a plain text e-mail or SMS message. The SMTP profile file ("Web2cSMTPInit.xml") must contain the SMTP service credentials.

Web2cGateway

The Web2c Gateway is a servlet process which provides a HTTP-POST-based interface (XML- Syntax) to the control systems attached. The gateway configuration file ("gateway.xml") defines among other things which user is accepted as an expert and/or from which network address privileged actions can be performed.The file has to be located  in the sub-directory "web2cToolkit/ WebContent/userdocs".

Implemented functionalities are:

Register: Establishes a single monitor or a list of control system monitors (i.e. periodically updated control system connections).

Update: Updates the read-back value(s) of a single or a list of control system monitors.

Execute: Sends a single write-request or a list of write-requests to the control system.

Guest login: Opens a Web2c gateway session (read-only). Does not require a login procedure.

Expert login: Opens a Web2c gateway session (read and write) with secure user authentication and authorization login procedure. The expert names have to be specified in the gateway.xml file hosted by the web server.

Logout: Closes a Web2c gateway session.

Alive check: Checks the alive-status of the servlet.

Web2cLogbook

The Web2c Logbook is a servlet process which provides an electronic logbook services (plain text only). Each logbook instance is defined by its configuration file located  in the sub-directory "web2cToolkit/WebContent/userdocs". Logbook entries can be forwarded via e-mail to selected recipients. Pre-defined reports can be generated on user's request and saved as a logbook entry. An automatic report creator can be set-up to generate pre-defined reports if the corresponding condition, e.g. change of a controls state, is fulfilled.

Web2cManager

The Web2c Manager is a servlet process which provides an administrative interface for all implemented Web2cToolkit servlets:

[back]


Synoptic Display Component Reference

Component

Description

Applicable Attributes

Remarks

AnimatedImage

toggles between two different images; highIcon is used if read-back value is above alarm threshold, otherwise lowIcon

alarmThreshold, blinking, blinkingEnabled, bounds, expertComponent, extensionManifest, highIcon, id, lowIcon, sound, soundEnabled, tooltipText, uri

 

Button

click button

backgroundColor, blinking, blinkingEnabled, bounds, caption, color, condition, extensionManifest, fontSize, fontThickness, id, image, keepHistory, prompt, superComponent, tooltipText, uri

button actions pointing to a uri of form "http://...." are always visible independent of the user's role

condition: as many entries as wanted

uri: as many entries as required

Chat

chat form

alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, caption, color, expertComponent, fontSize, fontThickness, id, sound, soundEnabled, tooltipText

 

Embedded Page

embedded Web2c Synoptic Display page

bounds, id, uri

 

Histo

plots data arrays versus index

bounds, caption, condition, expertComponent, extensionManifest, fontSize, function, id, legend, plotAxis, plotColor, plotOrder, plotType, tooltipText, uri, xLabel, xMax, xMin

uri: as many entries as data arrays

legend: as many entries as data arrays

condition: as many entries as wanted

yMin / yMax: as many entries as data arrays

Image

static image

bounds, expertComponent, extensionManifest, id, tooltipText, uri

 

Indicator

colored label; toggles between different label colors;  a trueIcon is used if read-back value is equal to the corresponding trueValue, otherwise falseIcon

blinking, blinkingEnabled, border, borderColor, bounds, expertComponent, extensionManifest, falseIcon, id, sound, soundEnabled, tooltipText, trueIcon, trueValue, uri

 

IndicatorList

single-column table of indicators with column header

blinking, blinkingEnabled, border, borderColor, bounds, expertComponent, extensionManifest, falseIcon, headerBackgroundColor, headerCaption, headerColor, id, sound, soundEnabled, tooltipText, trueIcon, trueValue, uri

uri: as many entries as table rows

Input

input field for text or numbers

backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, caption, color, extensionManifest, fieldLength, fontSize, fontThickness, id, superComponent, tooltipText, uri

 

Label

static label

alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, caption, color,  expertComponent, extensionManifest, fontSize, fontThickness, id, tooltipText

 

LabelList

single-column table of labels with column header

alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, caption, color, expertComponent, extensionManifest, fontSize, fontThickness, headerBackgroundColor, headerCaption, headerColor, id, tooltipText

caption: as many entries as table rows

Page

Web2c Synoptic Display page

caption, exclusive, expert, debug, ipAddress, message, timeInterval, reconnect, soundEnabled, supervisor

expert: as many entries as expert names

supervisor: as many entries as supervisor names

ipAddress: as many entries as addresses

Section

page section

backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, id, extensionManifest,

 

Slider

slider to enter a set value

backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, caption, color, extensionManifest, fontSize, fontThickness, id, maximum, minimum, tooltipText, uri

 

Text

read-back text value

Note: Characters with an ASCII scan code less than 0x1f will be replaced by the space character (0x20)

alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, color, condition, expertComponent, extensionManifest, fontSize, fontThickness, id, scrollBar, sound, soundEnabled, superComponent, tooltipText, uri

condition: as many entries as wanted

TextList

single-column table of text values with column header

Note: Characters with an ASCII scan code less than 0x1f will be replaced by the space character (0x20)

alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, color, condition, expertComponent, extensionManifest, fontSize, fontThickness, headerBackgroundColor, headerCaption, headerColor, id, sound, soundEnabled, tooltipText, uri

uri: as many entries as table rows

condition: as many entries as wanted

Ticker

news ticker

backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, color, expertComponent, extensionManifest, fontSize, fontThickness, id, offset, sound, soundEnabled, tooltipText, uri

 

Time

time label

alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, color, fontSize, fontThickness, id, tooltipText

 

Trend

plots data arrays versus time

bounds, caption, condition, expertComponent, extensionManifest, fontSize, function, id, legend, plotAxis, plotColor, plotType, timeInterval, tooltipText, uri

uri: as many entries as data arrays

legend: as many entries as data arrays

condition: as many entries as wanted

yMin / yMax: as many entries as data arrays

Value

read-back number value; toggles between two different caption colors; highColor is used if read-back value is above alarmThreshold, otherwise lowColor

alarmThreshold, alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, expertComponent, extensionManifest, fontSize, fontThickness, format, function, highColor, id, legend, lowColor, minLimit, sound, soundEnabled, tooltipText, uri

 

ValueList

single-column table of number values with column header; toggles between two different caption colors; highColor is used if read-back value is above alarmThreshold, otherwise lowColor

alarmThreshold, alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, expertComponent, extensionManifest, fontSize, fontThickness, format, function, headerBackgroundColor, headerCaption, headerColor, highColor, id, legend, lowColor, minLimit, sound, soundEnabled, tooltipText, uri

uri: as many entries as table rows

legend: as many entries as data arrays

Video

video viewer

alignment, backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, caption, color,  expertComponent, extensionManifest, fontSize, fontThickness, id, tooltipText, uri

 

WheelSwitch

device to enter a set value

backgroundColor, blinking, blinkingEnabled, border, borderColor, bounds, caption, color, extensionManifest, fontSize, fontThickness, id, superComponent, tooltipText, uri

 

[back]


Synoptic Display Attribute Reference

Attribute

Description

Value

Format

alarmThreshold

threshold  value

any number

any number format (e.g. 3, 1.0)

alignment

text alignment mode

left, center, right

text string

backgroundColor

background color value of component

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

blinking

blinking effect, toggles between the specified colors

sound file name

text string:

  • color1-color2
  • color11-color12,color21-color22,color31-color32, .... (for list components, as many entries as list members)

blinkingEnabled

indicates if blinking effect is enabled

yes: enabled

no: disabled

text string

border

border mode

none, thin, thick

text string

borderColor

border color value of component

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

bounds

all components (except Section, EmbeddedPage): position and size of the component, measured relatively to the section the component belongs to

Section: position and size, measured relatively to the page or embedded page the section belongs to

EmbeddedPage: position and size, measured relatively to the page the embedded page belongs to

x-position of left upper corner (px), y-position of left upper corner (px), x-position of right lower corner (px), y-position of right lower corner (px)

Note: x-position of right lower corner > x-position of right upper corner, y-position of right lower corner > y-position of right upper corner

four comma-separated integer numbers (e.g. 23,17,456,645)

caption

text value (Page title, Button caption, Label caption, LabelList captions, Trend title, Histo title)

any text

text string or list of comma-separated text strings (see footnote 1 and footnote 2)

color

color value (Button caption, Label caption, LabelList captions, Ticker label caption, Time label caption)

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

condition

modifies graphical appearance of component if true

applicable for:

Text, TextList, Value, ValueList, Label, LabelList, Section, Button: color, backgroundColor, blinking, blinkingEnabled, fontSize, fontThickness, tooltipText

Histo, Trend: plotColor, tooltipText

string consisting of condition equation and style argument assignments

space-separated text string, e.g.

tine:///DESY2/GlobalsCollector/Keyword/ParticleTypeText()=Positronen color=orange backgroundColor=white

debug

checks control system link availability prior to page load

yes: check is performed, error info is displayed

no: check is not performed, page is displayed, unavailable links are ignored

text string

exclusive

read access is granted to the exclusive users only and not to any user

any text

text string (e.g. name)

expert

expert name

optional: IP address; expert privilege granted only in case address is matching

(see ipAddress)

any text

 

(see ipAddress)

text string[(IP address)] (e.g. name, name(131.169.150.83))

(see ipAddress)

expertComponent

flag indicating whether a specific component is invisible for laymen

yes, no text string
extensionManifest
name of file containing the extension manifest
any text
text string

content of the manifest file:
<extension>
<extensionClass>extensionClassFullName</extensionClass>  (e.g. de.desy.web2cToolkit.web2cExtensionDemo.Web2cExtensionDemo)
<guiComponentType>guiComponentType</guiComponentType> (e.g. Web2cTicker)
<guiDataSize>guiDataSize</guiDataSize> (e.g. 1)
<remoteCommandURI>remoteCommandURI</remoteCommandURI>
<monitorURI>monitorURI</monitorURI>
<receiverURI>receiverURI</receiverURI>
<actionURI>actionURI</actionURI>
</extension>

uri: as many entries whished

falseIcon

image to be displayed if corresponding read-back value is not equal to trueValue

any valid image file name

file_name.mime_type (e.g. redicon.jpg)

fieldLength

input field length

>0: field written is filled up with spaces until length = input field length

0 or blank: field written is not filled up with spaces

decimal number

fontSize

font size

tiny, small, medium, large, extraLarge, huge, extraHuge, gigantic

text string

fontThickness

font thickness

normal, bold

text string

format

display format (Value, ValueList)

any valid format value

0

digit

n

digit, zero shows as absent

.

decimal separator

-

minus sign

E

separates mantissa and exponent in scientific notation.

(e.g. nn0.00, 0.000E00)

function

mathematical function applied to data prior to data update

rms, ave, std, min, max, power, factor, offset, log: Value, ValueList, Histo, Trend

norm, ref: Histo, Trend

Note: the function specified is applied to all data channels listed in ValueList, Histo or Trend

rms([p]): RMS value of a data array, scaled by p (def = 1.0)

ave([p]): average value of a data array, scaled by p (def = 1.0)

min([p]): minimum value of a data array, scaled by p (def = 1.0)

max([p]): maximum value of a data array, scaled by p (def = 1.0)

std([p]): standard deviation value of a data array, scaled by p (def = 1.0)

power([p]): pth power of a value (def = 1.0)

factor([p]): multiplicative factor (def = 1.0)

offset([p]): offset of a value (def = 0.0)

log([p]): log10 of a value, scaled by p (def = 1.0)

norm([p]):  data value normalized (%) to value of channel p (def = 1, first channel), data of channel p set to 100%

ref([p]):  data value minus value of channel p (def = 1, first channel), data of channel p set to 0.0)

text string (e.g. rms(0.001)

headerBackgroundColor

background color (LabelList header, ValueList header, IndicatorList header)

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

headerCaption

text value (LabelList header caption, ValueList header caption, IndicatorList header caption)

any text

text string or list of comma-separated text strings (see footnote 1 and footnote 2)

headerColor

color value (LabelList header caption, ValueList header caption, IndicatorList header caption)

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

highColor

caption color value used if read-back value is above alarmThreshold (Value caption, ValueList captions)

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

highIcon

image to be displayed if corresponding read-back value is above alarm threshold

any valid image file name

file_name.mime_type (e.g. redicon.jpg)

id

page-wide unique component identifier

Note: embedded pages may contain the same component identifiers

any text

text string

image

image to be displayed on button instead of caption text

any valid image file name

file_name.mime_type (e.g. redicon.jpg)

keepHistory

on-line status if a Web2c page requests another Web2c page

true = requesting page will remain continuously updated and logged in

false = requesting page will be cleared and logged out

text string

ipAddress

IP address

blank: layman privilege granted

not blank: expert / supervisor privilege granted only in case address is matching

text string

(e.g. 131.169.150.83, 131.169.150.*, 131.169.*.*, 131.*.*.*; *.*.*.*)

legend

legend for plot trace

any text

text string or list of comma-separated text strings (see footnote 1 and footnote 2)

lowColor

caption color value used if read-back value is below or equal to alarmThreshold (Value caption, ValueList captions)

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

lowIcon

image to be displayed if corresponding read-back value is below alarm threshold

any valid image file name

file_name.mime_type (e.g. redicon.jpg)

maximum

minimal slider value

any number

text string

message

message to be displayed if server update is missing

any text; if blank, no message will be displayed

text string or list of comma-separated text strings (see footnote 1 and footnote 2)

will be suppressed if "reconnect" attribute is set true

minimum

maximal slider value

any number

text string

minLimit

minimal reasonable value limit

any number

text string

offset

time offset in milliseconds

any value (+: later, -: earlier)

text string

plotAxis

single- or multi-axis plot (Histo, Trend)

single, multi

text string

plotColor

list of color values for plot traces (maximal 10 color values)

red, blue, magenta, green, darkRed, yellow, orange, cyan, darkGray, black or user-defined (R_G_B)

color1,color2, ...,color10 (e.g. yellow,red,blue,255_69_0)

plotOrder

index order

normal, invert

text string

plotType

plot mode (area below plot trace is color filled if areaPlot / areaTimePlot)

x-Axis = index: linePlot, areaPlot, barPlot (Histo)

x-Axis = time: lineTimePlot, areaTimePlot, barTimePlot (Histo)

linePlot, areaPlot (Trend)

text string

prompt

format and order of user entries in output window (Chat)

chat: name: user entry, last line = last entry

message: date name: user entry, first line = last entry

text string

reconnect

page status after server start-up

true = automatic page reload after server start-up

false = no automatic page reload after server start-up

text string

scale

horizontal and vertical scaling factors for page size

Note: does not affect border and font size

x-scale value, y-scale value

two comma-separated integer numbers (e.g. 1.234,1.367)

scrollBar

vertical scrollbar (Text)

yes = with scrollbar

no = without scrollbar

text string

sound

sound effect, if supported by operating system

sound file name

text string (e.g. gong.wav)

soundEnabled

indicates if sound effect is enabled

Note: if the page sound effect is disabled, sound is also disabled for all other components

yes: enabled

no: disabled

text string

superComponent

flag indicating whether a specific component is visible only for

read component: experts and supervisors

write component: supervisors

yes, no

text string

supervisor

supervisor name

optional: IP address; supervisor privilege granted only in case address is matching

(see ipAddress)

any text

 

(see ipAddress)

text string[(IP address)]

(e.g. name, name(131.169.150.83))

(see ipAddress)

timeInterval

interval for page update (Page), plot interval (Trend)

any number (seconds)

decimal number (e.g. 2, 3600)

tooltipText

component tooltip text

if blank, control system address description  is displayed if applicable and available

any text

text string or list of comma-separated text strings (see footnote 1 and footnote 2)

trueIcon

list of images; an image is displayed if indicator read-back value is equal to corresponding trueValue

any list of valid image file names

file_name.mime_type (e.g. redicon.jpg), comma separated list

trueValue

list of comparison values

any list of numbers

any number format (e.g. 3, 1.0), comma separated list

uri

file name (EmbeddedPage), web link (Button), control system address string (AnimatedImage, Image, Button, Indicator, IndicatorList, Ticker, Trend, Histo, Value, ValueList) or action message to be processed by servlet (Text, Button)

any valid file name, web link, control system address string, video source address string or action message string

file://file_name.mime_type, e.g.

  • file://embedded.xml

http://url_string, e.g.

  • http://tine.desy.de

control_system_name://control_system_address, e.g.

  • (read) tine:///context/server/device/property([from_index][;to_index])
  • (write) tine:///context/server/device/property([par1])
  • (read) doocs://facility/device/location/property()
  • (write) doocs://facility/device/location/property([par1])
  • (read) tango://host_ip_number/device/attribute()
  • (write) tango://host_ip_number/device/command([par1])
  • (read) epics://host_ip_number/channel_address()
  • (write) epics://host_ip_number/channel_address([par1])

video_streaming_protocol://transmitter address, e.g.

  • rtp://ip_number/port_number
  • tine:///context/server/device/property

local://action_message, e.g.

  • activityCounter, i.e. reads the activity counter (Text)
  • login, i.e. displays login dialog for page currently loaded (Button) to switch from non-privileged to privileged user
  • logout,  i.e. closes the page (Button)
  • superLogout,  i.e. closes the page (Button)
    • Note: button visible for supervisors only
  • switchLanguage, i.e. reloads the page with the next available language_code (Button)
  • replace(new_config_file_name.xml[;language_code]), i.e. replaces the page by the page specified (Button)

xLabel

label for x-axis

any text

text string (see footnote 1)

xMax

maximum value of x-axis displayed, ignored if xMin = xMax

any value, any time-date string

text string (e.g. -24.0, 2009-05-17 15:37:22)

xMin

minimum value of x-axis displayed, ignored if xMin = xMax

any value, any time-date string

text string (e.g. -24.0, 2009-05-17 15:37:22)

yMax

maximum value of y-axis displayed, ignored if yMin = yMax

any value

text string (e.g. 0.0)

yMin

minimum value of y-axis displayed, ignored if yMin = yMax

any value

text string (e.g. 35.8)

Footnote 1: Special characters such as ",",  "[", "]", greek characters or other symbols have to be entered via their corresponding decimal ASCII Code, e.g. for [ write ASCIIC(91).

Footnote 2: To use the multi-language feature, specify a list of text strings representing the text in different languages. Note the order in the list. The first list member corresponds to language code 0 (default: 0).

[back]


Synoptic Display Initialization File Specification

The login page of the Synoptic Display Viewer (and the Archive Viewer) can be customized according to the user’s wishes via the file “web2cInit.xml” read during servlet startup.

 <config>

    <salutation>header_text</salutation>

    <earlyRegistering>configFile1</earlyRegistering>

    <earlyRegistering>....</earlyRegistering>

    <earlyRegistering>configFileN</earlyRegistering>

</config>

The field header_text contains the title displayed by the login page. If the file is missing or no salutation is supplied, the default title “Web2cToolkit: Framework for Web-based Controls Clients” will be displayed.

The field configFile contains the name of the file which is processed at servlet startup for early link registering.

[back]


Synoptic Display Component Extension Interface

The pre-defined functionality of most Web2c Synoptic Display components can indiviually be overwritten and extended at run-time by user-defined named extension classes (JAVA archive file) as specified in the component-specific extension manifest files which have to be located in the sub-directory "web2cToolkit/WebContent/userdocs". The user-defined extension classes (JAVA archive files) have to be located in the sub-directory "web2cToolkit/WebContent/WEB-INF/lib".The extensions manifest files have to be located in the sub-directory "web2cToolkit/WebContent/userdocs". The extension classes have to be located in the sub-directory "web2cToolkit/WebContent/WEB-INF/lib". The extensions must implement the corresponding Web2c Synoptic Display component extension interface (IWeb2cExtension):

Functionalities:

Data formats (in/out):     

Parameters:

Returns:

Methodes to be implemented:
                                                            String[] web2cComponentRemoteCommandURI,
                                                            Object[] web2cComponentData,
                                                            String[] monitorURI,
                                                            String[] monitorData,
                                                            String[] receiverURI,
                                                            ByteArrayOutputStream[] receiverData,
                                                            String[] actionURI,
                                                            String[] actionData)

[back]


Archive Viewer Component Reference

Component

Description

Applicable Attributes

Remarks

ArchiveViewerDataSelector

form to select data channels and time interval; might be hidden

backgroundColor, border, borderColor, bounds, compositeEntry, defaultCompositeEntry, defaultSingleEntry, id, singleEntry, tooltipText, uri, visible

singleEntry: as many entries as items

compositeEntry: as many entries as items

uri: as many entries as data channel addresses

if hidden, a defaultSingleEntry or a defaultCompositeEntry has to be specified

ArchiveViewerDataPlot

chart of selected data

backgroundColor, border, borderColor, bounds, id, inline, lineType, plotAxis, plotType, tooltipText, yMax, yMin

 

EmbeddedPage

embedded Web2c Archive viewer page

bounds, id, uri

bounds: top/left corner position used only

Page

Web2c Archive Viewer page

caption, expert, ipAddress

expert: as many entries as expert names

supervisor: as many entries as supervisor names

ipAddress: as many entries as addresses

Section

page section

backgroundColor, border, borderColor, bounds, id

 

[back]


Archive Viewer Attribute Reference

Attribute

Description

Value

Format

backgroundColor

background color value of component

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

border

border mode

none, thin, thick

text string

borderColor

border color value of component

black, white, aqua, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, yellow

Note: the colors listed in the extended CSS color palette might not be supported by all browsers

text string

bounds

all components (except Section and EmbeddedPage): position and size of the component, measured relatively to the section the component belongs to

Section: position and size, measured relatively to the browser window

EmbeddedPage: position only, measured relatively to the browser window, size is not used

x-position of left upper corner (px), y-position of left upper corner (px), x-position of right lower corner (px), y-position of right lower corner (px)

Note: x-position of right lower corner > x-position of right upper corner, y-position of right lower corner > y-position of right upper corner

four comma separated integer numbers (e.g. 23,17,456,645)

if the selector form is visible, the bounds coordinates have to be specified as following:

  • section: 0,0,1260,830
  • data selector: 0,0,1260,470
  • data plot: 0,470,1260,830

if the selector form is hidden, the bounds coordinates have to be specified as following:

  • section: leave blank
  • data selector: leave blank
  • data plot: 0,0,1260,360

caption

text value (Page title)

any text

text string

compositeEntry

specifies a composite data channel item; consists of a set of single data channel items

any list of single entry descriptions

list of single entry descriptions; comma separated

defaultCompositeEntry

data displayed if selector form is hidden

any composite entry description

text string

defaultSingleEntry

data displayed if selector form is hidden

any single entry description

text string

expert

expert name

any text

text string

id

page-wide unique component identifier

Note: embedded pages may contain the same component identifiers

any text

text string

inline

option to align the archive plots of (multiple) embedded pages:

  • all archive plots have the same left x-offset (left)
  • chart and axis areas of all archive plots have fixed sizes
  • all zoom - buttons are invisible
  • reset - / backward - and forward -button are placed to the right of the archive plots
  • all archive plots are synchronized and display always the same time interval

yes: option enabled

no: option disabled

text string

ipAddress

IP address; requests to set a value are accepted from the address specified only

any text

text string

(e.g. 131.169.150.83, 131.169.150.*, 131.169.*.*, 131.*.*.*; *.*.*.*)

lineType

rendering type of data points

Note: plotType setting "lin" or "log" only

dot: dots

line: line

linedot: line and dots

text string

plotAxis

single- or multi- axis plot

single: common axis for all data traces

multi: individual axis for each data trace as specified by corresponding singleEntry definition

text string

plotType

plot mode

Note: single-axis mode only

lin (linear vertical axis), log (logarithmic vertical axis),

step and logstep (step-like data changes, such as 0 ® 1 ® 0 etc.)

state (Gantt-chart like data, such as on, off, undefined, etc.)

bit (Gantt-chart like data, extracts specific bit from a field of bits)

text string

singleEntry

specifies a single data channel item

description: any text

control system address index: any integer number

plot type specification:

  • lin (linear vertical axis), log (logarithmic vertical axis),
  • step and logstep (step-like data changes, such as 0 ® 1 ® 0 etc.)
  • state (Gantt-chart like data, such as on, off, undefined, etc.)
  • bit (Gantt-chart like data, extracts specific bit from a field of bits)

vertical data minimum value, vertical data maximum value: any number

text string:

description_text,control_system_address_string_index, plot_type_specification,vertical_data_minimum_value, vertical_data_maximum_value

e.g.

  • DESY Beam Current [mA],1,lin,0,2.5
  • ACC2 ,22,bit(12),0,0
  • DORIS Hor.Position Control,4,state,0,0
  • Vacuum Pressure in Gun Section [mbar],1,logstep,1.0E-11,1.0E-7

 

tooltipText

component tooltip text

any text

text string

uri

file name (EmbeddedPage), control system address string (ArchiveViewerDataSelector)

any valid file name or control system address string (preceded by an unique index number)

file name:

file://file_name.mime_type (e.g. file://embedded.xml)

control system address:

index,control_system_name://control_system_address (e.g. 1,tine:///TEST/LxSineGen/SineGen2/Sine()

visible

indicates whether the selector form is visible or hidden; used in case of (multiple) embedded pages

visible, hidden

text string

yMax

maximum value of y-axis displayed, ignored if yMin = yMax

Note: single-axis mode only

any value

text string (e.g. 0.0)

yMin

minimum value of y-axis displayed, ignored if yMin = yMax

Note: single-axis mode only

any value

text string (e.g. 35.8)

[back]


Messenger Configuration File Specification

The Messenger Configuration File ("WebContent/userdocs/messenger.xml") customizes the Web2cMessenger service:

<messenger>

<expert>xyz</expert>
<expert>...</expert>
<supervisor>xyz1</supervisor>
<supervisor>...</supervisor>
<exclusive>xyz</exclusive>
<exclusive>...</exclusive>
<ipAddress>x.x.x.x</ipAddress>
<ipAddress>...</ipAddress>
<uri>uri</uri>
<uri>...</uri>
<service>
        <Twitter>
                <caption>xyz</caption>
                <line>xyz, nn0.00, uri</line>
                <line>...</line>
        </Twitter>
        <Twitter>...</Twitter>
</service>

</messenger>

Field description:

[back]


Gateway HTTP-Post API Reference

Method Description

Input Parameter (param=...)

Remarks

Checks the alive-status of the servlet.

checkAlive

Returns "alive" if the servlet is running.

Opens a Web2c session (read-only). Does not require a login procedure.

loginGuest

Returns a list of session-dependent templates to perform register, update, execute and logout requests.

Requests a MD5 encryption key to encrypt the password for a secure user authentication and authorization expert login procedure. The expert names have to be specified in the Web2cGateway.xml file hosted by the web server.

loginExpert

Returns a MD5 encryption key to be used to encrypt the password and a session-dependent template to perform a login procedure.

Opens a Web2c session (read and write) with secure user authentication and authorization expert login procedure.

<elogin>

<sessionId>sessionId</sessionId>

<username>"username"</username>

<password>"encryptedPassword"</password>

<timeStamp>"timeStamp"</timeStamp>

</elogin>

The sessionId is provided by the server in response to an expert login request.

The user name ("username"), the encrypted password ("encrypted password") and the present time ("timeStampInMillis")  has to be provided by the client.

Returns a list of session-dependent templates to perform register, update, execute and logout requests.

Closes a Web2c session.

<action>

<sessionId>sessionId</sessionId>

<value>logout</value>

<timeStamp>"timeStampInMillis"</timeStamp>

</action>

The sessionId is provided by the server in response to successful guest- or expert-login procedure.

The present time ("timeStampInMillis")  has to be provided by the client.

Establishes a single monitor or a list of control system monitors (i.e. periodically updated control system connections)

<action>

<sessionId>sessionId</sessionId>

<value>

<do>register</do>

<parameter>

<uri>"uri"</uri>

.....

</parameter>

</value>

<timeStamp>"timeStampInMillis"</timeStamp>

</action>

The sessionId is provided by the server in response to successful guest- or expert-login.

A single or a list of control system addresses ("uri") and the present time ("timeStampInMillis")  have to be provided by the client.

Action may be repeated until registering has been successfully performed at the server. Returns a notification while registering.

Updates the read-back value(s) of a single or a list of control system monitors .

<action>

<sessionId>sessionId</sessionId>

<value>

<do>update</do>

<parameter>

<uri>"uri"</uri>

.....

</parameter>

</value>

<timeStamp>"timeStampInMillis"</timeStamp>

</action>

The sessionId is provided by the server in response to successful guest- or expert-login.

A single or a list of control system addresses ("uri") and the present time ("timeStampInMillis")  has to be provided by the client.

Returns the requested read-back values.

Sends a single write-request or a list of write-requests to the control system

<action>

<sessionId>sessionId</sessionId>

<value>

<do>execute</do>

<parameter>

<uri>"uri"</uri>

.....

</parameter>

</value>

<timeStamp>"timeStampInMillis"</timeStamp>

</action>

The sessionId is provided by the server in response to successful guest- or expert-login.

A single or a list of control system addresses ("uri") and the present time ("timeStampInMillis")  has to be provided by the client.

[back]


Gateway Configuration File Specification

The Gateway Configuration File ("WebContent/userdocs/gateway.xml") customizes the Web2cGateway servlet:

<gateway>

<expert>xyz[x.x.x.x]</expert>
<expert>...</expert>
<supervisor>xyz[x.x.x.x]</supervisor>
<supervisor>...</supervisor>
<exclusive>xyz[x.x.x.x]</exclusive>
<exclusive>...</exclusive>
<ipAddress>x.x.x.x</ipAddress>
<ipAddress>...</ipAddress>
<uri>uri</uri>
<uri>...</uri>

</gateway>

Field description:

[back]


Web2cLogbook Configuration File Specification

The Logbook Configuration File ("WebContent/userdocs/myLogbook.xml") customizes the Web2cLogbook "myLogbook".

<logbook>

<caption>xyz</caption>
<periode>xyz</periode>
<expert>
        <name>xyz</name>
        <name>...</name>
</expert>
<supervisor>
        <name>xyz</name>
        <name>...</name>
</supervisor>
<ipAddress>
        <address>x.x.x.x</address>
        <address>...</address>
</ipAddress>
<exclusive>
        <name>xyz</name>
        <name>...</name>
</exclusive>
<category>
        <keyword>xyz</keyword>
        <keyword>...</keyword>
</category>
<importance>
        <level>xyz</level>
        <level>...</level>
</importance>
<recipient>
        <name>xyz@a.b.c</name>
        <name>...</name>
</recipient>
<report>
        <record>
                <caption>xyz</caption>
                <category>xyz</category>
                <importance>xyz</importance>
                <mode>xyz</mode>
                <condition>uri=abc</condition>
                <recipient>
                    <name>xyz</name>
                    <name>...</name>
                </recipient>
                <text>
                    <line>xyz, nn0.00, uri</line>
                    <line>...</line>
                </text>
        </record>
        <record>...</record>
</report>

</logbook>

Field description:

[back]


Server

Build, Deployment and Launching

Besides the standard Java Run-Time Environment (JRE6), building the Web2cToolkit project requires the open and free libraries (higher versions might also work):

jfreechart-1.0.5.jar

jcommon-1.0.16.jar

jdom.jar (version 1.1)

tine.jar (latest version)

acopbeans.jar (latest version)

jdoocs.jar (latest version)

tango2doocs.jar (latest version)

TangORB-7.0.3.jar

ATKCore-4.0.2.jar

jca-2.3.2.jar

caj-1.1.5b.jar

md5.jar

jmf.jar

twitter4j-core-2.1.1.jar

Google Web Toolkit Software Development Kit (latest version) including:

Note: All .jar-files listed above are included in the most recent version of the "web2cToolkit.war" Web archive file.


The Web2cToolkit project includes

a free Java MD5 hash generator written by Karsten Bettray and

a free Javascript MD5 hash generator written by Paul Johnston


The Web2cToolkit is tested with Apache Tomcat 7.0 (and previous versions) running Java Virtual Machine JVM 1.6.0_xx on Linux or Windows. The JVM version which the web server is configured for must coincide with the system's JVM version.

To deploy the Web2cToolkit project,

stop the web server,

if existing, delete the Web archive file "web2cToolkit.war" and the directory ".../...tomcat.../webapps/web2cToolkit" on the web server,

copy the new Web archive file "web2cToolkit.war" to the directory ".../...tomcat.../webapps" of the web server, and

start the web server. The server automatically creates the context directory "web2cToolkit". The sub-directory "web2cToolkit/WebContent/userdocs" contains all user-defined configuration files including "web2cMessengerProfile.xml"


The registry file ("web2cUsers.xml") containing the authentication data of the registered users has to be located in the directory ".../...tomcat.../...../endorsed" of the web server. A sample file ("web2cUsers.xml") can be found in the directory "web2cToolkit/web2cdocs".

An instance of the registry file must exist before the Web2cToolkit is launched. During run-time, it can be edited and saved through the Web2cManager.


The initialization file ("web2cToolkitInit.xml") containing the initialization parameter for Web2cToolkit has to be located in the directory ".../...tomcat.../...../endorsed" of the web server. A sample file ("web2cToolkitInit.xml") can be found in the directory "web2cToolkit/web2cdocs".

The initialization file ("web2cInit.xml") containing the initialization parameter for both the synoptical display viewer servlet has to be located in the directory ".../...tomcat.../...../endorsed" of the web server. A sample file ("web2cInit.xml") can be found in the directory "web2cToolkit/web2cdocs".

The profile file ("web2cTwitterInit.xml") containing the account authentication data for the Twitter service has to to be located in the the directory ".../...tomcat.../....../endorsed" of the web server. A sample file ("web2cTwitter.xml") can be found in the directory "web2cToolkit/web2cdocs".

The profile file ("web2cSMTPnit.xml") containing the account authentication data for the Twitter service has to to be located in the the directory ".../...tomcat.../....../endorsed" of the web server. A sample file ("web2cSMTP.xml") can be found in the directory "web2cToolkit/web2cdocs".

All initialization files can be created, edited and saved through the Web2cManager.


Logging and Debugging

By default, the Web2cToolkit writes logging information about each user session since the restart of the corresponding servlet into the following files on the directory "web2cToolkit/log":

In addtion, the Web2cToolkit writes debugging information into the following files on the directory "web2cToolkit/log":

Write commands to the control system attached are logged into the following files on the directory "web2cToolkit/log":

The Web2cToolkit offers 3 different debugging options:

  1. web communication
  2. control system communication
  3. configuration file parsing

By default, all debug logging options are disabled. They can be individually enabled / disabled by entering the keyword "debugWebCommunicationOn" / "debugWebCommunicationOff", "debugControlSystemCommunicationOn" / "debugControlSystemCommunicationOff" and "debugConfigurationFileParsingOn" / "debugConfigurationFileParsingOff" on the user console, respectively. Each input must be terminated by pressing the "Enter" key.

All servlets provide a status page which is accessible through the Web2cManager.

 

Control System Device and Archive Access

The Web2cToolkit offers generic access to control system devices and control system archives.  The following device and archive access plugs are implemented:

Native interface:

TINE

DOOCS

In both cases, the Web2c control system plugs must be able to browse the corresponding equipment name services.

Client-side gateway interfaces via the DOOCS plug:

TANGO

EPICS

In both cases, device servers are addressed by their corresponding ip_addresses and must not be known to the DOOCS equipment name service.

 

Video Capability

The Web2cToolkit is capable to receive and redirect JPEG video frames. Receivers for the following transmission protocols are implemented:

RTP: For image capturing and transmitting, the JMStudio application of the Java Media Framework can be used. Run the JMRegistry application once after installing a new camera type on your computer. For transmitting, configure the JMStudio application properly by selecting the correct video source, disabling audio capturing, selecting JPEG/RTP encoding and specifying a valid RTP destination address. A RTP address consist of an ip and a port number. It is recommended but not mandatory to use as ip number a valid multicast address which is routed in the network (Note: At DESY use 238.1.1.1). Alternatively, use a peer-to-peer connection between transmitter and receiver (Note: At DESY use 238.1.Third_Byte_of_Transmitter_IP_Number.Fourth_Byte_of_Transmitter_IP_Number). The port number of the transmitter and the receiver must coincide and not interfere with other services on the network. In addition, the so-called time-to-live (TTL) parameter can be specified. It defines the maximum number of routing steps between transmitter and receiver.

 

TINE: The TINE control systems offers integrated video transmission capability. For transmitting, specify the TINE address ( /context/server/device/property) pointing to the requested video transmitter source.

 

 

Implementation Status

 

TINE

DOOCS

TANGO

EPICS

monitoring parameters

implemented

implemented

implemented

implemented

setting parameters

implemented

implemented

implemented

implemented

receiving video streams

implemented

not implemented

not implemented

not implemented

reading data from archive

implemented

implemented

not implemented

not implemented

 

[back]


Client

Browser Compatibility

All client-side tools work properly with the following browser implementations:

Microsoft Internet Explorer ver. 7.0.x.x, 8.0.x.x and 9-beta (Windows) 

Note: In rare cases IE7 might exhibit incompatibilities or generate errors. The following problems have been identified:

Web2cComponent id: IE7 is case-insensitive. It does not distinguish between "id" and "Id".

URL length: The maximum URL length handled by IE7 is limited to 2083 characters. This might affect complex archive plots.

 

Mozilla Firefox  ver. 3.6.x (Windows)

Iceweasel (Mozilla Firefox) ver. 3.0.x (Linux)

Konqueror ver. 3.5.x (Linux)

Epiphany ver. 2.22.x (Linux)

Safari  ver. 4.0.x (Windows, MAC OS X, MAC OS X iPhone)

Opera  ver. 10.x (Windows, Windows Mobile)

Google Chrome 6.0.x.x (Windows, Android)

Other browser implementations might also work but have not been tested.

 

Page Download

To download a client-side Web2cToolkit page, enter the following URL in the browser's address field:

      Note: The parameter "(file)" opens a login dialogue prior to page download, "(open)" grants unprivileged access without user authentication.


To download a page with status information about a servlet, enter the following URL in the browser's address field:



    Login procedure:



[back]