220 likes | 232 Views
Overcome limitations of current control system GUI tools with Eclipse-based Control System Studio, offering modern GUI features, plugin mechanisms, extensive APIs, and customization options. Explore sample applications, integration guidelines, and deployment choices.
E N D
Applications Kay KasemirORNL/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 nativeGTK/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 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 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"
Synoptic Display • EDM/MEDM-type display tool for multiple protocols • In early stages of usability, promisingideas • Everythingis dynamic • "Text Update"widget= Label with dynamic text
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, portableapplication 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, …