Control System Studio CSS
Überblick Was ist CSS? Motivation Design Applikationen Entwicklungsbeispiel Kollaboration/ Entwicklung Demo
Was ist CSS? CSS ist: ein Framework für Plug-ins zur Entwicklung von Kontrollsystemkomponenten eine eclipse Rich Client Application
Motivation Aktueller Stand der Operator Interfaces (OPI): Viele Anwendungen verschiedenster Art implementiert von verschiedenen Entwicklern mit unterschiedlichem Look & Feel in verschiedenen (Programmier/ GUI) Sprachen nur für spezifische Betriebsysteme nur im Kontext spezifischer Kontrollsystem Typen Datenaustausch ist oft nur als 'String' möglich
Design Ziel: Verbesserung der aktuellen Situation gleiches Look & Feel Information 'on your fingertips' drag 'n' drop von Objekten zwischen CSS Plug-ins Middleware statt spezifische API's: Management Interfaces Name Server (JNDI) Data Access Layer (DAL) Archive Access Layer (AAL) effektive Kollaboration CSS TANGO EPICS TINE
Design Fazit: Java eine Sprache für viele Plattformen eclipse um den RCP Ansatz zu verwenden um der wachsenden Gemeinde von eclipse Entwicklern beizutreten eingebaute Multi Language Unterstützung (localization) gemeinsames Look & Feel
eclipse gestartet 2001 von IBM Open Source Community verbreitet als Java IDE (Integrated Development Environment) praktisch ein Plug-in Manager
eclipse RCP eclipse dient als Open Tools Plattform RCP: org.eclipse.ui und org.eclipse.core.runtime Features: schnelle Entwicklung, Fokus auf Funktionalität neuer Applikationen RCP Komponenten sind Open Source viele wieder verwendbare Komponenten (z.b. Update Manager, Help UI, Cheat Sheets, Intro, etc.) Entwicklung einer offenen Plattform in eigenem Anwendungsbereich möglich: CSS
CSStudio Plug-In Übersicht Applikationen: Display Alarm Diagnostic Tools Configuration Utilities Trends
Applikationen: Display SDS ADL Converter PV Tabelle Garbage Collector
Applikationen: Alarm JMSAlarmLog JMSLogsArchive TreeView
Applikationen: Diagnostic Tools JMS Logs JMS Sender AMS Monitor RMT Control Post Analyser Probe SNL Editor/Debugger Statistic Viewer
Applikationen: Configuration AMS Configurator IO Config Action Request Explorer Directory Viewer Save Value Authorize ID
Applikationen: Utilities Name Space Browser (LDAP) Name Space Search Name Space Browser (TINE) Screenshot System Monitor CA Snooper Record Property Quickstart (Clock, Therapist) 01. Dezember 2008 Martin Feldmann, m.feldmann@gsi.de
Applikationen: Trends Daten Browser
SDS erweitern, Beispiel: Meter Widget Widgets sind auf der MVC Architektur aufgebaut: Model Definiert Eigenschaften, speichert die zugehörigen Werte und verfolgt Wertänderungen. View Die visuelle Repräsentation des Modells. Control Kontrolliert das Zusammenspiel zwischen graphischer Repräsentation und Modell.
Beispiel: MeterModel Modell: ein Modell anlegen: MeterModel extends AbstractWidgetModel - assoziierte Factory erstellen: MeterModelFactory implements IWidgetModelFactory das Widget Modell registrieren (Extension Point org.csstudio.sds.plugin.xml): <extension point="org.csstudio.sds.widgetmodelfactories">... <widgetmodelfactory class="org.csstudio.sds.components.internal.model.metermodelfactory" description="creates a meter control." icon="icons/meter.gif" name="meter" typeid="org.csstudio.sds.components.meter"/> <widgetmodelfactory... </extension>
Beispiel: MeterModel View: Visuelle Elemente implementieren das eclipse core Interface IAdaptable: RefreshableMeterFigure extends org.eclipse.draw2d.shape implements org.eclipse.core.runtime.iadaptable
Beispiel: MeterModel Control: SDS Widget Controller sind spezielle GEF Edit Parts. SDS bietet dazu ein Framework an: MeterEditPart extends org.csstudio.sds.ui.editparts.abstractwidgeteditpart MeterEditPart assoziiert das Modell und den View - Den Edit Part registrieren (Extension Point org.csstudio.sds.ui.plugin.xml): <extension point="org.csstudio.sds.ui.widgeteditparts">... <widgeteditpart class="org.csstudio.sds.components.ui.internal.editparts.metereditpart" typeid="org.csstudio.sds.components.meter"> </widgeteditpart>... </extension> - typeid verbindet die Komponenten des Meters
CSS Entwicklung/ Kollaboration Einzelpersonen: Matthias Claussen, Jan Hatje, Kay Kasemir, Sergei Chevtsov, Emma Shepherd, Basic design, tools (archive viewer ) JSI (Josef Stefan Institut - Slovenien): Studenten in Kollaboration mit Cosylab Basic design, graphic libraries, management tools, login, secure password store Cosylab: Data Access Layer (DAL) C1-WPS (spin-off der Universität Hamburg): Basic design, CSS-Core refactoring, CSS-Wizard, synoptic display studio (SDS) Universität Hamburg: Studentische Diplomarbeiten Authorization in CSS CSS record/ playback DESY: Logging, alarming, database integration, managing CSS
Demos und Links Flash Demos: http://css.desy.de/content/e70/e10/index_eng.html Code Repository: CVS Repository @ DESY Offen für registrierte Benutzer mit DESY Account Mailing List: css-core@desy.de Web Page: http://css.desy.de http://www.cs-studio.org CodeBeamer : Documentation, Tracker, Story Cards: http://elogbook.desy.de:8181