Difference between revisions of "VDCT Bugs and Features Page"
From EPICSWIKI
(Added CosyLab high priority features) |
(Removed rubbish that got added accidently at the end) |
||
Line 92: | Line 92: | ||
# Visualization of the process chain (an EPICS database simulator) | # 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).'' | # 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).'' | ||
Revision as of 15:53, 10 June 2005
Bug fixes
- The addpath command in the dbd file is interpreted as specifying relative paths to be concatenated with the absolute paths specified in the path command. In fact, the definition of addpath in EPICS is that they are just additional paths. (I think the only reason for doing it this way was there wasn’t the syntax to do path “${path}:/new/directory/here”. (Note: The addpath functionality as implemented is potentially useful, but is wrong – it should be implemented as a different command and built into dbExpand).
- When connecting more than one wire to a macro, the macro always reverts to the default orientation. It should be oriented in the natural direction for the majority of the wires.
- Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.
- Dragging multiple objects sometimes ends up with some objects moving a different distance than others. This seems to be related to objects changing their snap point at different times, but if all objects start off snapped to grid, then they should all change their snap point at the same time. This problem also results in horizontal lines being non-horizontal after a move, since the endpoints snap at different times.
- Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.
- When some fields are marked as not visible as connection points in a template instantiation in a hierarchy, they seem to be hidden under a visible connection point and come to the front when the cursor hovers over them. Then when you add a connector, the connector doesn’t get added to the visible wire and connection point, but to the hidden one.
- Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.
- The font used for the name of a template instantiated in a hierarchy is too large, IMHO.
- The SCAN field doesn’t show up as an allowable input variable when trying to connect to a record from a hierarchical port. You can work around this by connecting from another’s record output link to a SCAN field is to make the SCAN visible as a connection anchor, then connecting the hierarchical port, then deleting the temporary connection.
- You can’t add a connection anchor point to a wire connecting a record field and an external port or macro. Currently, this isn't possible because you need to click on the link field in the record to add a connector, but these wires don't have a link field.
- VDCT (build 1256) breaks for Mac OS X users if they upgrade to MacOS 10.4. This happened on two machines consistently. It works on Mac OS 10.3.x. The error messages and Java version are:
shoaf@strmeng1 201> vdct Loading VisualDCT v2.4 build 1256... java(5397,0x1804600) malloc: *** error for object 0x3a9f60: incorrect checksum for freed object - object was probably modified after being freed, break at szone_error to debug java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug java(5397,0x1804600) malloc: *** error for object 0x3a9f60: incorrect checksum for freed object - object was probably modified after being freed, break at szone_error to debug java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug o) Usage: java com.cosylab.vdct.VisualDCT [<DBDs>] [<DB>] shoaf@strmeng1 202> java -version java version "1.4.2_07" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-215) Java HotSpot(TM) Client VM (build 1.4.2-50, mixed mode)
Enhancements
Higher Priority Features
Feature | Description | Time Estimate (days) | Suggested 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. | ||
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). | ||
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). | ||
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) | ||
Resize drawing objects | Allow you to change the size of drawing objects (lines and boxes). | ||
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. |
- 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.
- 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.
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 algorithm.... This is a big topic and needs thought. However, I don't believe people like the way it is at the moment. I am willing to work on a definition for this.
- 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).