# Presentation: 114852

## Applications

- Kay Kasemir**ORNL/SNS**
**Using Information and pictures from**
**Matthias Clausen, Jan Hatje, and Helge Rickens (DESY)**
**October 2007**

## Purpose

**Overcome limitations of current control system GUI tools.**
**Inconsistent Look and Feel**
**Menus, configuration panels, online help**
**Data exchange = copy/paste of PV name**
**Using different mouse/keyboard gestures**
**Mostly X11/Motif**
**Dwindling support**
**Limited to EPICS**
**Many sites now need multi-protocol support**

## Control System Studio

**Based on Eclipse**
**Modern GUI framework:****Window behavior, menus, preference pages, online help, ...**
**Portable Java code (Win32, Linux, Mac OS)**
**Plugin mechanisms**
**Deployment options**
**Control System Studio adds...**
**Data types for Front-End Computer (FEC),****Process Variable (PV), Live and archived data samples**
**APIs for accessing control system**
**Guidelines for integration into menu, online help, preferences, ...**
***See Software Technology talk: Jan Hatje (DESY), "Control System Studio"***

## Simple 'Probe' Example

**Same Basic function**
**Enter PV name, see values.**
**CSS Version**
**Portable, uses native****GTK/OS-X/MS Windows widgets**
**Localized**
**Window resizes**
**Drop-down list of recently entered PV names**

## CSS/Eclipse Preferences

**CSS apps use the Eclipse preference system**
**No environment variables, nor special setup files for each application**
**GUI**
**Pre-installed defaults, various levels**
**Not just for apps!**
**Also for libs like EPICS Channel Access support**

## CSS/Eclipse Online Help

**Eclipse offers online help system**
**CSS apps encouraged to contribute under one of the CSS categories**

## CSS/Eclipse Version Info

**Previous apps: Inconsistent version info.**
**In Eclipse, everything packaged as "plugin" with version info.**
**Common GUI for viewing installed versions.**

## EPICS 'PV Tree'

**CSS Application plugin for Eclipse that displays EPICS record data flow**
**Inputs of 'calc' record etc.**
**Descending recursively**

## CSS Contributions to Eclipse Context Menus

**Open context menu on PV, FEC, ..., and get list of other CSS apps that handle PVs, FECs, ...**
**Example: Open Probe on a channel name in the PV Tree.**
**Implementation: Eclipse "Object Contributions"**
**No compilation, no configuration when adding new application**
**Can filter on number of selected PVs etc.**

## DESY Namespace Browser,Alarm Tree

**CSS Application plugins for Eclipse that browse DESY LDAP server**

## DESY Message Log Viewer

## DESY Alarm System, Namespaces,...

**DESY Alarm System development would fill another talk.**
**Different sites may have very different namespace environments, and thus need to implement different tools.**
**Remember TCL/TK?**
**Based on CSS, these are automatically integrated with other tools**
**Same look & feel, preferences, online help**
**TCL/TK script could start StripTool, but:****Try to teach StripTool about your script!**

## Data Browser

## Data Browser Features

**Combined "StripTool" and "Archive Viewer"**
**Eclipse Extension points for data sources**
**Live: EPICS**
**Archived: Channel Archiver, DESY AAPI, Archive Record**
**Data merged from multiple sources for same PV**
**Usability**
**Drop data onto...**
**Plot: new axis.**
**Axis: add PV to that axis**
**Change axis assignments, colors, ranges with fewer clicks than in existing EPICS StripTool or Archive Viewer**

## CSS Samples

**Markers indicate source**
**Live Sample?**
**Channel Archiver?**
**Archive Record?**
**Samples have 'quality'**
**Original sample**
**Interpolated Sample**
**Ideally, data server automatically switches from interpolated to original when zoomed in "far enough"**
**   **
**   **

## Multiple Data Browser Instances

## Synoptic Display

**EDM/MEDM-type display tool for multiple protocols**
**In early stages of usability, promising****ideas**
**Everything****is dynamic**
**"Text Update"****widget****= Label with****   dynamic text**

## Synoptic Display Example

## Integration & Deployment Options

**Sites can package and deploy CSS components (and other Eclipse plugins) to suit their needs**
**Provide either ...**
**empty CSS core, then download the desired application plugins **
**or prepackage desired components for your site as one application.**

## CSS Startup Choices

**Startup with login/password for your XMPP server**
**.. or workspace selector**
**.. or other site-specific authentication**

## Customizable Welcome Screen

**Different sites can customize depending on local needs.**

## Conclusion

**Eclipse offers a modern, portable****application framework**
**CSS adds control-system specific APIs and guidelines**
**There are already several useful general-purpose CSS applications**
**You can add site-specific CSS applications**
**All can be packaged as needed, everything is integrated; common look, behavior, data exchange, ...**