Visual DCT for IRMIS and pvData (Version 3)
description
Transcript of Visual DCT for IRMIS and pvData (Version 3)
![Page 1: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/1.jpg)
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)
![Page 2: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/2.jpg)
2
VDCT – a complete rewrite
Motivation and Goals
Architecture
Technology Choices
Current Status
EPICS Collaboration Meeting 2 - 4 June 2010, Aix-en-Provence, France
![Page 3: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/3.jpg)
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
![Page 4: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/4.jpg)
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>
![Page 5: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/5.jpg)
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
![Page 6: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/6.jpg)
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
![Page 7: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/7.jpg)
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.
![Page 8: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/8.jpg)
8
Technology choices
Programming language: Java 1.6.
Drawing tool framework: Netbeans Visual
library (decided after a thorough comparison with Eclipse Graphical
Editing Framework)
![Page 9: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/9.jpg)
9
Footnote: VL vs. GEF
If present, features are marked as
Outstanding support is marked with
![Page 10: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/10.jpg)
10
Status of VDCT3: EPICS 3 Model
![Page 11: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/11.jpg)
11
Spreadsheet Editor for EPICS 3
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
![Page 12: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/12.jpg)
12
Status of VDCT3: EPICS 4 Model
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
![Page 13: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/13.jpg)
13
EPICS 4 Hierarchical View
EPICS Collaboration Meeting2 - 4 June 2010, Aix-en-Provence, France
![Page 14: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/14.jpg)
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
![Page 15: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/15.jpg)
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
![Page 16: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/16.jpg)
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
![Page 17: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/17.jpg)
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
![Page 18: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/18.jpg)
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/
![Page 19: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/19.jpg)
EPICS Collaboration Meeting
2 - 4 June 2010, Aix-en-Provence, France
Page intentionally left blank
![Page 20: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/20.jpg)
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
![Page 21: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/21.jpg)
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
![Page 22: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/22.jpg)
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
![Page 23: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/23.jpg)
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)
![Page 24: Visual DCT for IRMIS and pvData (Version 3)](https://reader036.fdocuments.net/reader036/viewer/2022081515/56814056550346895dabc760/html5/thumbnails/24.jpg)
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