Visual DCT for IRMIS and pvData (Version 3) - PowerPoint PPT Presentation

About This Presentation
Title:

Visual DCT for IRMIS and pvData (Version 3)

Description:

Title: Cosylab The Leading Commercial Provider of Accelerator and Beamline Control Systems Author: Matija Lipar Last modified by: Rok Sabjan Created Date – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 25
Provided by: Mati62
Learn more at: https://epics.anl.gov
Category:

less

Transcript and Presenter's Notes

Title: Visual DCT for IRMIS and pvData (Version 3)


1
Visual 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
2
VDCT a complete rewrite
  • Motivation and Goals
  • Architecture
  • Technology Choices
  • Current Status

3
Motivation
  • Dramatic changes in EPICS
  • More options for persistence (IRMIS)
  • Different data model (pvData)

4
Nobody 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
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)?

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
12
Status of VDCT3 EPICS 4 Model
13
EPICS 4 Hierarchical View
14
Status 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

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/
19
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

Model
Node
Pin
Pin
Edge
Node
Pin
Pin
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
    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

25
Big 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

26
VisualDCT Today
  • visual configuration tool for EPICS
  • written in Java (platform independent)
  • open source product
  • designed for EPICS version 3
  • simple electronic drawing style application

27
Existing 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)
Write a Comment
User Comments (0)
About PowerShow.com