Upload
mitch
View
29
Download
4
Embed Size (px)
DESCRIPTION
Visual DCT for IRMIS and pvData (Version 3). Janez Golob, Jernej Kamenik, Rok Šabjan , Matej Šekoranja rok.sabjan @cosylab.com EPICS Meeting, Aix-en-Provence, 2010-06-02. VDCT – a complete rewrite. Motivation and Goals Architecture Technology Choices Current Status. Motivation. - PowerPoint PPT Presentation
Citation preview
Janez Golob, Jernej Kamenik, Rok Šabjan, Matej Š[email protected]
EPICS Meeting, Aix-en-Provence, 2010-06-02
Visual DCT for IRMIS and pvData(Version 3)
2
VDCT – a complete rewrite
Motivation and Goals
Architecture
Technology Choices
Current Status
EPICS Collaboration Meeting 2 - 4 June 2010, Aix-en-Provence, France
3
Motivation
Dramatic changes in EPICS
More options for persistence (IRMIS)
Different data model (pvData)
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
4
Nobody wants to edit this!
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
<structure structureName = "pulseScheduleType"> <scalar name = "ID" scalarType = "string"/> <scalar name = "formatVersion" scalarType = "string"/> <scalar name = "packageType" scalarType = "string"/> <structure name = "pulseFeature" extends = "pulseFeatureType"/> <structure name = "generalParameters" extends = "generalParametersType"/> <structure name = "plantSystemConfigurationParameters" extends = "plantSystemConfigurationParametersType"/> <!-- TODO structure name = "segmentsSequence" extends = "segmentsSequenceType"/--></structure> <structure structureName = "pulseFeatureType"> <structure name = "scheduleStatus" extends = "pulseScheduleStatusType"/> <structure name = "authors" extends = "signatoryType"/> <!-- TODO not an array - authorsType --> <structure name = "approvers" extends = "signatoryType"/> <!-- TODO not an array - approversType --> <structure name = "executionRecords" extends = "executionRecordType"/></structure>
5
Why 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)?
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
6
Goals 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
7
Modular 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.
8
Technology choices
Programming language: Java 1.6.
Drawing tool framework: Netbeans Visual
library (decided after a thorough comparison with Eclipse Graphical
Editing Framework)
9
Footnote: VL vs. GEF
If present, features are marked as
Outstanding support is marked with
10
Status of VDCT3: EPICS 3 Model
11
Spreadsheet Editor for EPICS 3
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
12
Status of VDCT3: EPICS 4 Model
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
13
EPICS 4 Hierarchical View
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
14
Status of VDCT3 (1/3) 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
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
15
Status 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
16
Status 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
17
VDCT3 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
18
Conclusions
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/
EPICS Collaboration Meeting
2 - 4 June 2010, Aix-en-Provence, France
Page intentionally left blank
20
Model 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
ModelModel
NodeNodePPiinn
Pin
NodeNodePPiinn
PinE
dge
21
Model 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
22
Visual 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
23
Application 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)
24
Application Design & Implementation Details
Swing GUI: support for applets, webstart, custom L&F
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