Title: Visual DCT for IRMIS and pvData (Version 3)
1Visual DCT for IRMIS and pvData(Version 3)
Janez Golob, Jernej Kamenik, Rok Å abjan, Matej
Å ekoranja rok.sabjan_at_cosylab.com EPICS Meeting,
Aix-en-Provence, 2010-06-02
2VDCT a complete rewrite
- Motivation and Goals
- Architecture
- Technology Choices
- Current Status
3Motivation
- Dramatic changes in EPICS
- More options for persistence (IRMIS)
- Different data model (pvData)
4Nobody wants to edit this!
ltstructure structureName "pulseScheduleType"gt
ltscalar name "ID" scalarType "string"/gt
ltscalar name "formatVersion" scalarType
"string"/gt ltscalar name "packageType"
scalarType "string"/gt ltstructure name
"pulseFeature" extends "pulseFeatureType"/gt
ltstructure name "generalParameters" extends
"generalParametersType"/gt ltstructure name
"plantSystemConfigurationParameters"
extends "plantSystemConfigurationParametersType"
/gt lt!-- TODO structure name
"segmentsSequence" extends "segmentsSequenceType
"/--gt lt/structuregt  ltstructure structureName
"pulseFeatureType"gt ltstructure name
"scheduleStatus" extends "pulseScheduleStatusTyp
e"/gt ltstructure name "authors" extends
"signatoryType"/gt lt!-- TODO not an array -
authorsType --gt ltstructure name "approvers"
extends "signatoryType"/gt lt!-- TODO not an
array - approversType --gt ltstructure name
"executionRecords" extends "executionRecordType"
/gt lt/structuregt
5Why re-write?
- 9-year old architecture does not allow big
changes - Spaghetti code to be avoided
- Future extensions or integrations possible
- IRMIS
- CSS?
- SDD (ITER)?
6Goals of VDCT rewrite
- Immediate (visible)
- Visual database configuration tool with full
EPICS v4 compliance (pvData) - Allow for/support other related IRMIS control
system views (cabling, etc..) - Retain if not enhance the existing functionality
of VDCT for EPICS v3. - CapFast styles and symbols
- Behind the stage
- Clean architecture (model and GUI more separated)
- Flexible graphics based on proven technologies
7Modular Architecture
- Engineer drawing style tool
- Spreadsheet editing tool
- Hierarchical Tree view
- Model (EPICS v3, pvData)
- defines editing, selection, structure rules,
Actions - contains Nodes, Edges, Primitives, Properties
- Persistence tool convertis the edited and created
model designs into (and from) well defined
formats (EPICS v3,4, IRMIS) and storing (reading)
them into (from) local files or remote databases. - Finally, the Application framework is responsible
for interfacing the various aspects around the
possibly multiple model designs (or aspects of
one) together into a coherent stand-alone
application.
8Technology choices
- Programming language Java 1.6.
- Drawing tool framework Netbeans Visual library
- (decided after a thorough comparison with Eclipse
Graphical Editing Framework)
9Footnote VL vs. GEF
- If present, features are marked as
- Outstanding support is marked with
10Status of VDCT3 EPICS 3 Model
11Spreadsheet Editor for EPICS 3
12Status of VDCT3 EPICS 4 Model
13EPICS 4 Hierarchical View
14Status of VDCT3 (1/3)
- Editing
- Copy/Cut/Paste
- Mutliple Undo/Redo
- Drag Drop moving of (multiple) nodes
- Property inspector (grouping/editing by type)
- naming convention specification validation
- Keyboard accelerator key shortcuts
- General features
- Drawing view
- Spreadsheet view
- Hieararchy view
- Local configuration support
- Rendering
- Custom widgets per module, customize widget
colors - drawing of graphic primitives
- bird view magnification on cursor
- zoom all, select all
- auto de-cluttering of widgets on canvas
- snap-to-grid
- print canvas
15Status of VDCT3 (2/3)
- pvData support
- I/O
- open file
- import file into existing model
- save/save as file
- Editing
- static includes (edit, inspect)
- new record (by type)
- add/remove/set fields (scalar, structure)
- add/remove links
- view/edit substructures (hierarchy support)
- edit/inspect includes
16Status of VDCT3 (3/3)
- EPICSv3 and IRMIS support
- I/O
- open file
- import file into existing model
- save/save as file
- Rendering
- integration of CapFast epics symbol library
- Editing
- handling of dbd includes
- new record (by type)
- set/unset fields
- add/remove links
- record morphing support
- IRMIS integration
- open single IOC from remote db location
17VDCT3 future?
- Complete VDCT 2.6 feature set
- command-line capabilities
- plugin support
- DB template support still rudimentary
- Complete IRMIS integration
- browse available IOCs
- write modifications to remote PVs
- interface to other IRMIS layers (cabling, etc.)
- Support for editing pvData structure definitions
- Integration into CSS?
- Interface to other configuration data
18Conclusions
- VisualDCT (3.0-beta) is available for download on
sourceforge - Be careful how to start VisualDCT with
appropriate model (see examples) - Use it and send feedback!
- Use cases and best practices are yet to be
defined (pvData) - Thanks to Bob Dalesio and his NSLS2 team!
https//sourceforge.net/projects/visualdct/
19Page intentionally left blank
20Model Design (1/2)
- Model (EPICS v3, pvData)
- defines editing, selection, structure rules,
Actions - contains Nodes, Edges, Primitives, Properties
- Node (Record, Structure)
- contains Pins, Properties
- Pin (Field)
- source/sink of Edges
- contains Properties
- Edge (Link)
- connects Pins
- contains Properties
Model
Node
Pin
Pin
Edge
Node
Pin
Pin
21Model Design (2/2)
- Primitive (text (html), geom. object)
- visual object with Properties
- Property
- container of meta information
- linked by type to editing rules, visual editors
22Visual Design
- ModelScene
- Synchronizes model and visualization
(event-driven) - Pin/NodeWidget
- specifies rendering rules of Node/Pin in Scene
depending on state - Widget Factory
- creates Widgets for Nodes/Pins/Edges
- specifies global rendering rules for Scene
23Application Design
- Module
- specifies Model Widget Factory Persistence
layer - determined by configuration
- 3rd party Module implementations can be
seamlessly interfaced and included into the
application at startup - Model (Structure, Rules, Actions)
- Rendering (Widgets, Connection routing)
- Persistence (Filesystem, Remote, Database)
24Application Design Implementation Details
- Swing GUI support for applets, webstart, custom
LF - Java2D printing
- java.awt.datatransfer system-wide Copy/Paste
- Properties persistence of user configuration and
settings - Action chains unlimited Undo/Redo
- java.util.concurrent model/GUI concurrency
25Big Changes in EPICS DB Design
- Visual database creating and editing tool for
EPICS v4 (pvData) - Support for arbitrary hierarchies in both
templates and primitive types - Capability to interact with IRMIS RDB
- The information on encapsulation, cabling,
housing is contained in a single descriptive
database - Enables linking of various control system aspects
of the same component
26VisualDCT Today
- visual configuration tool for EPICS
- written in Java (platform independent)
- open source product
- designed for EPICS version 3
- simple electronic drawing style application
27Existing Features (VDCT 2.6)
- Hierarchies support
- Templates support
- Debug plugins (JCA/JIOC)
- CapFast conversion tool
- Channel Archiver /Alarm Handler configuration
plugins - Spreadsheet view (for large databases)