24
Janez Golob, Jernej Kamenik, Rok Šabjan, Matej Šekoranja rok.sabjan @cosylab.com EPICS Meeting, Aix-en-Provence, 2010-06-02 Visual DCT for IRMIS and pvData (Version 3)

Visual DCT for IRMIS and pvData (Version 3)

  • 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

Page 1: Visual DCT for IRMIS and pvData (Version 3)

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)

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)

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)

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)

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)

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)

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)

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)

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)

10

Status of VDCT3: EPICS 3 Model

Page 11: Visual DCT for IRMIS and pvData (Version 3)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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