VDCT Bugs and Features Page
From EPICSWIKI
Bugs
Please add bugs here and also email them to [[email protected]]. When they are definitely in the system they will be removed from this page.
High Priority Enhancements
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.
Feature | Description | Time Estimate (days) | Proposed by |
---|---|---|---|
Spreadsheet view and editor for records and templates | Provide a spread sheet view for the records. Provide one table for each record and tempate type. The tables should be on a tabbed pane - one table per tab. The table should have one record or template instance per row. The columns are: record or template name, followed by all the fields. All the cells are editable. For ENUMS use combos - reuse implementation of renderers and editors from the property inspector. It should be customizable which fields to display, the settings for this are saved on the level of a vdb file. In the first approximation, all the fields that are seen in the property inspector (these are all the fields that can be edited) should be displayed. | 15 | SLAC (Bob Dalesio) |
Debug plugin and hierarchies | Make debug plugin work on hierachical databases (now it works only on flat databases). | 5 | SNS |
Generate files with .template extension. | At present, if you define something using $(<name>) and don't define <name>, it shows up the .db as $(<name>). It should be possible to call the generated file <filename>.template to use with a substitution file. (Actually, if a .db is generated with $(<name>), that might warrant a warning.) | 3 | SNS |
If dbd not present, DTYP information is gone | If dbd is not found by the db any more (i.e. it was moved elsewhere), VDCT comments out the existing DTYP fields for the entire database and leaves it like this even it the dbd is added again. VDCT should not comment them out, it should only provide a warning | 1 | Cosylab (Gasper Jansa) |
Disable a record | It should be possible to disable a record. When a file is saved, the disabled records are commented out in the db file. Disabled records should be marked clearly in the GUI. | 1 | Cosylab (Gasper Pajor) |
Cloning a template | Ability to quickly do a "clone" of the template, of course with another (file)name - this seems a simple & clean solution for the proposed feature: “Allow descent into a template file and rename it without renaming all of the top-level templates. Allow a way to choose which top-level instantiations will use the new file.” Cloning serves part of the purpose, but I also need to be able to morph some of the old template instances from the old template to the new one. | 2 | SNS |
Make it easier to grab connectors inside objects. | Allow you to select lines and wire segments by clicking on the line, not just the anchor. I can't see the connector until I get lucky and happen to mouse directly over it. | 0.2 | SNS |
Allow connections via labels just outside the record | Instead of having a connection that snakes all around a complicated diagram, just connect to a tab with a label ("A", perhaps) with a corresponding tab elsewhere on the diagram. | 2 | SNS |
Read appInclude.dbd files with #include's | Using a locally referenced RELEASE file to find the include files. "Relatively referenced" means ../../configure/RELEASE. (Other proposals with a similar goals are to add an environment variable search path for .vdb files used in the hierarchy so you can store useful modules in a central location, plus to respect the EPICS_DB_INCLUDE_PATH in dbd file expansion.) | 2 | SNS |
Dialog with a list of records in a template | In case of a hierarchical template, the representation of all the records should be a tree | 2 | Cosylab (Krapec) |
Substitution file editor | Make an editor for substitution files. Substitution file has a link to the template file. Every time a subs file is edited, search for all macros in the referenced template and if new macros are found, ask whether they should be added to subs file. Another option is to put some macros into "ignore list", saved in a substitution file as a comment. Provide a simple table to edit subs file values. | 10 | Cosylab (Igor Verstovsek) |
Display less info at small zooms | When zoom level < 75%, do not display all the info about the fields (it is not readable anyway because the font is too small). Display just the Record name and type with in a larger font). | 2 | Cosylab (Gasper Jansa) |
If too long, display only part of record name | If the name of the record is too long, the font to display becomes too small and unreadable. In this case, display just the last n letters of the record, where n is set to some meaningful value or is customizable. | 1 | Cosylab (Iztok Krapec) |
Save on traverse | Implement an option to save the current file if the file is changed and you are traversing the hierarchy tree. At the moment you can only elect: to not save then traverse, or to cancel the traverse. We would like to save then traverse. | Nick Rees (Diamond) | |
Eliminate steps in wires | Eliminate all the small, fractional grid size steps in wires going to off-page connectors and objects. The best way to do this is to ensure that if an object is snapped to the grid, then all anchors on the object are also are snapped to the grid (i.e. are on one of the horizontal lines of the grid). | Nick Rees | |
More wiring issues | Do not draw lines over each other, mark connections clearly different from crossings, easier way to control routing manually. | Ralph Lange (BESSY) | |
Hierachy delimiters | Enable more than one delimiter when generating a single capfast-style hierarchy. This may need to be discussed more widely since it may impact the EPICS V3.15 hierarchy. However, it recognises that not everyone has chosen a single hierarchy delimiter (Diamond starts off with a – delimiter and changes it to : after a certain depth, mores the pity). | Nick Rees (Diamond) | |
Borders | Allow drawing borders (just like the borders around mechanical and electrical engineering drawings) which have author, id, name and change blocks. They will consist of lines, rectangles and text blocks, but no records. Once merged, the block should remain as a single block but, ideally, the text should be editable. (These should be implemented as drawings you can merge in with an existing drawing. This could possibly be done by adding a more comprehensive functionality to merge drawings. It might be done by allowing access to the include statement, but making included objects largely read-only, so the include statement remains in the .vdb file, instead of getting expanded) | Nick Rees (Diamond) | |
Resize drawing objects | Allow you to change the size of drawing objects (lines and boxes). At minimum provide at least one set of small symbols so that more records fit onto one screen. | Ralph Lange (BESSY) | |
Improve documentation. | Have a tutorial/quick start guide available on line. (Could be produced by someone in the community.) Expand manual - the manual is good, but brief. It could use some expansion. Could be produced by someone in the community. | Various | |
Imporve printing | Omit wire anchors on printing. print all, print current screen | Ralph Lange (BESSY) | |
Building | Make build from source easier and more reliable | Philip Taylor (OSL) | |
Change record type | Ability to change a record type (ie, calc to sub) where the values for common fields and the record name are retained. | Stephanie Allison (SLAC) | |
Visual cue when making links | When creating a link between two records, you use the contxt menu to select which link you're setting, at which point the pointer really ought to change shape to indicate that it's expecting you to click on the destination record. | Andrew Johnson (APS) |
Feature | Description | Time Estimate (days) | Suggested by |
---|---|---|---|
Debugging features | Start soft IOC on development machine from VDCT, Load database from VDCT directly to IOC, Add records on IOC (add and delete) with command from VDCT. | 4 | SNS |
Enhanced print preview and editor | Print preview with advanced capabilities: customization of the legend, drawing of additional objects over the print preview picture (for comments and highlighting). Saving of print preview settings as print templates (make a standard template for the lab). The objects have a customizer for setting background, line style, etc. | 15 | Cosylab |
Different shapes for different record types | Provide a predefined set of shapes (without an editor to make new ones). Time estimate covers the implementation of this functionality in VDCT. In addition, around 0.5 days of work is required to implement each new shape. | 10 | SNS |
Allow drawing capabilities for template shapes. | Requires the task “Different shapes for different record types”. In this case the user has the ability to create new shapes. In this case the port info is located within the shape itself, which requires additional implementation. Again, around 0.5 days of work is required to implement each new shape. | 5 | SNS |
Show direction of connections. | Isn't current direction indication not enough, see - http://www.cosylab.com/visualdct/builds/VisualDCT/2.4.1249/doc/MAN-VisualDCT_Users_Manual.html#record ; if not, maybe drawing arrows all through the line path is a better solution (as an option)? | 1 | SNS |
Multiple windows | Ability to have several VDCT windows opened. Copy-paste is allowed between windows. Two options: o) the second VDCT is started from the first VDCT, allowing for JVM sharing - any problems with singleton classes? o) each VDCT in its own JVM, Copy-paste mechanism is changed that it works with seriazable strings | 5 | Cosylab (Iztok Krapec) |
Specifiable background color | Ability to customize the background color | 0.5 | Cosylab (Krapec) |
Detachable preview window | At the moment, databe preview window can only be located on the top right part of the application. It should be possible to detach the window and have it in a separate dialog | 2 | Cosylab (Iztok Krapec) |
Coloring of the records | It should be possible to change colors of the records | 1 | Cosylab (Iztok Krapec) |
External query API | Define a interface that will allow VDCT to interact with other high-level tools - e.g. so it can query a relational database query for current field values. VDCT can give the link structure and the default value for fields, but the actual value should be able to be over-ridden by database values. | Various | |
MACRO enhancements | Allow a simple arithmetic syntax in macro expansion. e.g. if $(basenum)=10 then $(basenum:+1)=11. I am happy for this to be restricted to a single operator and a pure number - arithmetic between two macros is probably too much. OTOH, I find Hex addition is appealing: e.g. if $(basename)=FF then $(basename:+0x3)=102, with the Hex result being generated because of the hex number being added. (BTW, I am not fussed about the syntax here - an alternative would be to borrow the Bash $(($(basename)+3)) syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. | Nick Rees (Diamond) | |
File Format | Clarify the file format so the graphics information obeys a defined standard (I don't like embedding things in comments) and rationalise the various ways of template expansion across all EPICS tools | Nick Rees (Diamond) |
Capfast compatibility
- Enable the Capfast converter to recognise Capfast macros. The are implemented via a horrible method of having a setX property (where X is any character). However, it would be nice if these properties were correctly recognised as macros.
- Enable the Capfast converter to use the Capfast wire position points as hints as to where to place the vdct wires. The wires should at least have about the same number of segments.
Wishful thinking enhancements
- More generally, improve the wire positioning and shape algorithm.... This is a big topic and needs thought. However, I don't believe people like the way it is at the moment.
- Provide an "auto-placement" function, that when reading in non VDCT databases tries to place all records to 1) eliminate the overlap of records and 2) to minimize the crossing of links (auto-routing).
- The merging of the concepts of an off-page input and a macro is confusing. I am not sure whether this is a problem, just thought I'd raise it.
- Deprecate the group concept. I suspect the only people who use groups will want to move onto separate file hierarchies when they move to bigger systems? It seems to be a dead end - a nice idea, but not what I want. (I know this is controversial because some people use groups...)
- Visualization of the process chain (an EPICS database simulator)
- Show links between groups (display a group as a "meta-record") display external links also in the "group" displays. (Editors note: I think this is has really been implemented in hierarchy implementation, but I have it here because it came from the old VDCT page).