1 / 24

Visual DCT for IRMIS and pvData (Version 3)

A complete rewrite of the Visual DCT tool with full EPICS v4 compliance, allowing for other IRMIS control system views and enhancing existing functionality.

Download Presentation

Visual DCT for IRMIS and pvData (Version 3)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  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 Meeting 2 - 4 June 2010, Aix-en-Provence, France

  4. Nobody wants to edit this! <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> EPICS Collaboration Meeting 2 - 4 June 2010, Aix-en-Provence, France

  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 Meeting 2 - 4 June 2010, Aix-en-Provence, France

  6. Goals of VDCT rewrite • Immediate (visible) • Visualdatabase configuration tool with full EPICS v4 compliance (pvData) • Allowfor/support other related IRMIS control system views (cabling, etc..) • Retainif not enhance the existing functionality of VDCT for EPICS v3. • CapFaststyles 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 Meeting 2 - 4 June 2010, Aix-en-Provence, France

  12. Status of VDCT3: EPICS 4 Model EPICS Collaboration Meeting 2 - 4 June 2010, Aix-en-Provence, France

  13. EPICS 4 Hierarchical View EPICS Collaboration Meeting 2 - 4 June 2010, Aix-en-Provence, France

  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 structuredefinitions • 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 EPICS Collaboration Meeting 2 - 4 June 2010, Aix-en-Provence, France

  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 L&F • Java2D printing • java.awt.datatransfer: system-wideCopy/Paste • Properties: persistence of user configuration and settings • Action chains: unlimited Undo/Redo • java.util.concurrent: model/GUI concurrency

More Related