<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki-ext.aps.anl.gov/epics/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NickRees</id>
	<title>EPICSWIKI - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-ext.aps.anl.gov/epics/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NickRees"/>
	<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=Special:Contributions/NickRees"/>
	<updated>2026-06-04T04:06:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=2740</id>
		<title>VDCT Status Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=2740"/>
		<updated>2011-12-14T09:33:28Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Quick edit to delete out of date information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended to inform the EPICS community of the development status of VDCT. It is meant to complement the information on the Cosylab page, not duplicate it.&lt;br /&gt;
&lt;br /&gt;
=== What is VDCT? ===&lt;br /&gt;
&lt;br /&gt;
VDCT is the Visual Database Configuration Tool. It began as a project funded by the Swiss Light Source developed by [http://www.cosylab.com Cosylab]. Recent development has been funded by the APS, Diamond and the SNS. The code development is being done by Cosylab. &lt;br /&gt;
&lt;br /&gt;
Cosylab and the SLS have kindly made VDCT available under an open source license. Source code and binaries are available from the Cosylab web site. &lt;br /&gt;
&lt;br /&gt;
I ([mailto:Nick.Rees_at_diamond.ac.uk Nick Rees], of [http://www.diamond.ac.uk Diamond Light Source]) try to act as the interface person between the EPICS community and Cosylab. &lt;br /&gt;
&lt;br /&gt;
If you find any bugs not mentioned, please report them [mailto:bug@visualdct.cosylab.com here].&lt;br /&gt;
&lt;br /&gt;
=== Where to find it === &lt;br /&gt;
The main place for things VDCT is the [http://cosylab.com/resources/downloads_/ Cosylab VDCT page]. Go to this page and click on the Download latest link. &lt;br /&gt;
&lt;br /&gt;
=== Installation Tips ===&lt;br /&gt;
&lt;br /&gt;
You don't need to build VDCT to install it. You can just get hold of the binary files and run it. You will need V1.4 or greater of the Java Runtime Environment to run it. These notes refer to build 1271. Check that there are not later builds available before you download. &lt;br /&gt;
&lt;br /&gt;
# Go [http://visualdct.cosylab.com here] at the CosyLab site and click on the &amp;quot;Builds&amp;quot; link and then on the latest build number (at the time of writing this is &amp;quot;2.5.1271&amp;quot;) under the &amp;quot;Distribution&amp;quot; heading. &lt;br /&gt;
# On this page again click on the build number under the Distribution heading This should begin the download of the distribution zip file. &lt;br /&gt;
# Save the zip file somewhere convenient. &lt;br /&gt;
# Unzip the zip file, to somewhere convenient. On Windows systems a &amp;quot;vdct&amp;quot; directory in the &amp;quot;Program Files&amp;quot; directory seems a good place. &lt;br /&gt;
# You should then see a &amp;quot;2.5.1271&amp;quot; directory. In that you'll see a file named &amp;quot;runScript&amp;quot;. &lt;br /&gt;
# Execute the file named &amp;quot;runScript&amp;quot; and VDCT should start. On windows systems you will have to rename &amp;quot;runScript&amp;quot; to &amp;quot;runSript.bat&amp;quot; first.&lt;br /&gt;
&lt;br /&gt;
=== Wish list - Possible long term requirements ===&lt;br /&gt;
A list of these is kept on the [[VDCT Bugs and Features Page]]. This contains a list of known bugs, plus a list of things that people have come up with as &amp;quot;wouldn't it be nice if&amp;quot; (WIBNIf) ideas. They may or may not get implemented. In true EPICS tradition, if you really want something the best way to get it is to fund the development or contribute effort. &lt;br /&gt;
&lt;br /&gt;
If you want a feature not mentioned, [mailto:Nick.Rees_at_diamond.ac.uk email me], or edit the page directly if you have a wiki username.&lt;br /&gt;
&lt;br /&gt;
=== VDCT mailing list ===&lt;br /&gt;
If you are interested in the development of VDCT you can subscribe to the VDCT [http://lists.cosylab.com/ mailing list]. &lt;br /&gt;
&lt;br /&gt;
=== Useful Tools ===&lt;br /&gt;
Following the standard laid down in the Application Developers Guide, VDCT requires record names to be enclosed in double quotes. This can cause a problem if you try to read a database that's been created on a text editor.&lt;br /&gt;
&lt;br /&gt;
If you attempt to read a database in to VDCT that has macro substitution fields in the record name but does not have double quotes around the record names you will see an error. e.g. a database file with record names like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
record(sub,$(dev):StandardizeSUB) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
record(ai,$(dev):CurrentAI) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will produce this error on the VDCT console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: Record with name '$' already exists, skiping...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following perl script processes database files, adding quotes to record names when required.&lt;br /&gt;
&lt;br /&gt;
* [http:/epics/extensions/vdct/addQuotes.pl addQuotes.pl] (7 Aug 2002)&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=2715</id>
		<title>Fundamental Tools and Popular Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=2715"/>
		<updated>2011-12-14T09:28:11Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Changed CosyLab VDCT link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Control System Studio ( CSS ) ==&lt;br /&gt;
&lt;br /&gt;
The activities around the Control System Studio are coordinated by the web-site: [http://css.desy.de CSS Web Page]&lt;br /&gt;
&lt;br /&gt;
http://css.desy.de will also lead you to the tools which have been set up to collect the requirements for the variety of applications which we will have to provide for a complete Control System Studio application suite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following topics could be candidates for this Wiki:&lt;br /&gt;
&lt;br /&gt;
* XML UI&lt;br /&gt;
* converting/ running Eclipse plugins as JSP&lt;br /&gt;
&lt;br /&gt;
== Other Applications ==&lt;br /&gt;
&lt;br /&gt;
=== VDCT ===&lt;br /&gt;
&lt;br /&gt;
VDCT development is coordinated through Nick Rees, at the Diamond Light Source. See the [[VDCT Status Page]] for current status information.&lt;br /&gt;
&lt;br /&gt;
Note that the main reference for obtaining the VDCT distribution is still the [http://cosylab.com/resources/downloads_/ CosyLab VDCT page].&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=Future_Development_Ideas&amp;diff=1663</id>
		<title>Future Development Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=Future_Development_Ideas&amp;diff=1663"/>
		<updated>2009-03-26T11:29:48Z</updated>

		<summary type="html">&lt;p&gt;NickRees: /* Catools and strings with spaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are my notes for what I think we can/should add to V3 through an evolutionary process.  The ordering is probably vaguely right, but not necessarily that accurate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tasks which could be done now ==&lt;br /&gt;
&lt;br /&gt;
These items can be worked on immediately as they do not depend on any other work to have been completed, and could even be included in the next 3.14 release if appropriate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Documentation (3.14/3.15) ===&lt;br /&gt;
&lt;br /&gt;
Lots we can do here:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Record Reference Manual ====&lt;br /&gt;
&lt;br /&gt;
* Add a chapter for the aSub record, derived from the genSub record chapter (which already exists).&lt;br /&gt;
* Delete the synApps record types from the R3.13 Wiki pages that don't belong there.&lt;br /&gt;
* Extend the DBD to HTML converter so we can move detailed record reference documentation into the record.dbd and/or record.c files.&lt;br /&gt;
&lt;br /&gt;
==== Application Developers Guide ====&lt;br /&gt;
&lt;br /&gt;
* Convert into an OpenDocument Text file (or some other non-proprietary format).  Machine-translating index markers is the most important part of this conversion, we don't want to lose the index.&lt;br /&gt;
* Write a &amp;quot;Building and Porting EPICS&amp;quot; chapter&lt;br /&gt;
* Restructure the AppDevGuide to make it more accessible&lt;br /&gt;
** Combine the libCom and libCom/osi chapters&lt;br /&gt;
** Maybe have a separate section for all callable APIs&lt;br /&gt;
** Could move all API documentation into the appropriate source files and use Doxygen or perldoc to extract.&lt;br /&gt;
&lt;br /&gt;
==== Other Documents ====&lt;br /&gt;
&lt;br /&gt;
* Look at all the documentation we have and see what's missing&lt;br /&gt;
* Data Access, other new CA-related documentation...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ANSIfication of Base (3.14/3.15) ===&lt;br /&gt;
&lt;br /&gt;
Some device support files still use K&amp;amp;R-style function declarations and definitions which need to be converted to ANSI standard C.&lt;br /&gt;
&lt;br /&gt;
Priority: Low&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: softDev, ...&lt;br /&gt;
&lt;br /&gt;
=== vxWorks: Generate TIMEZONE from TZ ===&lt;br /&gt;
&lt;br /&gt;
The vxWorks TIMEZONE environment variable has to be set every year because it specifies the month and date of the time changes, whereas the Posix TZ variable as used by RTEMS specifies a rule to calculate those dates and is thus not specific to a particular year (as long as the rules don't change). Add code to vxWorks/osdTime.cpp to calculate the value of TIMEZONE for the current year from the rule provided in TZ. Talk to Eric Norum about this to make sure it matches what RTEMS does/uses.&lt;br /&gt;
&lt;br /&gt;
Note that you can't just put this in the timeRegister() routine since the IOC won't know what year it is until the first time provider synchronizes, and it shouldn't go in osdNTPGet() because the NTP time provider isn't guaranteed to be always running. The best way to do this is probably to define a command that calculates and updates TIMEZONE, which allows it to be added to the startup script and also run manually when needed.&lt;br /&gt;
&lt;br /&gt;
Priority: Medium&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: libCom&lt;br /&gt;
&lt;br /&gt;
=== Improve error reporting (3.14/3.15) ===&lt;br /&gt;
&lt;br /&gt;
Look at the error reporting and messages generated by various parts of the code, in particular the parsers in src/as and src/dbtools to see if their output can be improved.  The dbStatic parser was done recently so might be useful as a model, but might still be improvable.&lt;br /&gt;
&lt;br /&gt;
=== Enhance the aSub record type (3.14/3.15) ===&lt;br /&gt;
&lt;br /&gt;
Allow the types and dimensions of the aSub fields A-U and VALA-VALU to be changed at runtime.  This is useful to be able to replace one subroutine with another that needs different field types, or even just to be able to extend an array.&lt;br /&gt;
&lt;br /&gt;
Priority: Low&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: rec.&lt;br /&gt;
&lt;br /&gt;
=== Named Soft Events (3.14/3.15) ===&lt;br /&gt;
&lt;br /&gt;
Add the ability to use an event name instead of a number in the EVNT field.  EVNT is currently a short, but we only allow soft event numbers to be 8 bits, so this allows us space to add a new set of event numbers for named events.  The event names should not have to be declared in advance, although that does leave the possibility of typos so maybe the IOC should be told first.  Will probably need changes to the Event record type and/or device support.&lt;br /&gt;
&lt;br /&gt;
Priority: Low&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: dbStatic, db, rec, softDev.&lt;br /&gt;
&lt;br /&gt;
=== Timestamp on Value Change (3.14/3.15) ===&lt;br /&gt;
&lt;br /&gt;
Be able to select whether a record's timestamp should indicate when a record last processed (current behavior), or when its value last changed.  Since the timestamp gets set by the record's process() routine, this is best done by adding a menu field to each record type, making the recGblGetTimeStamp() call conditional on that field and add another call to it inside the monitor() routine.&lt;br /&gt;
&lt;br /&gt;
Priority: Low&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: db, rec.&lt;br /&gt;
&lt;br /&gt;
=== Rework the devLib Interface ===&lt;br /&gt;
&lt;br /&gt;
The devLib API is not very well implemented: Some calls are redirected through a function table while others are not; the RTEMS and vxWorks implementations assume that a VMEbus is always available; PCI and its relatives are not handled at all.  The API to devLib's clients must not change, but the API to the support code in devLibOSD.c may.&lt;br /&gt;
&lt;br /&gt;
Note that there is an out-of-tree implementation of the devLibOSD.c file for Linux that the CLS and Australian Synchrotron use; any replacement must be able to support a plug-in library in a similar manner.  Ideally obtain and modify this implementation at the same time as changing Base.&lt;br /&gt;
&lt;br /&gt;
Priority: Medium&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: libCom/osi.&lt;br /&gt;
&lt;br /&gt;
=== MSI flag on Links ===&lt;br /&gt;
&lt;br /&gt;
Often records like calc read data from other records using in-links (INPA etc.). The record calculates something that has physically a different meaning than the input data. If the input data is not valid, the calculation can not deliver a valid result. So MS must be used to make this visible. On the other hand, a &amp;quot;high&amp;quot;-alarm in the source record should not alter the alarm state of the calc record. Therefore we propose to introduce a third choice: MSI = Maximize Severity Invalid. If the source record has &amp;quot;Invalid&amp;quot; severity, the severity of the local record becomes Invalid/LINK, otherwise no alarm change occurs.&lt;br /&gt;
&lt;br /&gt;
Libs affected: db, dbStatic&lt;br /&gt;
&lt;br /&gt;
=== PHAS support for PINI ===&lt;br /&gt;
&lt;br /&gt;
The PHAS field is currently ignored when processing records at PINI. Change the implementation of initialProcess() so it respects PHAS.  This should ''not'' be done by looping through all the PHAS values from 0 through 255. Instead:&lt;br /&gt;
* Look for and process all records with PHAS=0.&lt;br /&gt;
* While doing that, record the next highest PHAS setting used, if any.&lt;br /&gt;
* If a higher PHAS setting is used, repeat for that setting, etc.&lt;br /&gt;
&lt;br /&gt;
Libs affected: misc&lt;br /&gt;
&lt;br /&gt;
=== Additional selections for PINI ===&lt;br /&gt;
&lt;br /&gt;
Make PINI into its own menu and add choices for RUN and PAUSE.  Modify iocPause() and iocRun() to process the records with these settings at the appropriate time (change initialProcess() to take an argument which is the PINI value that it's working on).&lt;br /&gt;
&lt;br /&gt;
Libs affected: dbStatic, misc&lt;br /&gt;
&lt;br /&gt;
=== ADLY and ANUM fields ===&lt;br /&gt;
&lt;br /&gt;
Beside the alarm limits we have a &amp;quot;HYST&amp;quot; in the analog records. Why not also ADLY (alarm delay) and ANUM (alarm number). Some values are very unstable and have some noise or over-swing. So a short time over/under the limit should be allowed sometimes.  Precise meaning to be clarified, e.g: &amp;quot;Do not raise an alarm unless there are ANUM excursions outside HYST in ADLY seconds, or the excursion is stable for ADLY seconds.&amp;quot;  Should ANUM=0 mean infinite?  If STAT==NO_ALARM and the alarm condition starts to change between HIGH and HIHI, what should happen? I think after ADLY seconds the alarm HIGH should be sent (the lower level if HSV &amp;lt; HHSV).  But what to do if the severities of changing alarms are the same?  Digital records could benefit from this mechanism although they have no HYST.&lt;br /&gt;
&lt;br /&gt;
Libs affected: rec&lt;br /&gt;
&lt;br /&gt;
=== Waveform record: post monitors on change using a hash ===&lt;br /&gt;
&lt;br /&gt;
Add a field to the waveform record to hold the hash of the data buffer last posted through CA.  In the monitor() routine, calculate the hash of the current data buffer, and only call db_post_events() if different.&lt;br /&gt;
&lt;br /&gt;
Libs affected: rec&lt;br /&gt;
&lt;br /&gt;
=== Analog Input Smoothing ===&lt;br /&gt;
&lt;br /&gt;
Move the SMOO smoothing calculation out of the convert() routine so it gets used for all device support, not just those that return a raw value.  While you're doing that, move the isnan() tests out of both readValue() and convert().&lt;br /&gt;
&lt;br /&gt;
Libs affected: rec&lt;br /&gt;
&lt;br /&gt;
=== Long strings using char arrays ===&lt;br /&gt;
&lt;br /&gt;
MEDM and EDM already support the ability to treat a DBF_CHAR array as a string (which is not limited to 40 characters), but other CA clients including catools and the Perl CA library need to be modified to handle this.&lt;br /&gt;
&lt;br /&gt;
Priority: Medium&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: catools, extensions...&lt;br /&gt;
&lt;br /&gt;
=== Catools and strings with spaces ===&lt;br /&gt;
&lt;br /&gt;
Modify the catools output so strings that contain space characters (and other escapable characters?) are quoted.  The aim is that the output can be used as direct input to the caput tool.  Discuss with Ralph. See tech-talk thread: http://www.aps.anl.gov/epics/tech-talk/2009/msg00330.php&lt;br /&gt;
&lt;br /&gt;
Libs affected: catools.&lt;br /&gt;
&lt;br /&gt;
=== Database diagnostics ===&lt;br /&gt;
&lt;br /&gt;
When an IOC is too busy to service CA the engineers need a way to find out what records are causing the problem.  Something like a dbSpy command might be helpful, which would keep a count of the records processing and give periodic reports.  Would need to be designed carefully so it doesn't eat RAM or slow down the machine too much.&lt;br /&gt;
&lt;br /&gt;
Other diagnostics could also be added: dbProcess rate, ...&lt;br /&gt;
&lt;br /&gt;
Priority: Medium&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: db, dbStatic.&lt;br /&gt;
&lt;br /&gt;
=== VDCT Enhancements ===&lt;br /&gt;
&lt;br /&gt;
Any Java developers want to work on these?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Record info() item support ====&lt;br /&gt;
&lt;br /&gt;
VDCT does not currently support record info() data in .db files.  At minimum it should preserve info() items across loading and saving, and ideally it would also provide a means for them to be created and edited within the GUI.&lt;br /&gt;
&lt;br /&gt;
==== Record aliases ====&lt;br /&gt;
&lt;br /&gt;
EPICS Base R3.14.11 will support record aliases, which VDCT does not.  Both preserving the aliases attached to a record loaded from a .db file, and providing creation and editing capabilities for them through the GUI.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Packagable Build System ===&lt;br /&gt;
&lt;br /&gt;
The EPICS Build system currently does not distinguish between programs that are needed by IOC developers (e.g. dbToMenuH) and end-user programs (e.g. caget).  We could divide our build targets into these very easily, which would make packaging EPICS Base much more straight-forward.  I see the following parts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== End-user Binaries ====&lt;br /&gt;
&lt;br /&gt;
* catools&lt;br /&gt;
* Shared libraries&lt;br /&gt;
* SoftIoc (requires compiled-in DBD data though)&lt;br /&gt;
&lt;br /&gt;
These could be installed into /usr/local from an RPM or equivalent packaging system.&lt;br /&gt;
&lt;br /&gt;
==== Developer Tools ====&lt;br /&gt;
&lt;br /&gt;
* flex, antelope binaries etc.&lt;br /&gt;
* static libraries&lt;br /&gt;
* DBD and header files&lt;br /&gt;
* Build system components&lt;br /&gt;
&lt;br /&gt;
These could be packaged into a -devel RPM or equivalent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Priority: R3.15&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Extended Device Support ===&lt;br /&gt;
&lt;br /&gt;
Converting Asyn's device support layers to Extended support exposed the need to clean up the extended interface, i.e. reduce the code duplication which is currently required since the record knows nothing about the device change.&lt;br /&gt;
&lt;br /&gt;
Priority: R3.15&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: db, rec.&lt;br /&gt;
&lt;br /&gt;
=== New Record Types ===&lt;br /&gt;
&lt;br /&gt;
From Bob: Add record types - valve record, improved control records for PID and Lead/Lag (if we had a good process control guy to design the record).&lt;br /&gt;
&lt;br /&gt;
Enhancements to PID should start from the most advanced implementation currently available, which is ''not'' the old PID record type from Base 3.13. There's a PID record in synApps, and there may be others available from other sites too.&lt;br /&gt;
&lt;br /&gt;
Priority: Dalesio&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: (external app)&lt;br /&gt;
&lt;br /&gt;
=== JSON Parser and Generator ===&lt;br /&gt;
&lt;br /&gt;
Find or write a SAX-like parser for JSON-encoding and decoding strings.&lt;br /&gt;
&lt;br /&gt;
Priority: Low&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CA support for Array with Timebase ===&lt;br /&gt;
&lt;br /&gt;
From Bob: Add a new dbr_type into the channel access database - new array that includes time base and offset at least. One that also supports up to 3 dimensions (or better n).&lt;br /&gt;
&lt;br /&gt;
Priority: Dalesio&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: Many...&lt;br /&gt;
&lt;br /&gt;
=== More flexible Access Security ===&lt;br /&gt;
&lt;br /&gt;
The AS design defines each field's security level in the record description, and limits us to only levels 0 and 1.  There are many cases where sites need finer control over access; being able to put individual fields of a specific record into a different level, and having additional static levels (use a bitmask?) would help in a number of situations. It is not clear how much work this would entail though.&lt;br /&gt;
&lt;br /&gt;
Priority: Low&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: dbStatic, db, as, ...&lt;br /&gt;
&lt;br /&gt;
=== Authentication ===&lt;br /&gt;
&lt;br /&gt;
From Ralph: Two or three institutes need a way to password-protect access to certain databases. The usual encryption libraries are freely available, but I guess this issue needs a lot more thinking. Granularity: by record, by connection = IOC, or centralised? Should the authentication last for the client's lifetime or should a short form (some security token or key) be sent with every CA data package?&lt;br /&gt;
&lt;br /&gt;
=== Secure CA ===&lt;br /&gt;
&lt;br /&gt;
Secure channel access protocol - add SSL wrappers around CA to make it secure.&lt;br /&gt;
&lt;br /&gt;
Ralph and Jeff implemented CA-over-TCP at the Codeathon in April 2008, which should form the basis of this work.&lt;br /&gt;
&lt;br /&gt;
Priority: R3.15&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: ca, cas, rsrv&lt;br /&gt;
&lt;br /&gt;
=== Online Record Creation ===&lt;br /&gt;
&lt;br /&gt;
It might be possible to add new record instances at runtime, although delete would need a change to the record interface to support.  The tricky thing is to do this in a manner which is completely thread-safe since the pdbbase structure does not have any locks, and adding them could significantly affect CA Search operations.&lt;br /&gt;
&lt;br /&gt;
Priority: Dalesio&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: dbStatic, db, misc&lt;br /&gt;
&lt;br /&gt;
=== OFFLINE Alarm Status, Asyn support ===&lt;br /&gt;
&lt;br /&gt;
* Add a new Alarm Status (not severity!) OFFLINE.&lt;br /&gt;
* Add the ability to the asyn port server to be set to OFFLINE (or use the existing &amp;quot;Connect&amp;quot; mechanism?).&lt;br /&gt;
* If the asyn port/address is OFFLINE, any records that make requests to it are set to INVALID:OFFLINE.&lt;br /&gt;
* Add any routines/tools necessary for easy administration of this (i.e. report all the OFFLINE ports/addresses).&lt;br /&gt;
&lt;br /&gt;
Priority: Arnold&amp;lt;br&amp;gt;&lt;br /&gt;
Libs affected: dbStatic, Asyn.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tasks which are already under way ==&lt;br /&gt;
&lt;br /&gt;
These tasks are already being worked on but may have stalled.  They might be hard for someone else to take over at this stage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.15 Cleanup ===&lt;br /&gt;
&lt;br /&gt;
3.15 already includes the Up change to the build system; the ramifications of this change have not been followed up completely though:&lt;br /&gt;
&lt;br /&gt;
* Provide a perl script for converting 3.14 apps to 3.15&lt;br /&gt;
* Bring over latest templates from 3.14&lt;br /&gt;
* Implications for building extensions not worked out&lt;br /&gt;
* makeBaseExt.pl is probably no longer needed&lt;br /&gt;
&lt;br /&gt;
=== Compiling DBD Files (3.15) ===&lt;br /&gt;
&lt;br /&gt;
A Perl implementation of the DBD file parser exists but is incomplete, and I'm hoping to revive this development effort to convert all DBD file information into C tables that get compiled into the IOC executable.&lt;br /&gt;
&lt;br /&gt;
With this parser being written in Perl, it will become easier to extend the new facilities that we implement, such as adding new field types (see Variable Length Strings below).&lt;br /&gt;
&lt;br /&gt;
Libs affected: dbStatic, +dbHost, db.&lt;br /&gt;
&lt;br /&gt;
=== CA Event Rate Limiting (3.15) ===&lt;br /&gt;
&lt;br /&gt;
A CA client should be able to specify a maximum event rate for each channel subscription it creates (and possibly be able to change that rate without re-subscribing).&lt;br /&gt;
&lt;br /&gt;
Libs affected: ca, cas (rsrv?).&lt;br /&gt;
&lt;br /&gt;
=== CA Event Filtering (3.15++) ===&lt;br /&gt;
&lt;br /&gt;
LANSCE's Time and Flavored Data requirements.  It might be wise to do the Unbundling task before merging these changes.&lt;br /&gt;
&lt;br /&gt;
Jeff's plan is to be able to attach an expression to a channel subscription, which is evaluated by the client's server thread to check each monitor event to determine whether to send it to the client or not.  This could use an enhanced CALC expression parser and evaluation routine to do the expression, but we need a new parser since the expression can include PV names, and the calcPerform() API may have to be enhanced to match.&lt;br /&gt;
&lt;br /&gt;
Libs affected: libCom/calc, ca, cas, dbStatic?, +da, db.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Things which can't be completed yet ==&lt;br /&gt;
&lt;br /&gt;
These are tasks are waiting on other people or for other tasks to be completed before they can be finished, although there may be infrastructure to support them that can be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IOCSH Command Registration (3.15) ===&lt;br /&gt;
&lt;br /&gt;
Add DBD file syntax to convert DBD file information into a C header file which declares the command functions (similar to how we do record types in the current code-base).  This header would then be included by the C file that defines those functions, thus the C compiler would do the work of ensuring that the routine implemented actually matches the command that will call it.&lt;br /&gt;
&lt;br /&gt;
The command information in the DBD file will also be useful for future versions of the IRMIS parser for st.cmd scripts, where we need to be able to tie the device support configuration commands into IRMIS' need to map hardware devices to record addresses.&lt;br /&gt;
&lt;br /&gt;
Libs affected: dbHost, all libs Register code.&lt;br /&gt;
&lt;br /&gt;
=== Link Support (3.15+) ===&lt;br /&gt;
&lt;br /&gt;
See original proposal by ANJ, which needs to be modified to add notify interfaces.&lt;br /&gt;
&lt;br /&gt;
=== Array Field Support (3.16++) ===&lt;br /&gt;
&lt;br /&gt;
Make it much easier to add array fields to record types without having to do as much coding in the record support.  See [http://www.aps.anl.gov/epics/core-talk/2007/msg00078.php Ben Franksen email]&lt;br /&gt;
&lt;br /&gt;
Libs affected: dbHost, dbStatic, db, rec.&lt;br /&gt;
&lt;br /&gt;
=== Unbundling (3.15/++) ===&lt;br /&gt;
&lt;br /&gt;
Split Base into three or more independent modules.  Each module would have its own version number, and the modules can therefore each have an independent existance, although there would obviously be specific dependencies associated with particular versions.&lt;br /&gt;
&lt;br /&gt;
If we adopt this, we should bundle working subsets of modules together and release the complete bundle as a tarfile.&lt;br /&gt;
&lt;br /&gt;
I see the unbundled modules as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Core ====&lt;br /&gt;
&lt;br /&gt;
Depends on: Nothing&lt;br /&gt;
&lt;br /&gt;
These are the common parts used by everything:&lt;br /&gt;
&lt;br /&gt;
* Build system&lt;br /&gt;
* libCom &amp;amp; OSI layer&lt;br /&gt;
** Basic registry routines&lt;br /&gt;
** IOC shell&lt;br /&gt;
* Antelope&lt;br /&gt;
* Flex&lt;br /&gt;
* makeApp tool&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Channel Access Client ====&lt;br /&gt;
&lt;br /&gt;
Depends on: Core&lt;br /&gt;
&lt;br /&gt;
Jeff Hill's responsibility.&lt;br /&gt;
&lt;br /&gt;
* CA-specific build rules (probably none)&lt;br /&gt;
* CA client library&lt;br /&gt;
* CA Tools&lt;br /&gt;
* CA application makeApp templates&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Channel Access Server ====&lt;br /&gt;
&lt;br /&gt;
Depends on: Core, IOC&lt;br /&gt;
&lt;br /&gt;
Jeff Hill's responsibility.&lt;br /&gt;
&lt;br /&gt;
* CAS-specific build rules (probably none)&lt;br /&gt;
* GDD&lt;br /&gt;
* The CAS server tool&lt;br /&gt;
* RSRV (the old CA server code)&lt;br /&gt;
* CAS application makeApp templates&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== IOC ====&lt;br /&gt;
&lt;br /&gt;
Depends on: Core, CAC, CAS&lt;br /&gt;
&lt;br /&gt;
The rest is code that runs on the IOC.&lt;br /&gt;
&lt;br /&gt;
* IOC-specific build rules&lt;br /&gt;
* Static and runtime database access&lt;br /&gt;
* Runtime database&lt;br /&gt;
* Standard record types&lt;br /&gt;
* Soft device support&lt;br /&gt;
* The registry (device, driver, record, function)&lt;br /&gt;
* IOC application makeApp templates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variable Length Strings (3.15++) ===&lt;br /&gt;
&lt;br /&gt;
3.15 already includes the BaseString C++ classes in libCom, and I intend to create a set of C wrapper routines for the base class operations (started, currently incomplete).  This can form the basis of a new variable length string type for use in the database in addition to DBF_STRING.&lt;br /&gt;
&lt;br /&gt;
Libs affected: dbHost, dbStatic, db, ...&lt;br /&gt;
&lt;br /&gt;
=== Alternate DB File Formats (3.15++) ===&lt;br /&gt;
&lt;br /&gt;
There are calls to replace the existing DB file format with an XML-based format.  Currently the DB file parser is too highly integrated into the process of record creation to be able to add a second format, but it would be feasible to separate these two and hence allow an expat-based or similar parser to be written.  This would probably require a close analysis and upgrade to the locking arrangements of the database.&lt;br /&gt;
&lt;br /&gt;
Need to coordinate with VDCT folks, etc.&lt;br /&gt;
&lt;br /&gt;
Libs affected: dbHost?, dbStatic.&lt;br /&gt;
&lt;br /&gt;
=== New Record API ===&lt;br /&gt;
&lt;br /&gt;
These requests all need a significant change to the record support API.  They are also fairly closely related, so should be used as input into any new API that gets devised.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Asynchronous Gets (3.16++) ====&lt;br /&gt;
&lt;br /&gt;
From Tim Mooney: It would be great if an input link could initiate processing, and get a value that is known to be the result of that processing, even if &lt;br /&gt;
records to be processed are asynchronous.  Currently, a record that needs completion-qualified data must know how to trigger the processing that generates that data.&lt;br /&gt;
&lt;br /&gt;
From Ben Franksen: Implemented an asyncronous dbGetLinkCallback() routine.  To do this properly though needs an upgrade to the record support API, but maybe could be shoe-horned into the the existing API by adding a dbGetLinkCallback() with a private callback pointer, and we'd require new record types to use this.  What does this do to the device support interface though?  Implications need study.&lt;br /&gt;
&lt;br /&gt;
Andrew's Comment: This should be part of the implementation of linkSupport which I proposed in detail many years ago.  The purpose of the &amp;quot;Compiling DBD Files&amp;quot; item above is to make extending the DBD file syntax easier to do in the future, which is a necessary part of that development.&lt;br /&gt;
&lt;br /&gt;
==== Blocking Puts (3.16++) ====&lt;br /&gt;
&lt;br /&gt;
From Tim Mooney: It would be nice to have a link attribute that could put, request processing, and wait for completion.  We have this capability now, in dbCaPutCallback(), but it's selectable only at DCT time.&lt;br /&gt;
&lt;br /&gt;
The idea is for a version of the SEQ record where rather than a fixed delay, the second link would wait for the completion callback from the first link.  This should be possible today with a special record type, but Tim suggests it should be possible with any link field of any record type.&lt;br /&gt;
&lt;br /&gt;
Andrew's Comment: This should be part of the implementation of linkSupport which I proposed in detail many years ago.  The purpose of the &amp;quot;Compiling DBD Files&amp;quot; item above is to make extending the DBD file syntax easier to do in the future, which is a necessary part of that development.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Multiple Master problem (3.16++) ====&lt;br /&gt;
&lt;br /&gt;
From Jeff: Changes to output values in a PLC or similar device initiated outside of the output record. This could be resolved adding a new routine to the RSET that the device support calls back when it has a new raw ouptut value to back-propagate to the VAL field.  Currently done by some devices that set PACT and call the record's process() routine to use its second-half processing only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Records Can't Block (3.16++) ====&lt;br /&gt;
&lt;br /&gt;
From Tim Mooney: I think almost half the code in the sscan record is devoted to &lt;br /&gt;
bookmarking. In the middle of some algorithm, the record needs to wait for external events; the only way back in is process(), and so the record has to &lt;br /&gt;
have a complicated arrangement of switches that get it back into the &lt;br /&gt;
algorithm it was executing, with enough state information to decide what to do &lt;br /&gt;
next. At the same time, the record must check to see if it's now processing &lt;br /&gt;
because of some out-of-band request from the user.  Normal and exceptional processing must, therefore, be mixed together in the switch &lt;br /&gt;
arrangement, and adding new behaviors to the record becomes a very hairy undertaking.&lt;br /&gt;
&lt;br /&gt;
But what the record would really like to do is just wait with its &lt;br /&gt;
context intact for events, and allow special() to release it from the wait &lt;br /&gt;
if the user has requested something that requires this.  I guess this means the record should include author-defined event types in the wait mask, and special() should be able to generate author-defined events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dynamically Loaded Modules (3.16++) ===&lt;br /&gt;
&lt;br /&gt;
After converting the DBD load process into table registration, it should become easier to allow support modules (containing record types, device support and other drivers) to be discovered and loaded dynamically.  Unloading is a very different matter though, we don't have the shutdown facilities to allow that.&lt;br /&gt;
&lt;br /&gt;
=== Atomic Operations through CA (3.16++) ===&lt;br /&gt;
&lt;br /&gt;
This is related to the Asynch Gets issue above; implement Read-Write (Swap, permits semaphores), Process-Read and Write-Process-Read (Command/Response) as atomic operations available through Channel Access.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=2717</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=2717"/>
		<updated>2005-07-06T13:52:17Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Fixed column heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== Proposed Bug-Fix and Schematic Capture development package ==&lt;br /&gt;
&lt;br /&gt;
A result of a poll of the community indicated that adoption would be far more widespread if the largest bugs were removed and work was done to upgrade VDCT's capability as a basic spreadsheet package. A consolidated list of bugs and feature requests have been drawn up and priorities assigned on this basis. Specifically, the priorities are:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Priority !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0 || Probably funded via another means &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Functionality essential to a schematic capture tool - i.e. it would be seen as a bug in a traditional schematic capture tool&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Useful functionality that improves VDCT as a database configuration tool&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Useful functionality, but may require greater thought or co-ordination with EPICS V4 development&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Potentially useful functionality, but not too essential to the core function of a DCT. Also irreproducible bugs&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Functionality that is not required since the solution is already available or provided in another way. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bearing this priority list in mind, we have decided to develop a package aimed at addressing priorities 1 and 2 only. It is interesting to note that even this limited package amounts to 41 work days, which is considerably larger tham most of the other VDCT development packages - highlighting that the devil is in the details.&lt;br /&gt;
&lt;br /&gt;
The consolidated list of bugs and features is as follows:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Ref # !! Name !! Bug or Feature !! Description !! Time Estimate (days) !! Proposed by !! Priority !! Comment  &lt;br /&gt;
|-&lt;br /&gt;
|1021 || Make a non-modal property dialog as a separate tiled or floating window || Feature || As it is e.g. in Word for setting diverse properties When a record is selected, it's properties are shown in this windows; If several records are selected, only the properties that are common to all are shown and by entering a value, it is applied to all records; Two-way editing: if a new link is entered in the property sheet, it is also displayed on the canvas. This is very useful for people working with two screens, so they don't have to scroll around the canvas || 3 || BESSY ||0 || Do not understand. If I add  an inspector a feature of point 3, all this will be covered. Is this true? Estimate for point 3 given (for inspector).&lt;br /&gt;
|-&lt;br /&gt;
|1 || Spreadsheet view and editor for records and templates || Feature || Provide a spread sheet view for the records. Provide one table for each record and template 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) || 0 || If multiple record types are selected, the inspector could display the intersection set of available editable fields. &lt;br /&gt;
|-&lt;br /&gt;
|2 || Improve documentation. || Feature || 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 || 0 || Improve the documentation from the user point of view. This may be done by a separate contract  &lt;br /&gt;
|-&lt;br /&gt;
|12121  || Addpath command functionality || Bug || 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 &amp;quot;${path}:/new/directory/here&amp;quot;. (Note: The addpath functionality as implemented is potentially useful, but is wrong - it should be implemented as a different command and built into dbExpand). || 0.25 || Nick Rees (Diamond) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|12369  || Import of databases doesn't work || Bug || If you try and import a database into another database it simply doesn't work. || 0.25 || Nick Rees (Diamond) || 1 ||||&lt;br /&gt;
|-&lt;br /&gt;
|APS1 || Hide value on copied records || Bug || When a record is copied, the setting &amp;quot;Hide value of valid links&amp;quot;, and per-field hide-value settings made in Inspector are not honored until the Settings dialog is called up and put away, or the file is saved and reopened. || 0.25 || APS (David Kline) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|APS3 || Position of pasted record || Bug || When a record is pasted, it frequently is placed *far* off screen, so you have to zoom out, grab the record, drag it to near where you were working, and zoom back in. This doesn't always happen, and I haven't been able to figure out what triggers the behavior. || 0.25 || APS (David Kline) || 1 || The inconsistency is certainly unacceptable from a user interface point of view, but it may not be a true bug. Should be fixed and record should be pasted at the mouse focus.&lt;br /&gt;
|-&lt;br /&gt;
|12122  || Macro orientation when connection more than one wire || Bug || 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. || 0.5 || Nick Rees (Diamond) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|12123  || Issues when un-doing a move || Bug || Fix problems with undo/redo. Sometimes when you undo a move the objects don't go back in the same place. || 0.5 || Nick Rees (Diamond) || 1 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12129  || SCAN field is not a valid input when connecting from a port || Bug || 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. || 0.5 || Nick Rees (Diamond) || 1|| ||  &lt;br /&gt;
|-&lt;br /&gt;
|8596  || Bug in Visual DCT morph || Bug || If you morph a record to something and you do 'undo' afther, the record goes back to previous record type but fiedls that are common to both records type remain on record. That means that you have two DESC fields and two PINI ... This is only display issue becaiuse saved file is OK. If you reload the template problem disappears. || 0.5 || Gasper Jansa (Cosylab) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|APS2 || Copied record set links || Bug || When a set of records with links is copied and pasted, all the new records are linked to records in the set from which they were copied. If the link is to a record not in the set being copied, this seems the right thing to do, but if it's to a record in the set, I can't imagine a case for which this would be the desired behavior. || 0.5 || APS (David Kline) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|APS4 || Records move when db is saved || Bug || When a database is saved, records are sometimes moved around. I can't figure out what distinguishes records that get moved from those that don't, but the same recoords get moved consistently. || 0.5 || APS (David Kline) || 1 || Send us the database to reproduce and find a pattern (bug).  &lt;br /&gt;
|-&lt;br /&gt;
|12126  || Problem with hidden fields || Bug || 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. || 1 || Nick Rees (Diamond) || 1 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12124  || Objects change relative distances while being dragged together || Bug || 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. || 1.5 || Nick Rees (Diamond) || 1 || This (and 12123) seems to boil down to what internal position is stored for a component. I believe it should reflect what is displayed - so components which were last moved in snap mode should reflect the snapped position, but if you move an object in un-snapped mode it should reflect the un-snapped position. This is the most common model for drawing packages. Components should always be drawn at their internally stored position.&lt;br /&gt;
|-&lt;br /&gt;
|12127  || Wire anchors on templates are not preserved when saving || Bug || Wire anchor connectors that are connected to a template instantiation in a hierarchy don't get preserved through a save/restore cycle. || 1.5 || Nick Rees (Diamond) || 1 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|12130  || Not possible to add a connection anchor point to a wire connecting a record field and an external port or macro || Bug || 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. || 1.5 || Nick Rees (Diamond) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|8731  || VDCT: mess with the template links || Bug || When I create a template (hierarchies) and instantiate it in a bigger level template, I reorder links (macros, ports...) so that they look nice (left side, right side...). When I copy the template (CTRL+C, CTRL+V), my nice arrangement gets messed up. || 2 || Rok Sabjan (Cosylab) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|11385  || Visual DCT breaks in Mac OS 10.4 || Bug || The last build available on the web site is not compatible with the recently released Mac OS 10.4. || 3 || Steve Shoaf (APS) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|6 || Save on traverse || Feature || 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. || 0.125 || Nick Rees (Diamond) || 1 || Trivial and useful. Only have to think about the correct default.  &lt;br /&gt;
|-&lt;br /&gt;
|11 || Improve printing || Feature || Omit wire anchors on printing.  || 0.25 || Nick Rees (Diamond) || 1 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|3 || If dbd not present, DTYP information is gone || Feature || 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. || 0.5 || Cosylab (Gasper Jansa) || 1 || This is really a bug. The database should not be corrupted just because the dbd file is not found.  &lt;br /&gt;
|-&lt;br /&gt;
|4 || Make it easier to grab connectors inside objects. || Feature || 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.5 || SNS || 1 || Functionality problem! It is difficult to grab a connector if it lays under a bigger object (While the selected object is moved to front it covers the wire and connector)  &lt;br /&gt;
|-&lt;br /&gt;
|5 || Read appInclude.dbd files with #include's || Feature || Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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.) || 0.5 || SNS || 1 || The EPICS_DB_INCLUDE_PATH environment variable cannot be read by all versions of Java. Proposed that the necessary information can be passed as a parameter from the command line, and can be generated in the startup script. (The estimated time to do this any other way is large)&lt;br /&gt;
|-&lt;br /&gt;
|8 || Move text on macros  || Feature || It should be possible to place the text on macros to be on the side opposite the wire connection point || 0.5 || Nick Rees (Diamond) || 1 || Having the text on the side is useful when there is a whole line of macros stacked vertically.  &lt;br /&gt;
|-&lt;br /&gt;
|12 || Building || Feature || Make build from source easier and more reliable. (Note: This now seems to be fixed, but could be better documented) || 0.5 || Philip Taylor (OSL) || 1 || It should be possible to build VDCT without access to the Common project. Build scripts for plug-ins and VDCT-Common should also exist.  &lt;br /&gt;
|-&lt;br /&gt;
|7 || Eliminate steps in wires || Feature || 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). || 1 || Nick Rees (Diamond) || 1 || Certain objects (eg. Macro) are not of the size of the grid - but the wire connection point should line up with other wire connection points.   &lt;br /&gt;
|-&lt;br /&gt;
|9 || More wiring issues || Feature || Do not draw lines over each other, mark connections clearly different from crossings, easier way to control routing manually. || 1.5 || Ralph Lange (BESSY) || 1 || There should be a dot where-ever two wires merge to become one  &lt;br /&gt;
|-&lt;br /&gt;
|121 || Control of which side a wire connects to a record || Feature || Need better way of  controlling which side the link is coming out of. Sometimes I have difficulty getting the link to point the right way just adding new handles. || 2 || APS (David Kline) || 1 || Use Shift+right mouse button to change link direction. See related bug #12122. This is possible only if having more than one link connected, otherwise side is chosen by VDCT (but you can have control over it using wire anchors). It is not possible to handle all (everyone) wishes with automatical/manual layout. So I suggest to have automatic with manual override possible (this will require to add a additional info to the graphical data).&lt;br /&gt;
|-&lt;br /&gt;
|10 || Borders || Feature || 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) || 5 || Nick Rees (Diamond) || 1 || The border can be drawn by the tools that are already implemented in VDCT. However, imports of other vdb files currently doesn't work, and don't import graphics and text. There is also no way of grouping graphics and text so they are moved as one.&lt;br /&gt;
|-&lt;br /&gt;
|12296  || Problems with find feature in VisualDCT || Bug || &amp;quot;Find&amp;quot; feature in VDCT build 1257: Does not execute on &amp;quot;ENTER&amp;quot; key. (You have to click the start button.). Sometimes doesn't find records that actually exist (but I couldn't reproduce this on Windows). I think it should be accessed by clicking on the third tool bar button - but this button is permanently greyed out. || 0.125 || Matt Rippa (JAC) || 2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12128  || Font size for template name too large || Bug || The font used for the name of a template instantiated in a hierarchy is too large || 0.25 || Nick Rees (Diamond) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|12125  || Awkward kink in wires when a connector anchor is added || Bug || Near-vertical wires shouldn't get an awkward kink in them when you add a connection anchor. This isn't intuitive. || 0.5 || Nick Rees (Diamond) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|5037  || Printing issues || Bug || Printing is a serious problem.  There seems to be no way to print a moderate size database.  The large, flatbed printers do not show as printer options.  The options seem to be the same for all printers, even though the printers have different capabilities.  When printing to smaller paper, the text is not readable or not there. || 3 || Ned Arnold (APS) || 2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|14 || Visual cue when making links || Feature || When creating a link between two records, you use the context 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. || 0.25 || Andrew Johnson (APS) || 2 || Reasonable suggestion  &lt;br /&gt;
|-&lt;br /&gt;
|15 || Highlight which record is inspected || Feature || Select or highlight the corresponding record when the Inspector selects or changes records. || 1 || Matt Rippa (JAC) || 2 || An additional suggestion is to add a &amp;quot;Centre&amp;quot; button to the Inspector window which, when pressed centers the record on the screen.&lt;br /&gt;
|-&lt;br /&gt;
|10333  || On small zoom the records should blow up to become readable || Feature || I'm new to VDCT but I think it would make it much easier to follow a database if you could zoom way out and as you rolled the mouse over a record it blew up to become readable . Similar to the way a mac does the icon bar. This way you could see the flow of links without zooming in and out all the time. || 1 || Rich Diviero (APS) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|13 || Morph a template || Feature || Add the ability to morph a template in the same way you can morph a record. || 1 || Nick Rees (Diamond) || 2 || Reasonable suggestion  &lt;br /&gt;
|-&lt;br /&gt;
|16 || Multiple windows || Feature || 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) || 2 || Enable copy/paste between different windows. Use MDI.  &lt;br /&gt;
|-&lt;br /&gt;
|127 || Fields with two connectors ||  || Value fields can only be linked to from one side, so if you have a database in which record A writes to record B, and record C reads from record B, there's no satisfactory way to show it. (gdct had &amp;quot;hooks&amp;quot; on both sides of target fields, and this was very helpful for complex databases.) || 2 || APS (David Kline) || 2 || This is a useful new feature  &lt;br /&gt;
|-&lt;br /&gt;
|17 || External query API || Feature || 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 || 3 || This can be implemented as a plug-in  &lt;br /&gt;
|-&lt;br /&gt;
|18 || MACRO enhancements || Feature || 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) || 3 || This is useful if you have to change all values. Only the &amp;quot;basenum&amp;quot; would be changed and all numbers would change. This has to be discussed with EPICS community! &lt;br /&gt;
|-&lt;br /&gt;
|19 || File Format || Feature || Clarify the file format so the graphics information obeys a defined standard (I don't like embedding things in comments). Rationalise the various ways of template expansion across all EPICS tools. Develop sandards for storing meta-data (for graphics, archiver, alarm handler, high-level device interfaces etc). ||  || Nick Rees (Diamond) || 3 || Though it is a VDCT main feature to have only one file it is not good practice to store important information in the comments  &lt;br /&gt;
|-&lt;br /&gt;
|8700  || Port problem in VisualDCT || Bug || I really dont't know how to reproduce it, but I was doing port in variable.template and then I want to go one level up, and it crashed. It showed empty window afterwards and it didn't work to reload the file again. There is howerver one strange thing in this base from then on. It is in variables.template. One port is invisible and becomes invisible only if you focus on dol field of the related record. || Unknown || Gasper Jansa (Cosylab) || 4 || How to solve this, if not possible to reproduce. I got the same (if not that) report from SNS, but we failed to reproduce (after some additional fix).&lt;br /&gt;
|-&lt;br /&gt;
|22 || Display less info at small zooms || Feature || When zoom level &amp;lt; 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). || 0.5 || Cosylab (Gasper Jansa) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|23 || If too long, display only part of record name || Feature || 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. || 0.5 || Cosylab (Iztok Krapec) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|21 || Disable a record || Feature || 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) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|24 || Hierarchy delimiters || Feature || 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 recognizes 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). || 1 || Nick Rees (Diamond) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|27 || Specifiable background color || Feature || Ability to customize the background color || 1 || Cosylab (Krapec) || 4 || There would be problems with printing since the default background print colour is white, not black. &lt;br /&gt;
|-&lt;br /&gt;
|29 || Colouring of the records || Feature || It should be possible to change colours of the records || 1 || Cosylab (Iztok Krapec) || 4 || Again, ensuring there are no colour clashes is not so easy.&lt;br /&gt;
|-&lt;br /&gt;
|28 || Detachable preview window || Feature || At the moment, database 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 || 1.5 || Cosylab (Iztok Krapec) || 4 || Not very important but could be done.  &lt;br /&gt;
|-&lt;br /&gt;
|20 || Debug plug-in and hierarchies || Feature || Make debug plug-in work on hierarchical databases (now it works only on flat databases). || 5 || SNS || 4 || This is a good idea, but it is unrelated to making VDCT a good visual database editor. Hence a longer term feature&lt;br /&gt;
|-&lt;br /&gt;
|26 || Enhanced print preview and editor || Feature || 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 || 4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|191 || Non-heirarchical off page links/page formatting || Feature || Instead of making a large canvas and printing many tiled pages, have a non-heirachical link to another page so you don't have to glue many pages together after printing out a big database on A4. Each non-heirarchical page can be opened in its own window, instead of having one huge canvas Each link that goes out of the page should be marked automatically by VDCT || 20 || BESSY || 3 || This is a nice feature, but it is too big to implement at this time.&lt;br /&gt;
|-&lt;br /&gt;
|25 || Debugging features || Feature || 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. ||  || SNS || 4 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|12294  || FLNK'ing not possible from stand alone record || Bug || It's possbile to get into a state where the FLNK option is not available when you right click a record. Certainly if the record is already FLNK'ed this is what you want. But sometimes there is a stand alone record and FLNKing is not an option in the popup. ||  || Matt Rippa (JAC) || 5 || For the moment, we'll assume that this is because FLNK is actually there, but hidden&lt;br /&gt;
|-&lt;br /&gt;
|45 || Printing problems || Feature || Print preview needs to be improved.  Printing options such as &amp;quot;extents&amp;quot; where it prints the entire drawing, &amp;quot;window&amp;quot; where it prints an area you can choose with the mouse, or &amp;quot;display&amp;quot; where it prints whatever is on the screen would help. || 0.75 || APS (David Kline) || 5 || See related feature request #36. There is a workaround for both &amp;quot;Print extents&amp;quot; and &amp;quot;Print Selection&amp;quot; and &amp;quot;Print display&amp;quot; is the default.&lt;br /&gt;
|-&lt;br /&gt;
|42 || Connection directions || Feature || Show direction of connections. || 1 || SNS || 5 || Isn't current direction indication 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)?&lt;br /&gt;
|-&lt;br /&gt;
|44 || Preserve record link order on copy || Feature || When a record is copied, the order of the links is sometimes not preserved, so it may take many menu selections to make a copy that can be used. || 1 || APS (David Kline) || 5 || Probably a repeat of bug #8731 - except that relates to templates, not records.&lt;br /&gt;
|-&lt;br /&gt;
|34 || Substitution file editor || Feature || 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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values. || 5 || Cosylab (Igor Verstovsek) || 5 || VDCT is not a template file editor. It provides a different model for template instantiation. Use a normal editor for this.  &lt;br /&gt;
|-&lt;br /&gt;
|41 || Allow drawing capabilities for template shapes. || Feature || 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 || 5 || Not essential.  &lt;br /&gt;
|-&lt;br /&gt;
|40 || Different shapes for different record types || Feature || 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 || 5 || Not essential.  &lt;br /&gt;
|-&lt;br /&gt;
|43 || Nicer record symbols || Feature || A record should be represented by an arbitrary polygon. Each record has a default shape, but it should be possible to change it. More important than changing the shape is the possibility to change the size of the polygon. This will allow the designer to create enough space for all links from/to this record. All links must be movable along the polygon outline. This will allow the designer to position all inputs on the left and all outputs on the right, for example || 15 || BESSY || 5 ||This is similar to the two requests submitted by SNS for allowing different shapes for different record types. Hence, I have pencilled in a 15 day estimate. If this is correct, I think it should be funded separately if demand exists. &lt;br /&gt;
|-&lt;br /&gt;
|30 || Generate files with .template extension. || Feature || At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file. (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.) ||  || SNS || 5 || You can manually type &amp;quot;.template&amp;quot; as the file extension, so you can effectively do this. I also want to focus on implementing the recursive hierarchy of VDCT, and this may become preferred over templates.&lt;br /&gt;
|-&lt;br /&gt;
|31 || Cloning a template || Feature || Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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. ||  || SNS || 5 || &amp;quot;Save as&amp;quot; provides 50% of the functionality required. The other 50% would come from providing the ability to morph a template.&lt;br /&gt;
|-&lt;br /&gt;
|32 || Allow connections via labels just outside the record || Feature || Instead of having a connection that snakes all around a complicated diagram, just connect to a tab with a label (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram. ||  || SNS || 5 || It is already possible to make a labeled connection.  &lt;br /&gt;
|-&lt;br /&gt;
|33 || Dialog with a list of records in a template || Feature || In case of a hierarchical template, the representation of all the records should be a tree ||  || Cosylab (Krapec) || 5 || Spreadsheet view solves this request as well.  &lt;br /&gt;
|-&lt;br /&gt;
|35 || Resize drawing objects || Feature || 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) || 5 || The size of drawings can be changed by dragging the right bottom corner. It is not clear what is meant by one set of small symbols - this seems to be a reflection of a Capfast bias - VDCT has a different model for symbols.  &lt;br /&gt;
|-&lt;br /&gt;
|36 || Improve printing || Feature || print all, print current screen ||  || Ralph Lange (BESSY) || 5 || Printing is currently always &amp;quot;print current screen&amp;quot;. To print all type Ctrl-A, Shift-space, to zoom all, then print.&lt;br /&gt;
|-&lt;br /&gt;
|37 || Change record type || Feature || Ability to change a record type (i.e., calc to sub) where the values for common fields and the record name are retained. ||  || Stephanie Allison (SLAC) || 5 || This is done by &amp;quot;morph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|38 || Quick Zoom || Feature || Full View keyboard short cut. (capfast &amp;quot;V-V&amp;quot; equivalent) ||  || Matt Rippa (JAC) || 5 || Done. Use Ctrl-A, Shift-Space&lt;br /&gt;
|-&lt;br /&gt;
|39 || Keyboard pan || Feature || Move or pan canvas with arrows (or some key combination independent of the mouse). ||  || Matt Rippa (JAC) || 5 || Done. Use Ctrl-Up/Down/Left/Right Arrow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=341</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=341"/>
		<updated>2005-07-06T13:51:08Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Fixed table syntax&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== Proposed Bug-Fix and Schematic Capture development package ==&lt;br /&gt;
&lt;br /&gt;
A result of a poll of the community indicated that adoption would be far more widespread if the largest bugs were removed and work was done to upgrade VDCT's capability as a basic spreadsheet package. A consolidated list of bugs and feature requests have been drawn up and priorities assigned on this basis. Specifically, the priorities are:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Priority !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0 || Probably funded via another means &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Functionality essential to a schematic capture tool - i.e. it would be seen as a bug in a traditional schematic capture tool&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Useful functionality that improves VDCT as a database configuration tool&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Useful functionality, but may require greater thought or co-ordination with EPICS V4 development&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Potentially useful functionality, but not too essential to the core function of a DCT. Also irreproducible bugs&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Functionality that is not required since the solution is already available or provided in another way. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bearing this priority list in mind, we have decided to develop a package aimed at addressing priorities 1 and 2 only. It is interesting to note that even this limited package amounts to 41 work days, which is considerably larger tham most of the other VDCT development packages - highlighting that the devil is in the details.&lt;br /&gt;
&lt;br /&gt;
The consolidated list of bugs and features is as follows:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Bug # !! Name !! Bug or Feature !! Description !! Time Estimate (days) !! Proposed by !! Priority !! Comment  &lt;br /&gt;
|-&lt;br /&gt;
|1021 || Make a non-modal property dialog as a separate tiled or floating window || Feature || As it is e.g. in Word for setting diverse properties When a record is selected, it's properties are shown in this windows; If several records are selected, only the properties that are common to all are shown and by entering a value, it is applied to all records; Two-way editing: if a new link is entered in the property sheet, it is also displayed on the canvas. This is very useful for people working with two screens, so they don't have to scroll around the canvas || 3 || BESSY ||0 || Do not understand. If I add  an inspector a feature of point 3, all this will be covered. Is this true? Estimate for point 3 given (for inspector).&lt;br /&gt;
|-&lt;br /&gt;
|1 || Spreadsheet view and editor for records and templates || Feature || Provide a spread sheet view for the records. Provide one table for each record and template 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) || 0 || If multiple record types are selected, the inspector could display the intersection set of available editable fields. &lt;br /&gt;
|-&lt;br /&gt;
|2 || Improve documentation. || Feature || 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 || 0 || Improve the documentation from the user point of view. This may be done by a separate contract  &lt;br /&gt;
|-&lt;br /&gt;
|12121  || Addpath command functionality || Bug || 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 &amp;quot;${path}:/new/directory/here&amp;quot;. (Note: The addpath functionality as implemented is potentially useful, but is wrong - it should be implemented as a different command and built into dbExpand). || 0.25 || Nick Rees (Diamond) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|12369  || Import of databases doesn't work || Bug || If you try and import a database into another database it simply doesn't work. || 0.25 || Nick Rees (Diamond) || 1 ||||&lt;br /&gt;
|-&lt;br /&gt;
|APS1 || Hide value on copied records || Bug || When a record is copied, the setting &amp;quot;Hide value of valid links&amp;quot;, and per-field hide-value settings made in Inspector are not honored until the Settings dialog is called up and put away, or the file is saved and reopened. || 0.25 || APS (David Kline) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|APS3 || Position of pasted record || Bug || When a record is pasted, it frequently is placed *far* off screen, so you have to zoom out, grab the record, drag it to near where you were working, and zoom back in. This doesn't always happen, and I haven't been able to figure out what triggers the behavior. || 0.25 || APS (David Kline) || 1 || The inconsistency is certainly unacceptable from a user interface point of view, but it may not be a true bug. Should be fixed and record should be pasted at the mouse focus.&lt;br /&gt;
|-&lt;br /&gt;
|12122  || Macro orientation when connection more than one wire || Bug || 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. || 0.5 || Nick Rees (Diamond) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|12123  || Issues when un-doing a move || Bug || Fix problems with undo/redo. Sometimes when you undo a move the objects don't go back in the same place. || 0.5 || Nick Rees (Diamond) || 1 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12129  || SCAN field is not a valid input when connecting from a port || Bug || 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. || 0.5 || Nick Rees (Diamond) || 1|| ||  &lt;br /&gt;
|-&lt;br /&gt;
|8596  || Bug in Visual DCT morph || Bug || If you morph a record to something and you do 'undo' afther, the record goes back to previous record type but fiedls that are common to both records type remain on record. That means that you have two DESC fields and two PINI ... This is only display issue becaiuse saved file is OK. If you reload the template problem disappears. || 0.5 || Gasper Jansa (Cosylab) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|APS2 || Copied record set links || Bug || When a set of records with links is copied and pasted, all the new records are linked to records in the set from which they were copied. If the link is to a record not in the set being copied, this seems the right thing to do, but if it's to a record in the set, I can't imagine a case for which this would be the desired behavior. || 0.5 || APS (David Kline) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|APS4 || Records move when db is saved || Bug || When a database is saved, records are sometimes moved around. I can't figure out what distinguishes records that get moved from those that don't, but the same recoords get moved consistently. || 0.5 || APS (David Kline) || 1 || Send us the database to reproduce and find a pattern (bug).  &lt;br /&gt;
|-&lt;br /&gt;
|12126  || Problem with hidden fields || Bug || 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. || 1 || Nick Rees (Diamond) || 1 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12124  || Objects change relative distances while being dragged together || Bug || 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. || 1.5 || Nick Rees (Diamond) || 1 || This (and 12123) seems to boil down to what internal position is stored for a component. I believe it should reflect what is displayed - so components which were last moved in snap mode should reflect the snapped position, but if you move an object in un-snapped mode it should reflect the un-snapped position. This is the most common model for drawing packages. Components should always be drawn at their internally stored position.&lt;br /&gt;
|-&lt;br /&gt;
|12127  || Wire anchors on templates are not preserved when saving || Bug || Wire anchor connectors that are connected to a template instantiation in a hierarchy don't get preserved through a save/restore cycle. || 1.5 || Nick Rees (Diamond) || 1 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|12130  || Not possible to add a connection anchor point to a wire connecting a record field and an external port or macro || Bug || 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. || 1.5 || Nick Rees (Diamond) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|8731  || VDCT: mess with the template links || Bug || When I create a template (hierarchies) and instantiate it in a bigger level template, I reorder links (macros, ports...) so that they look nice (left side, right side...). When I copy the template (CTRL+C, CTRL+V), my nice arrangement gets messed up. || 2 || Rok Sabjan (Cosylab) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|11385  || Visual DCT breaks in Mac OS 10.4 || Bug || The last build available on the web site is not compatible with the recently released Mac OS 10.4. || 3 || Steve Shoaf (APS) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|6 || Save on traverse || Feature || 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. || 0.125 || Nick Rees (Diamond) || 1 || Trivial and useful. Only have to think about the correct default.  &lt;br /&gt;
|-&lt;br /&gt;
|11 || Improve printing || Feature || Omit wire anchors on printing.  || 0.25 || Nick Rees (Diamond) || 1 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|3 || If dbd not present, DTYP information is gone || Feature || 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. || 0.5 || Cosylab (Gasper Jansa) || 1 || This is really a bug. The database should not be corrupted just because the dbd file is not found.  &lt;br /&gt;
|-&lt;br /&gt;
|4 || Make it easier to grab connectors inside objects. || Feature || 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.5 || SNS || 1 || Functionality problem! It is difficult to grab a connector if it lays under a bigger object (While the selected object is moved to front it covers the wire and connector)  &lt;br /&gt;
|-&lt;br /&gt;
|5 || Read appInclude.dbd files with #include's || Feature || Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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.) || 0.5 || SNS || 1 || The EPICS_DB_INCLUDE_PATH environment variable cannot be read by all versions of Java. Proposed that the necessary information can be passed as a parameter from the command line, and can be generated in the startup script. (The estimated time to do this any other way is large)&lt;br /&gt;
|-&lt;br /&gt;
|8 || Move text on macros  || Feature || It should be possible to place the text on macros to be on the side opposite the wire connection point || 0.5 || Nick Rees (Diamond) || 1 || Having the text on the side is useful when there is a whole line of macros stacked vertically.  &lt;br /&gt;
|-&lt;br /&gt;
|12 || Building || Feature || Make build from source easier and more reliable. (Note: This now seems to be fixed, but could be better documented) || 0.5 || Philip Taylor (OSL) || 1 || It should be possible to build VDCT without access to the Common project. Build scripts for plug-ins and VDCT-Common should also exist.  &lt;br /&gt;
|-&lt;br /&gt;
|7 || Eliminate steps in wires || Feature || 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). || 1 || Nick Rees (Diamond) || 1 || Certain objects (eg. Macro) are not of the size of the grid - but the wire connection point should line up with other wire connection points.   &lt;br /&gt;
|-&lt;br /&gt;
|9 || More wiring issues || Feature || Do not draw lines over each other, mark connections clearly different from crossings, easier way to control routing manually. || 1.5 || Ralph Lange (BESSY) || 1 || There should be a dot where-ever two wires merge to become one  &lt;br /&gt;
|-&lt;br /&gt;
|121 || Control of which side a wire connects to a record || Feature || Need better way of  controlling which side the link is coming out of. Sometimes I have difficulty getting the link to point the right way just adding new handles. || 2 || APS (David Kline) || 1 || Use Shift+right mouse button to change link direction. See related bug #12122. This is possible only if having more than one link connected, otherwise side is chosen by VDCT (but you can have control over it using wire anchors). It is not possible to handle all (everyone) wishes with automatical/manual layout. So I suggest to have automatic with manual override possible (this will require to add a additional info to the graphical data).&lt;br /&gt;
|-&lt;br /&gt;
|10 || Borders || Feature || 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) || 5 || Nick Rees (Diamond) || 1 || The border can be drawn by the tools that are already implemented in VDCT. However, imports of other vdb files currently doesn't work, and don't import graphics and text. There is also no way of grouping graphics and text so they are moved as one.&lt;br /&gt;
|-&lt;br /&gt;
|12296  || Problems with find feature in VisualDCT || Bug || &amp;quot;Find&amp;quot; feature in VDCT build 1257: Does not execute on &amp;quot;ENTER&amp;quot; key. (You have to click the start button.). Sometimes doesn't find records that actually exist (but I couldn't reproduce this on Windows). I think it should be accessed by clicking on the third tool bar button - but this button is permanently greyed out. || 0.125 || Matt Rippa (JAC) || 2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12128  || Font size for template name too large || Bug || The font used for the name of a template instantiated in a hierarchy is too large || 0.25 || Nick Rees (Diamond) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|12125  || Awkward kink in wires when a connector anchor is added || Bug || Near-vertical wires shouldn't get an awkward kink in them when you add a connection anchor. This isn't intuitive. || 0.5 || Nick Rees (Diamond) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|5037  || Printing issues || Bug || Printing is a serious problem.  There seems to be no way to print a moderate size database.  The large, flatbed printers do not show as printer options.  The options seem to be the same for all printers, even though the printers have different capabilities.  When printing to smaller paper, the text is not readable or not there. || 3 || Ned Arnold (APS) || 2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|14 || Visual cue when making links || Feature || When creating a link between two records, you use the context 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. || 0.25 || Andrew Johnson (APS) || 2 || Reasonable suggestion  &lt;br /&gt;
|-&lt;br /&gt;
|15 || Highlight which record is inspected || Feature || Select or highlight the corresponding record when the Inspector selects or changes records. || 1 || Matt Rippa (JAC) || 2 || An additional suggestion is to add a &amp;quot;Centre&amp;quot; button to the Inspector window which, when pressed centers the record on the screen.&lt;br /&gt;
|-&lt;br /&gt;
|10333  || On small zoom the records should blow up to become readable || Feature || I'm new to VDCT but I think it would make it much easier to follow a database if you could zoom way out and as you rolled the mouse over a record it blew up to become readable . Similar to the way a mac does the icon bar. This way you could see the flow of links without zooming in and out all the time. || 1 || Rich Diviero (APS) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|13 || Morph a template || Feature || Add the ability to morph a template in the same way you can morph a record. || 1 || Nick Rees (Diamond) || 2 || Reasonable suggestion  &lt;br /&gt;
|-&lt;br /&gt;
|16 || Multiple windows || Feature || 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) || 2 || Enable copy/paste between different windows. Use MDI.  &lt;br /&gt;
|-&lt;br /&gt;
|127 || Fields with two connectors ||  || Value fields can only be linked to from one side, so if you have a database in which record A writes to record B, and record C reads from record B, there's no satisfactory way to show it. (gdct had &amp;quot;hooks&amp;quot; on both sides of target fields, and this was very helpful for complex databases.) || 2 || APS (David Kline) || 2 || This is a useful new feature  &lt;br /&gt;
|-&lt;br /&gt;
|17 || External query API || Feature || 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 || 3 || This can be implemented as a plug-in  &lt;br /&gt;
|-&lt;br /&gt;
|18 || MACRO enhancements || Feature || 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) || 3 || This is useful if you have to change all values. Only the &amp;quot;basenum&amp;quot; would be changed and all numbers would change. This has to be discussed with EPICS community! &lt;br /&gt;
|-&lt;br /&gt;
|19 || File Format || Feature || Clarify the file format so the graphics information obeys a defined standard (I don't like embedding things in comments). Rationalise the various ways of template expansion across all EPICS tools. Develop sandards for storing meta-data (for graphics, archiver, alarm handler, high-level device interfaces etc). ||  || Nick Rees (Diamond) || 3 || Though it is a VDCT main feature to have only one file it is not good practice to store important information in the comments  &lt;br /&gt;
|-&lt;br /&gt;
|8700  || Port problem in VisualDCT || Bug || I really dont't know how to reproduce it, but I was doing port in variable.template and then I want to go one level up, and it crashed. It showed empty window afterwards and it didn't work to reload the file again. There is howerver one strange thing in this base from then on. It is in variables.template. One port is invisible and becomes invisible only if you focus on dol field of the related record. || Unknown || Gasper Jansa (Cosylab) || 4 || How to solve this, if not possible to reproduce. I got the same (if not that) report from SNS, but we failed to reproduce (after some additional fix).&lt;br /&gt;
|-&lt;br /&gt;
|22 || Display less info at small zooms || Feature || When zoom level &amp;lt; 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). || 0.5 || Cosylab (Gasper Jansa) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|23 || If too long, display only part of record name || Feature || 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. || 0.5 || Cosylab (Iztok Krapec) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|21 || Disable a record || Feature || 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) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|24 || Hierarchy delimiters || Feature || 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 recognizes 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). || 1 || Nick Rees (Diamond) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|27 || Specifiable background color || Feature || Ability to customize the background color || 1 || Cosylab (Krapec) || 4 || There would be problems with printing since the default background print colour is white, not black. &lt;br /&gt;
|-&lt;br /&gt;
|29 || Colouring of the records || Feature || It should be possible to change colours of the records || 1 || Cosylab (Iztok Krapec) || 4 || Again, ensuring there are no colour clashes is not so easy.&lt;br /&gt;
|-&lt;br /&gt;
|28 || Detachable preview window || Feature || At the moment, database 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 || 1.5 || Cosylab (Iztok Krapec) || 4 || Not very important but could be done.  &lt;br /&gt;
|-&lt;br /&gt;
|20 || Debug plug-in and hierarchies || Feature || Make debug plug-in work on hierarchical databases (now it works only on flat databases). || 5 || SNS || 4 || This is a good idea, but it is unrelated to making VDCT a good visual database editor. Hence a longer term feature&lt;br /&gt;
|-&lt;br /&gt;
|26 || Enhanced print preview and editor || Feature || 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 || 4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|191 || Non-heirarchical off page links/page formatting || Feature || Instead of making a large canvas and printing many tiled pages, have a non-heirachical link to another page so you don't have to glue many pages together after printing out a big database on A4. Each non-heirarchical page can be opened in its own window, instead of having one huge canvas Each link that goes out of the page should be marked automatically by VDCT || 20 || BESSY || 3 || This is a nice feature, but it is too big to implement at this time.&lt;br /&gt;
|-&lt;br /&gt;
|25 || Debugging features || Feature || 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. ||  || SNS || 4 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|12294  || FLNK'ing not possible from stand alone record || Bug || It's possbile to get into a state where the FLNK option is not available when you right click a record. Certainly if the record is already FLNK'ed this is what you want. But sometimes there is a stand alone record and FLNKing is not an option in the popup. ||  || Matt Rippa (JAC) || 5 || For the moment, we'll assume that this is because FLNK is actually there, but hidden&lt;br /&gt;
|-&lt;br /&gt;
|45 || Printing problems || Feature || Print preview needs to be improved.  Printing options such as &amp;quot;extents&amp;quot; where it prints the entire drawing, &amp;quot;window&amp;quot; where it prints an area you can choose with the mouse, or &amp;quot;display&amp;quot; where it prints whatever is on the screen would help. || 0.75 || APS (David Kline) || 5 || See related feature request #36. There is a workaround for both &amp;quot;Print extents&amp;quot; and &amp;quot;Print Selection&amp;quot; and &amp;quot;Print display&amp;quot; is the default.&lt;br /&gt;
|-&lt;br /&gt;
|42 || Connection directions || Feature || Show direction of connections. || 1 || SNS || 5 || Isn't current direction indication 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)?&lt;br /&gt;
|-&lt;br /&gt;
|44 || Preserve record link order on copy || Feature || When a record is copied, the order of the links is sometimes not preserved, so it may take many menu selections to make a copy that can be used. || 1 || APS (David Kline) || 5 || Probably a repeat of bug #8731 - except that relates to templates, not records.&lt;br /&gt;
|-&lt;br /&gt;
|34 || Substitution file editor || Feature || 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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values. || 5 || Cosylab (Igor Verstovsek) || 5 || VDCT is not a template file editor. It provides a different model for template instantiation. Use a normal editor for this.  &lt;br /&gt;
|-&lt;br /&gt;
|41 || Allow drawing capabilities for template shapes. || Feature || 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 || 5 || Not essential.  &lt;br /&gt;
|-&lt;br /&gt;
|40 || Different shapes for different record types || Feature || 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 || 5 || Not essential.  &lt;br /&gt;
|-&lt;br /&gt;
|43 || Nicer record symbols || Feature || A record should be represented by an arbitrary polygon. Each record has a default shape, but it should be possible to change it. More important than changing the shape is the possibility to change the size of the polygon. This will allow the designer to create enough space for all links from/to this record. All links must be movable along the polygon outline. This will allow the designer to position all inputs on the left and all outputs on the right, for example || 15 || BESSY || 5 ||This is similar to the two requests submitted by SNS for allowing different shapes for different record types. Hence, I have pencilled in a 15 day estimate. If this is correct, I think it should be funded separately if demand exists. &lt;br /&gt;
|-&lt;br /&gt;
|30 || Generate files with .template extension. || Feature || At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file. (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.) ||  || SNS || 5 || You can manually type &amp;quot;.template&amp;quot; as the file extension, so you can effectively do this. I also want to focus on implementing the recursive hierarchy of VDCT, and this may become preferred over templates.&lt;br /&gt;
|-&lt;br /&gt;
|31 || Cloning a template || Feature || Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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. ||  || SNS || 5 || &amp;quot;Save as&amp;quot; provides 50% of the functionality required. The other 50% would come from providing the ability to morph a template.&lt;br /&gt;
|-&lt;br /&gt;
|32 || Allow connections via labels just outside the record || Feature || Instead of having a connection that snakes all around a complicated diagram, just connect to a tab with a label (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram. ||  || SNS || 5 || It is already possible to make a labeled connection.  &lt;br /&gt;
|-&lt;br /&gt;
|33 || Dialog with a list of records in a template || Feature || In case of a hierarchical template, the representation of all the records should be a tree ||  || Cosylab (Krapec) || 5 || Spreadsheet view solves this request as well.  &lt;br /&gt;
|-&lt;br /&gt;
|35 || Resize drawing objects || Feature || 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) || 5 || The size of drawings can be changed by dragging the right bottom corner. It is not clear what is meant by one set of small symbols - this seems to be a reflection of a Capfast bias - VDCT has a different model for symbols.  &lt;br /&gt;
|-&lt;br /&gt;
|36 || Improve printing || Feature || print all, print current screen ||  || Ralph Lange (BESSY) || 5 || Printing is currently always &amp;quot;print current screen&amp;quot;. To print all type Ctrl-A, Shift-space, to zoom all, then print.&lt;br /&gt;
|-&lt;br /&gt;
|37 || Change record type || Feature || Ability to change a record type (i.e., calc to sub) where the values for common fields and the record name are retained. ||  || Stephanie Allison (SLAC) || 5 || This is done by &amp;quot;morph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|38 || Quick Zoom || Feature || Full View keyboard short cut. (capfast &amp;quot;V-V&amp;quot; equivalent) ||  || Matt Rippa (JAC) || 5 || Done. Use Ctrl-A, Shift-Space&lt;br /&gt;
|-&lt;br /&gt;
|39 || Keyboard pan || Feature || Move or pan canvas with arrows (or some key combination independent of the mouse). ||  || Matt Rippa (JAC) || 5 || Done. Use Ctrl-Up/Down/Left/Right Arrow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=340</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=340"/>
		<updated>2005-07-06T13:49:44Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Fixed table syntax&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== Proposed Bug-Fix and Schematic Capture development package ==&lt;br /&gt;
&lt;br /&gt;
A result of a poll of the community indicated that adoption would be far more widespread if the largest bugs were removed and work was done to upgrade VDCT's capability as a basic spreadsheet package. A consolidated list of bugs and feature requests have been drawn up and priorities assigned on this basis. Specifically, the priorities are:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Priority !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0 || Probably funded via another means &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Functionality essential to a schematic capture tool - i.e. it would be seen as a bug in a traditional schematic capture tool&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Useful functionality that improves VDCT as a database configuration tool&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Useful functionality, but may require greater thought or co-ordination with EPICS V4 development&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Potentially useful functionality, but not too essential to the core function of a DCT. Also irreproducible bugs&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Functionality that is not required since the solution is already available or provided in another way. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bearing this priority list in mind, we have decided to develop a package aimed at addressing priorities 1 and 2 only. It is interesting to note that even this limited package amounts to 41 work days, which is considerably larger tham most of the other VDCT development packages - highlighting that the devil is in the details.&lt;br /&gt;
&lt;br /&gt;
The consolidated list of bugs and features is as follows:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Bug # !! Name !! Bug or Feature !! Description !! Time Estimate (days) !! Proposed by !! Priority !! Comment  &lt;br /&gt;
|-&lt;br /&gt;
|1021 || Make a non-modal property dialog as a separate tiled or floating window || Feature || As it is e.g. in Word for setting diverse properties When a record is selected, it's properties are shown in this windows; If several records are selected, only the properties that are common to all are shown and by entering a value, it is applied to all records; Two-way editing: if a new link is entered in the property sheet, it is also displayed on the canvas. This is very useful for people working with two screens, so they don't have to scroll around the canvas || 3 || 0 || BESSY || Do not understand. If I add  an inspector a feature of point 3, all this will be covered. Is this true? Estimate for point 3 given (for inspector).&lt;br /&gt;
|-&lt;br /&gt;
|1 || Spreadsheet view and editor for records and templates || Feature || Provide a spread sheet view for the records. Provide one table for each record and template 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) || 0 || If multiple record types are selected, the inspector could display the intersection set of available editable fields. &lt;br /&gt;
|-&lt;br /&gt;
|2 || Improve documentation. || Feature || 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 || 0 || Improve the documentation from the user point of view. This may be done by a separate contract  &lt;br /&gt;
|-&lt;br /&gt;
|12121  || Addpath command functionality || Bug || 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 &amp;quot;${path}:/new/directory/here&amp;quot;. (Note: The addpath functionality as implemented is potentially useful, but is wrong - it should be implemented as a different command and built into dbExpand). || 0.25 || Nick Rees (Diamond) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|12369  || Import of databases doesn't work || Bug || If you try and import a database into another database it simply doesn't work. || 0.25 || Nick Rees (Diamond) || 1 ||||&lt;br /&gt;
|-&lt;br /&gt;
|APS1 || Hide value on copied records || Bug || When a record is copied, the setting &amp;quot;Hide value of valid links&amp;quot;, and per-field hide-value settings made in Inspector are not honored until the Settings dialog is called up and put away, or the file is saved and reopened. || 0.25 || APS (David Kline) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|APS3 || Position of pasted record || Bug || When a record is pasted, it frequently is placed *far* off screen, so you have to zoom out, grab the record, drag it to near where you were working, and zoom back in. This doesn't always happen, and I haven't been able to figure out what triggers the behavior. || 0.25 || APS (David Kline) || 1 || The inconsistency is certainly unacceptable from a user interface point of view, but it may not be a true bug. Should be fixed and record should be pasted at the mouse focus.&lt;br /&gt;
|-&lt;br /&gt;
|12122  || Macro orientation when connection more than one wire || Bug || 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. || 0.5 || Nick Rees (Diamond) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|12123  || Issues when un-doing a move || Bug || Fix problems with undo/redo. Sometimes when you undo a move the objects don't go back in the same place. || 0.5 || Nick Rees (Diamond) || 1 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12129  || SCAN field is not a valid input when connecting from a port || Bug || 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. || 0.5 || Nick Rees (Diamond) || 1|| ||  &lt;br /&gt;
|-&lt;br /&gt;
|8596  || Bug in Visual DCT morph || Bug || If you morph a record to something and you do 'undo' afther, the record goes back to previous record type but fiedls that are common to both records type remain on record. That means that you have two DESC fields and two PINI ... This is only display issue becaiuse saved file is OK. If you reload the template problem disappears. || 0.5 || Gasper Jansa (Cosylab) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|APS2 || Copied record set links || Bug || When a set of records with links is copied and pasted, all the new records are linked to records in the set from which they were copied. If the link is to a record not in the set being copied, this seems the right thing to do, but if it's to a record in the set, I can't imagine a case for which this would be the desired behavior. || 0.5 || APS (David Kline) || 1 ||   ||&lt;br /&gt;
|-&lt;br /&gt;
|APS4 || Records move when db is saved || Bug || When a database is saved, records are sometimes moved around. I can't figure out what distinguishes records that get moved from those that don't, but the same recoords get moved consistently. || 0.5 || APS (David Kline) || 1 || Send us the database to reproduce and find a pattern (bug).  &lt;br /&gt;
|-&lt;br /&gt;
|12126  || Problem with hidden fields || Bug || 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. || 1 || Nick Rees (Diamond) || 1 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12124  || Objects change relative distances while being dragged together || Bug || 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. || 1.5 || Nick Rees (Diamond) || 1 || This (and 12123) seems to boil down to what internal position is stored for a component. I believe it should reflect what is displayed - so components which were last moved in snap mode should reflect the snapped position, but if you move an object in un-snapped mode it should reflect the un-snapped position. This is the most common model for drawing packages. Components should always be drawn at their internally stored position.&lt;br /&gt;
|-&lt;br /&gt;
|12127  || Wire anchors on templates are not preserved when saving || Bug || Wire anchor connectors that are connected to a template instantiation in a hierarchy don't get preserved through a save/restore cycle. || 1.5 || Nick Rees (Diamond) || 1 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|12130  || Not possible to add a connection anchor point to a wire connecting a record field and an external port or macro || Bug || 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. || 1.5 || Nick Rees (Diamond) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|8731  || VDCT: mess with the template links || Bug || When I create a template (hierarchies) and instantiate it in a bigger level template, I reorder links (macros, ports...) so that they look nice (left side, right side...). When I copy the template (CTRL+C, CTRL+V), my nice arrangement gets messed up. || 2 || Rok Sabjan (Cosylab) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|11385  || Visual DCT breaks in Mac OS 10.4 || Bug || The last build available on the web site is not compatible with the recently released Mac OS 10.4. || 3 || Steve Shoaf (APS) || 1 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|6 || Save on traverse || Feature || 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. || 0.125 || Nick Rees (Diamond) || 1 || Trivial and useful. Only have to think about the correct default.  &lt;br /&gt;
|-&lt;br /&gt;
|11 || Improve printing || Feature || Omit wire anchors on printing.  || 0.25 || Nick Rees (Diamond) || 1 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|3 || If dbd not present, DTYP information is gone || Feature || 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. || 0.5 || Cosylab (Gasper Jansa) || 1 || This is really a bug. The database should not be corrupted just because the dbd file is not found.  &lt;br /&gt;
|-&lt;br /&gt;
|4 || Make it easier to grab connectors inside objects. || Feature || 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.5 || SNS || 1 || Functionality problem! It is difficult to grab a connector if it lays under a bigger object (While the selected object is moved to front it covers the wire and connector)  &lt;br /&gt;
|-&lt;br /&gt;
|5 || Read appInclude.dbd files with #include's || Feature || Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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.) || 0.5 || SNS || 1 || The EPICS_DB_INCLUDE_PATH environment variable cannot be read by all versions of Java. Proposed that the necessary information can be passed as a parameter from the command line, and can be generated in the startup script. (The estimated time to do this any other way is large)&lt;br /&gt;
|-&lt;br /&gt;
|8 || Move text on macros  || Feature || It should be possible to place the text on macros to be on the side opposite the wire connection point || 0.5 || Nick Rees (Diamond) || 1 || Having the text on the side is useful when there is a whole line of macros stacked vertically.  &lt;br /&gt;
|-&lt;br /&gt;
|12 || Building || Feature || Make build from source easier and more reliable. (Note: This now seems to be fixed, but could be better documented) || 0.5 || Philip Taylor (OSL) || 1 || It should be possible to build VDCT without access to the Common project. Build scripts for plug-ins and VDCT-Common should also exist.  &lt;br /&gt;
|-&lt;br /&gt;
|7 || Eliminate steps in wires || Feature || 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). || 1 || Nick Rees (Diamond) || 1 || Certain objects (eg. Macro) are not of the size of the grid - but the wire connection point should line up with other wire connection points.   &lt;br /&gt;
|-&lt;br /&gt;
|9 || More wiring issues || Feature || Do not draw lines over each other, mark connections clearly different from crossings, easier way to control routing manually. || 1.5 || Ralph Lange (BESSY) || 1 || There should be a dot where-ever two wires merge to become one  &lt;br /&gt;
|-&lt;br /&gt;
|121 || Control of which side a wire connects to a record || Feature || Need better way of  controlling which side the link is coming out of. Sometimes I have difficulty getting the link to point the right way just adding new handles. || 2 || APS (David Kline) || 1 || Use Shift+right mouse button to change link direction. See related bug #12122. This is possible only if having more than one link connected, otherwise side is chosen by VDCT (but you can have control over it using wire anchors). It is not possible to handle all (everyone) wishes with automatical/manual layout. So I suggest to have automatic with manual override possible (this will require to add a additional info to the graphical data).&lt;br /&gt;
|-&lt;br /&gt;
|10 || Borders || Feature || 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) || 5 || Nick Rees (Diamond) || 1 || The border can be drawn by the tools that are already implemented in VDCT. However, imports of other vdb files currently doesn't work, and don't import graphics and text. There is also no way of grouping graphics and text so they are moved as one.&lt;br /&gt;
|-&lt;br /&gt;
|12296  || Problems with find feature in VisualDCT || Bug || &amp;quot;Find&amp;quot; feature in VDCT build 1257: Does not execute on &amp;quot;ENTER&amp;quot; key. (You have to click the start button.). Sometimes doesn't find records that actually exist (but I couldn't reproduce this on Windows). I think it should be accessed by clicking on the third tool bar button - but this button is permanently greyed out. || 0.125 || Matt Rippa (JAC) || 2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|12128  || Font size for template name too large || Bug || The font used for the name of a template instantiated in a hierarchy is too large || 0.25 || Nick Rees (Diamond) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|12125  || Awkward kink in wires when a connector anchor is added || Bug || Near-vertical wires shouldn't get an awkward kink in them when you add a connection anchor. This isn't intuitive. || 0.5 || Nick Rees (Diamond) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|5037  || Printing issues || Bug || Printing is a serious problem.  There seems to be no way to print a moderate size database.  The large, flatbed printers do not show as printer options.  The options seem to be the same for all printers, even though the printers have different capabilities.  When printing to smaller paper, the text is not readable or not there. || 3 || Ned Arnold (APS) || 2 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|14 || Visual cue when making links || Feature || When creating a link between two records, you use the context 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. || 0.25 || Andrew Johnson (APS) || 2 || Reasonable suggestion  &lt;br /&gt;
|-&lt;br /&gt;
|15 || Highlight which record is inspected || Feature || Select or highlight the corresponding record when the Inspector selects or changes records. || 1 || Matt Rippa (JAC) || 2 || An additional suggestion is to add a &amp;quot;Centre&amp;quot; button to the Inspector window which, when pressed centers the record on the screen.&lt;br /&gt;
|-&lt;br /&gt;
|10333  || On small zoom the records should blow up to become readable || Feature || I'm new to VDCT but I think it would make it much easier to follow a database if you could zoom way out and as you rolled the mouse over a record it blew up to become readable . Similar to the way a mac does the icon bar. This way you could see the flow of links without zooming in and out all the time. || 1 || Rich Diviero (APS) || 2 || ||  &lt;br /&gt;
|-&lt;br /&gt;
|13 || Morph a template || Feature || Add the ability to morph a template in the same way you can morph a record. || 1 || Nick Rees (Diamond) || 2 || Reasonable suggestion  &lt;br /&gt;
|-&lt;br /&gt;
|16 || Multiple windows || Feature || 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) || 2 || Enable copy/paste between different windows. Use MDI.  &lt;br /&gt;
|-&lt;br /&gt;
|127 || Fields with two connectors ||  || Value fields can only be linked to from one side, so if you have a database in which record A writes to record B, and record C reads from record B, there's no satisfactory way to show it. (gdct had &amp;quot;hooks&amp;quot; on both sides of target fields, and this was very helpful for complex databases.) || 2 || APS (David Kline) || 2 || This is a useful new feature  &lt;br /&gt;
|-&lt;br /&gt;
|17 || External query API || Feature || 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 || 3 || This can be implemented as a plug-in  &lt;br /&gt;
|-&lt;br /&gt;
|18 || MACRO enhancements || Feature || 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) || 3 || This is useful if you have to change all values. Only the &amp;quot;basenum&amp;quot; would be changed and all numbers would change. This has to be discussed with EPICS community! &lt;br /&gt;
|-&lt;br /&gt;
|19 || File Format || Feature || Clarify the file format so the graphics information obeys a defined standard (I don't like embedding things in comments). Rationalise the various ways of template expansion across all EPICS tools. Develop sandards for storing meta-data (for graphics, archiver, alarm handler, high-level device interfaces etc). ||  || Nick Rees (Diamond) || 3 || Though it is a VDCT main feature to have only one file it is not good practice to store important information in the comments  &lt;br /&gt;
|-&lt;br /&gt;
|8700  || Port problem in VisualDCT || Bug || I really dont't know how to reproduce it, but I was doing port in variable.template and then I want to go one level up, and it crashed. It showed empty window afterwards and it didn't work to reload the file again. There is howerver one strange thing in this base from then on. It is in variables.template. One port is invisible and becomes invisible only if you focus on dol field of the related record. || Unknown || Gasper Jansa (Cosylab) || 4 || How to solve this, if not possible to reproduce. I got the same (if not that) report from SNS, but we failed to reproduce (after some additional fix).&lt;br /&gt;
|-&lt;br /&gt;
|22 || Display less info at small zooms || Feature || When zoom level &amp;lt; 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). || 0.5 || Cosylab (Gasper Jansa) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|23 || If too long, display only part of record name || Feature || 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. || 0.5 || Cosylab (Iztok Krapec) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|21 || Disable a record || Feature || 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) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|24 || Hierarchy delimiters || Feature || 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 recognizes 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). || 1 || Nick Rees (Diamond) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|27 || Specifiable background color || Feature || Ability to customize the background color || 1 || Cosylab (Krapec) || 4 || There would be problems with printing since the default background print colour is white, not black. &lt;br /&gt;
|-&lt;br /&gt;
|29 || Colouring of the records || Feature || It should be possible to change colours of the records || 1 || Cosylab (Iztok Krapec) || 4 || Again, ensuring there are no colour clashes is not so easy.&lt;br /&gt;
|-&lt;br /&gt;
|28 || Detachable preview window || Feature || At the moment, database 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 || 1.5 || Cosylab (Iztok Krapec) || 4 || Not very important but could be done.  &lt;br /&gt;
|-&lt;br /&gt;
|20 || Debug plug-in and hierarchies || Feature || Make debug plug-in work on hierarchical databases (now it works only on flat databases). || 5 || SNS || 4 || This is a good idea, but it is unrelated to making VDCT a good visual database editor. Hence a longer term feature&lt;br /&gt;
|-&lt;br /&gt;
|26 || Enhanced print preview and editor || Feature || 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 || 4 ||  || &lt;br /&gt;
|-&lt;br /&gt;
|191 || Non-heirarchical off page links/page formatting || Feature || Instead of making a large canvas and printing many tiled pages, have a non-heirachical link to another page so you don't have to glue many pages together after printing out a big database on A4. Each non-heirarchical page can be opened in its own window, instead of having one huge canvas Each link that goes out of the page should be marked automatically by VDCT || 20 || BESSY || 3 || This is a nice feature, but it is too big to implement at this time.&lt;br /&gt;
|-&lt;br /&gt;
|25 || Debugging features || Feature || 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. ||  || SNS || 4 ||||   &lt;br /&gt;
|-&lt;br /&gt;
|12294  || FLNK'ing not possible from stand alone record || Bug || It's possbile to get into a state where the FLNK option is not available when you right click a record. Certainly if the record is already FLNK'ed this is what you want. But sometimes there is a stand alone record and FLNKing is not an option in the popup. ||  || Matt Rippa (JAC) || 5 || For the moment, we'll assume that this is because FLNK is actually there, but hidden&lt;br /&gt;
|-&lt;br /&gt;
|45 || Printing problems || Feature || Print preview needs to be improved.  Printing options such as &amp;quot;extents&amp;quot; where it prints the entire drawing, &amp;quot;window&amp;quot; where it prints an area you can choose with the mouse, or &amp;quot;display&amp;quot; where it prints whatever is on the screen would help. || 0.75 || APS (David Kline) || 5 || See related feature request #36. There is a workaround for both &amp;quot;Print extents&amp;quot; and &amp;quot;Print Selection&amp;quot; and &amp;quot;Print display&amp;quot; is the default.&lt;br /&gt;
|-&lt;br /&gt;
|42 || Connection directions || Feature || Show direction of connections. || 1 || SNS || 5 || Isn't current direction indication 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)?&lt;br /&gt;
|-&lt;br /&gt;
|44 || Preserve record link order on copy || Feature || When a record is copied, the order of the links is sometimes not preserved, so it may take many menu selections to make a copy that can be used. || 1 || APS (David Kline) || 5 || Probably a repeat of bug #8731 - except that relates to templates, not records.&lt;br /&gt;
|-&lt;br /&gt;
|34 || Substitution file editor || Feature || 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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values. || 5 || Cosylab (Igor Verstovsek) || 5 || VDCT is not a template file editor. It provides a different model for template instantiation. Use a normal editor for this.  &lt;br /&gt;
|-&lt;br /&gt;
|41 || Allow drawing capabilities for template shapes. || Feature || 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 || 5 || Not essential.  &lt;br /&gt;
|-&lt;br /&gt;
|40 || Different shapes for different record types || Feature || 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 || 5 || Not essential.  &lt;br /&gt;
|-&lt;br /&gt;
|43 || Nicer record symbols || Feature || A record should be represented by an arbitrary polygon. Each record has a default shape, but it should be possible to change it. More important than changing the shape is the possibility to change the size of the polygon. This will allow the designer to create enough space for all links from/to this record. All links must be movable along the polygon outline. This will allow the designer to position all inputs on the left and all outputs on the right, for example || 15 || BESSY || 5 ||This is similar to the two requests submitted by SNS for allowing different shapes for different record types. Hence, I have pencilled in a 15 day estimate. If this is correct, I think it should be funded separately if demand exists. &lt;br /&gt;
|-&lt;br /&gt;
|30 || Generate files with .template extension. || Feature || At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file. (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.) ||  || SNS || 5 || You can manually type &amp;quot;.template&amp;quot; as the file extension, so you can effectively do this. I also want to focus on implementing the recursive hierarchy of VDCT, and this may become preferred over templates.&lt;br /&gt;
|-&lt;br /&gt;
|31 || Cloning a template || Feature || Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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. ||  || SNS || 5 || &amp;quot;Save as&amp;quot; provides 50% of the functionality required. The other 50% would come from providing the ability to morph a template.&lt;br /&gt;
|-&lt;br /&gt;
|32 || Allow connections via labels just outside the record || Feature || Instead of having a connection that snakes all around a complicated diagram, just connect to a tab with a label (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram. ||  || SNS || 5 || It is already possible to make a labeled connection.  &lt;br /&gt;
|-&lt;br /&gt;
|33 || Dialog with a list of records in a template || Feature || In case of a hierarchical template, the representation of all the records should be a tree ||  || Cosylab (Krapec) || 5 || Spreadsheet view solves this request as well.  &lt;br /&gt;
|-&lt;br /&gt;
|35 || Resize drawing objects || Feature || 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) || 5 || The size of drawings can be changed by dragging the right bottom corner. It is not clear what is meant by one set of small symbols - this seems to be a reflection of a Capfast bias - VDCT has a different model for symbols.  &lt;br /&gt;
|-&lt;br /&gt;
|36 || Improve printing || Feature || print all, print current screen ||  || Ralph Lange (BESSY) || 5 || Printing is currently always &amp;quot;print current screen&amp;quot;. To print all type Ctrl-A, Shift-space, to zoom all, then print.&lt;br /&gt;
|-&lt;br /&gt;
|37 || Change record type || Feature || Ability to change a record type (i.e., calc to sub) where the values for common fields and the record name are retained. ||  || Stephanie Allison (SLAC) || 5 || This is done by &amp;quot;morph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|38 || Quick Zoom || Feature || Full View keyboard short cut. (capfast &amp;quot;V-V&amp;quot; equivalent) ||  || Matt Rippa (JAC) || 5 || Done. Use Ctrl-A, Shift-Space&lt;br /&gt;
|-&lt;br /&gt;
|39 || Keyboard pan || Feature || Move or pan canvas with arrows (or some key combination independent of the mouse). ||  || Matt Rippa (JAC) || 5 || Done. Use Ctrl-Up/Down/Left/Right Arrow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=339</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=339"/>
		<updated>2005-07-06T13:44:23Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added consolidated list of bugs and features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== Proposed Bug-Fix and Schematic Capture development package ==&lt;br /&gt;
&lt;br /&gt;
A result of a poll of the community indicated that adoption would be far more widespread if the largest bugs were removed and work was done to upgrade VDCT's capability as a basic spreadsheet package. A consolidated list of bugs and feature requests have been drawn up and priorities assigned on this basis. Specifically, the priorities are:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Priority !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
|0 || Probably funded via another means &lt;br /&gt;
|-&lt;br /&gt;
| 1 || Functionality essential to a schematic capture tool - i.e. it would be seen as a bug in a traditional schematic capture tool&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Useful functionality that improves VDCT as a database configuration tool&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Useful functionality, but may require greater thought or co-ordination with EPICS V4 development&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Potentially useful functionality, but not too essential to the core function of a DCT. Also irreproducible bugs&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Functionality that is not required since the solution is already available or provided in another way. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Bearing this priority list in mind, we have decided to develop a package aimed at addressing priorities 1 and 2 only. It is interesting to note that even this limited package amounts to 41 work days, which is considerably larger tham most of the other VDCT development packages - highlighting that the devil is in the details.&lt;br /&gt;
&lt;br /&gt;
The consolidated list of bugs and features is as follows:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Bug # !! Name !! Bug or Feature !! Description !! Time Estimate (days) !! Proposed by !! Priority !! Comment  &lt;br /&gt;
|-&lt;br /&gt;
|1021 || Make a non-modal property dialog as a separate tiled or floating window || Feature || As it is e.g. in Word for setting diverse properties When a record is selected, it's properties are shown in this windows; If several records are selected, only the properties that are common to all are shown and by entering a value, it is applied to all records; Two-way editing: if a new link is entered in the property sheet, it is also displayed on the canvas. This is very useful for people working with two screens, so they don't have to scroll around the canvas || 3 || 0 || BESSY || 0 || Do not understand. If I add  an inspector a feature of point 3, all this will be covered. Is this true? Estimate for point 3 given (for inspector).&lt;br /&gt;
|-&lt;br /&gt;
|1 || Spreadsheet view and editor for records and templates || Feature || Provide a spread sheet view for the records. Provide one table for each record and template 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) || 0 || If multiple record types are selected, the inspector could display the intersection set of available editable fields. &lt;br /&gt;
|-&lt;br /&gt;
|2 || Improve documentation. || Feature || 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 || 0 || Improve the documentation from the user point of view. This may be done by a separate contract  &lt;br /&gt;
|-&lt;br /&gt;
|12121  || Addpath command functionality || Bug || 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 &amp;quot;${path}:/new/directory/here&amp;quot;. (Note: The addpath functionality as implemented is potentially useful, but is wrong - it should be implemented as a different command and built into dbExpand). || 0.25 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|12369  || Import of databases doesn't work || Bug || If you try and import a database into another database it simply doesn't work. || 0.25 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|APS1 || Hide value on copied records || Bug || When a record is copied, the setting &amp;quot;Hide value of valid links&amp;quot;, and per-field hide-value settings made in Inspector are not honored until the Settings dialog is called up and put away, or the file is saved and reopened. || 0.25 || APS (David Kline) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|APS3 || Position of pasted record || Bug || When a record is pasted, it frequently is placed *far* off screen, so you have to zoom out, grab the record, drag it to near where you were working, and zoom back in. This doesn't always happen, and I haven't been able to figure out what triggers the behavior. || 0.25 || APS (David Kline) || 1 || The inconsistency is certainly unacceptable from a user interface point of view, but it may not be a true bug. Should be fixed and record should be pasted at the mouse focus.&lt;br /&gt;
|-&lt;br /&gt;
|12122  || Macro orientation when connection more than one wire || Bug || 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. || 0.5 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|12123  || Issues when un-doing a move || Bug || Fix problems with undo/redo. Sometimes when you undo a move the objects don't go back in the same place. || 0.5 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|12129  || SCAN field is not a valid input when connecting from a port || Bug || 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. || 0.5 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|8596  || Bug in Visual DCT morph || Bug || If you morph a record to something and you do 'undo' afther, the record goes back to previous record type but fiedls that are common to both records type remain on record. That means that you have two DESC fields and two PINI ... This is only display issue becaiuse saved file is OK. If you reload the template problem disappears. || 0.5 || Gasper Jansa (Cosylab) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|APS2 || Copied record set links || Bug || When a set of records with links is copied and pasted, all the new records are linked to records in the set from which they were copied. If the link is to a record not in the set being copied, this seems the right thing to do, but if it's to a record in the set, I can't imagine a case for which this would be the desired behavior. || 0.5 || APS (David Kline) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|APS4 || Records move when db is saved || Bug || When a database is saved, records are sometimes moved around. I can't figure out what distinguishes records that get moved from those that don't, but the same recoords get moved consistently. || 0.5 || APS (David Kline) || 1 || Send us the database to reproduce and find a pattern (bug).  &lt;br /&gt;
|-&lt;br /&gt;
|12126  || Problem with hidden fields || Bug || 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. || 1 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|12124  || Objects change relative distances while being dragged together || Bug || 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. || 1.5 || Nick Rees (Diamond) || 1 || This (and 12123) seems to boil down to what internal position is stored for a component. I believe it should reflect what is displayed - so components which were last moved in snap mode should reflect the snapped position, but if you move an object in un-snapped mode it should reflect the un-snapped position. This is the most common model for drawing packages. Components should always be drawn at their internally stored position.&lt;br /&gt;
|-&lt;br /&gt;
|12127  || Wire anchors on templates are not preserved when saving || Bug || Wire anchor connectors that are connected to a template instantiation in a hierarchy don't get preserved through a save/restore cycle. || 1.5 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|12130  || Not possible to add a connection anchor point to a wire connecting a record field and an external port or macro || Bug || 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. || 1.5 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|8731  || VDCT: mess with the template links || Bug || When I create a template (hierarchies) and instantiate it in a bigger level template, I reorder links (macros, ports...) so that they look nice (left side, right side...). When I copy the template (CTRL+C, CTRL+V), my nice arrangement gets messed up. || 2 || Rok Sabjan (Cosylab) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|11385  || Visual DCT breaks in Mac OS 10.4 || Bug || The last build available on the web site is not compatible with the recently released Mac OS 10.4. || 3 || Steve Shoaf (APS) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|6 || Save on traverse || Feature || 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. || 0.125 || Nick Rees (Diamond) || 1 || Trivial and useful. Only have to think about the correct default.  &lt;br /&gt;
|-&lt;br /&gt;
|11 || Improve printing || Feature || Omit wire anchors on printing.  || 0.25 || Nick Rees (Diamond) || 1 ||   &lt;br /&gt;
|-&lt;br /&gt;
|3 || If dbd not present, DTYP information is gone || Feature || 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. || 0.5 || Cosylab (Gasper Jansa) || 1 || This is really a bug. The database should not be corrupted just because the dbd file is not found.  &lt;br /&gt;
|-&lt;br /&gt;
|4 || Make it easier to grab connectors inside objects. || Feature || 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.5 || SNS || 1 || Functionality problem! It is difficult to grab a connector if it lays under a bigger object (While the selected object is moved to front it covers the wire and connector)  &lt;br /&gt;
|-&lt;br /&gt;
|5 || Read appInclude.dbd files with #include's || Feature || Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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.) || 0.5 || SNS || 1 || The EPICS_DB_INCLUDE_PATH environment variable cannot be read by all versions of Java. Proposed that the necessary information can be passed as a parameter from the command line, and can be generated in the startup script. (The estimated time to do this any other way is large)&lt;br /&gt;
|-&lt;br /&gt;
|8 || Move text on macros  || Feature || It should be possible to place the text on macros to be on the side opposite the wire connection point || 0.5 || Nick Rees (Diamond) || 1 || Having the text on the side is useful when there is a whole line of macros stacked vertically.  &lt;br /&gt;
|-&lt;br /&gt;
|12 || Building || Feature || Make build from source easier and more reliable. (Note: This now seems to be fixed, but could be better documented) || 0.5 || Philip Taylor (OSL) || 1 || It should be possible to build VDCT without access to the Common project. Build scripts for plug-ins and VDCT-Common should also exist.  &lt;br /&gt;
|-&lt;br /&gt;
|7 || Eliminate steps in wires || Feature || 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). || 1 || Nick Rees (Diamond) || 1 || Certain objects (eg. Macro) are not of the size of the grid - but the wire connection point should line up with other wire connection points.   &lt;br /&gt;
|-&lt;br /&gt;
|9 || More wiring issues || Feature || Do not draw lines over each other, mark connections clearly different from crossings, easier way to control routing manually. || 1.5 || Ralph Lange (BESSY) || 1 || There should be a dot where-ever two wires merge to become one  &lt;br /&gt;
|-&lt;br /&gt;
|121 || Control of which side a wire connects to a record || Feature || Need better way of  controlling which side the link is coming out of. Sometimes I have difficulty getting the link to point the right way just adding new handles. || 2 || APS (David Kline) || 1 || Use Shift+right mouse button to change link direction. See related bug #12122. This is possible only if having more than one link connected, otherwise side is chosen by VDCT (but you can have control over it using wire anchors). It is not possible to handle all (everyone) wishes with automatical/manual layout. So I suggest to have automatic with manual override possible (this will require to add a additional info to the graphical data).&lt;br /&gt;
|-&lt;br /&gt;
|10 || Borders || Feature || 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) || 5 || Nick Rees (Diamond) || 1 || The border can be drawn by the tools that are already implemented in VDCT. However, imports of other vdb files currently doesn't work, and don't import graphics and text. There is also no way of grouping graphics and text so they are moved as one.&lt;br /&gt;
|-&lt;br /&gt;
|12296  || Problems with find feature in VisualDCT || Bug || &amp;quot;Find&amp;quot; feature in VDCT build 1257: Does not execute on &amp;quot;ENTER&amp;quot; key. (You have to click the start button.). Sometimes doesn't find records that actually exist (but I couldn't reproduce this on Windows). I think it should be accessed by clicking on the third tool bar button - but this button is permanently greyed out. || 0.125 || Matt Rippa (JAC) || 2 ||   &lt;br /&gt;
|-&lt;br /&gt;
|12128  || Font size for template name too large || Bug || The font used for the name of a template instantiated in a hierarchy is too large || 0.25 || Nick Rees (Diamond) || 2 ||   &lt;br /&gt;
|-&lt;br /&gt;
|12125  || Awkward kink in wires when a connector anchor is added || Bug || Near-vertical wires shouldn't get an awkward kink in them when you add a connection anchor. This isn't intuitive. || 0.5 || Nick Rees (Diamond) || 2 ||   &lt;br /&gt;
|-&lt;br /&gt;
|5037  || Printing issues || Bug || Printing is a serious problem.  There seems to be no way to print a moderate size database.  The large, flatbed printers do not show as printer options.  The options seem to be the same for all printers, even though the printers have different capabilities.  When printing to smaller paper, the text is not readable or not there. || 3 || Ned Arnold (APS) || 2 ||   &lt;br /&gt;
|-&lt;br /&gt;
|14 || Visual cue when making links || Feature || When creating a link between two records, you use the context 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. || 0.25 || Andrew Johnson (APS) || 2 || Reasonable suggestion  &lt;br /&gt;
|-&lt;br /&gt;
|15 || Highlight which record is inspected || Feature || Select or highlight the corresponding record when the Inspector selects or changes records. || 1 || Matt Rippa (JAC) || 2 || An additional suggestion is to add a &amp;quot;Centre&amp;quot; button to the Inspector window which, when pressed centers the record on the screen.&lt;br /&gt;
|-&lt;br /&gt;
|10333  || On small zoom the records should blow up to become readable || Feature || I'm new to VDCT but I think it would make it much easier to follow a database if you could zoom way out and as you rolled the mouse over a record it blew up to become readable . Similar to the way a mac does the icon bar. This way you could see the flow of links without zooming in and out all the time. || 1 || Rich Diviero (APS) || 2 ||   &lt;br /&gt;
|-&lt;br /&gt;
|13 || Morph a template || Feature || Add the ability to morph a template in the same way you can morph a record. || 1 || Nick Rees (Diamond) || 2 || Reasonable suggestion  &lt;br /&gt;
|-&lt;br /&gt;
|16 || Multiple windows || Feature || 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) || 2 || Enable copy/paste between different windows. Use MDI.  &lt;br /&gt;
|-&lt;br /&gt;
|127 || Fields with two connectors ||  || Value fields can only be linked to from one side, so if you have a database in which record A writes to record B, and record C reads from record B, there's no satisfactory way to show it. (gdct had &amp;quot;hooks&amp;quot; on both sides of target fields, and this was very helpful for complex databases.) || 2 || APS (David Kline) || 2 || This is a useful new feature  &lt;br /&gt;
|-&lt;br /&gt;
|17 || External query API || Feature || 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 || 3 || This can be implemented as a plug-in  &lt;br /&gt;
|-&lt;br /&gt;
|18 || MACRO enhancements || Feature || 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) || 3 || This is useful if you have to change all values. Only the &amp;quot;basenum&amp;quot; would be changed and all numbers would change. This has to be discussed with EPICS community! &lt;br /&gt;
|-&lt;br /&gt;
|19 || File Format || Feature || Clarify the file format so the graphics information obeys a defined standard (I don't like embedding things in comments). Rationalise the various ways of template expansion across all EPICS tools. Develop sandards for storing meta-data (for graphics, archiver, alarm handler, high-level device interfaces etc). ||  || Nick Rees (Diamond) || 3 || Though it is a VDCT main feature to have only one file it is not good practice to store important information in the comments  &lt;br /&gt;
|-&lt;br /&gt;
|8700  || Port problem in VisualDCT || Bug || I really dont't know how to reproduce it, but I was doing port in variable.template and then I want to go one level up, and it crashed. It showed empty window afterwards and it didn't work to reload the file again. There is howerver one strange thing in this base from then on. It is in variables.template. One port is invisible and becomes invisible only if you focus on dol field of the related record. || Unknown || Gasper Jansa (Cosylab) || 4 || How to solve this, if not possible to reproduce. I got the same (if not that) report from SNS, but we failed to reproduce (after some additional fix).&lt;br /&gt;
|-&lt;br /&gt;
|22 || Display less info at small zooms || Feature || When zoom level &amp;lt; 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). || 0.5 || Cosylab (Gasper Jansa) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|23 || If too long, display only part of record name || Feature || 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. || 0.5 || Cosylab (Iztok Krapec) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|21 || Disable a record || Feature || 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) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|24 || Hierarchy delimiters || Feature || 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 recognizes 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). || 1 || Nick Rees (Diamond) || 4 || Not an important function.  &lt;br /&gt;
|-&lt;br /&gt;
|27 || Specifiable background color || Feature || Ability to customize the background color || 1 || Cosylab (Krapec) || 4 || There would be problems with printing since the default background print colour is white, not black. &lt;br /&gt;
|-&lt;br /&gt;
|29 || Colouring of the records || Feature || It should be possible to change colours of the records || 1 || Cosylab (Iztok Krapec) || 4 || Again, ensuring there are no colour clashes is not so easy.&lt;br /&gt;
|-&lt;br /&gt;
|28 || Detachable preview window || Feature || At the moment, database 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 || 1.5 || Cosylab (Iztok Krapec) || 4 || Not very important but could be done.  &lt;br /&gt;
|-&lt;br /&gt;
|20 || Debug plug-in and hierarchies || Feature || Make debug plug-in work on hierarchical databases (now it works only on flat databases). || 5 || SNS || 4 || This is a good idea, but it is unrelated to making VDCT a good visual database editor. Hence a longer term feature&lt;br /&gt;
|-&lt;br /&gt;
|26 || Enhanced print preview and editor || Feature || 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 || 4 ||   &lt;br /&gt;
|-&lt;br /&gt;
|191 || Non-heirarchical off page links/page formatting || Feature || Instead of making a large canvas and printing many tiled pages, have a non-heirachical link to another page so you don't have to glue many pages together after printing out a big database on A4. Each non-heirarchical page can be opened in its own window, instead of having one huge canvas Each link that goes out of the page should be marked automatically by VDCT || 20 || BESSY || 3 || This is a nice feature, but it is too big to implement at this time.&lt;br /&gt;
|-&lt;br /&gt;
|25 || Debugging features || Feature || 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. ||  || SNS || 4 ||   &lt;br /&gt;
|-&lt;br /&gt;
|12294  || FLNK'ing not possible from stand alone record || Bug || It's possbile to get into a state where the FLNK option is not available when you right click a record. Certainly if the record is already FLNK'ed this is what you want. But sometimes there is a stand alone record and FLNKing is not an option in the popup. ||  || Matt Rippa (JAC) || 5 || For the moment, we'll assume that this is because FLNK is actually there, but hidden&lt;br /&gt;
|-&lt;br /&gt;
|45 || Printing problems || Feature || Print preview needs to be improved.  Printing options such as &amp;quot;extents&amp;quot; where it prints the entire drawing, &amp;quot;window&amp;quot; where it prints an area you can choose with the mouse, or &amp;quot;display&amp;quot; where it prints whatever is on the screen would help. || 0.75 || APS (David Kline) || 5 || See related feature request #36. There is a workaround for both &amp;quot;Print extents&amp;quot; and &amp;quot;Print Selection&amp;quot; and &amp;quot;Print display&amp;quot; is the default.&lt;br /&gt;
|-&lt;br /&gt;
|42 || Connection directions || Feature || Show direction of connections. || 1 || SNS || 5 || Isn't current direction indication 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)?&lt;br /&gt;
|-&lt;br /&gt;
|44 || Preserve record link order on copy || Feature || When a record is copied, the order of the links is sometimes not preserved, so it may take many menu selections to make a copy that can be used. || 1 || APS (David Kline) || 5 || Probably a repeat of bug #8731 - except that relates to templates, not records.&lt;br /&gt;
|-&lt;br /&gt;
|34 || Substitution file editor || Feature || 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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values. || 5 || Cosylab (Igor Verstovsek) || 5 || VDCT is not a template file editor. It provides a different model for template instantiation. Use a normal editor for this.  &lt;br /&gt;
|-&lt;br /&gt;
|41 || Allow drawing capabilities for template shapes. || Feature || 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 || 5 || Not essential.  &lt;br /&gt;
|-&lt;br /&gt;
|40 || Different shapes for different record types || Feature || 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 || 5 || Not essential.  &lt;br /&gt;
|-&lt;br /&gt;
|43 || Nicer record symbols || Feature || A record should be represented by an arbitrary polygon. Each record has a default shape, but it should be possible to change it. More important than changing the shape is the possibility to change the size of the polygon. This will allow the designer to create enough space for all links from/to this record. All links must be movable along the polygon outline. This will allow the designer to position all inputs on the left and all outputs on the right, for example || 15 || BESSY || 5 ||This is similar to the two requests submitted by SNS for allowing different shapes for different record types. Hence, I have pencilled in a 15 day estimate. If this is correct, I think it should be funded separately if demand exists. &lt;br /&gt;
|-&lt;br /&gt;
|30 || Generate files with .template extension. || Feature || At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file. (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.) ||  || SNS || 5 || You can manually type &amp;quot;.template&amp;quot; as the file extension, so you can effectively do this. I also want to focus on implementing the recursive hierarchy of VDCT, and this may become preferred over templates.&lt;br /&gt;
|-&lt;br /&gt;
|31 || Cloning a template || Feature || Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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. ||  || SNS || 5 || &amp;quot;Save as&amp;quot; provides 50% of the functionality required. The other 50% would come from providing the ability to morph a template.&lt;br /&gt;
|-&lt;br /&gt;
|32 || Allow connections via labels just outside the record || Feature || Instead of having a connection that snakes all around a complicated diagram, just connect to a tab with a label (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram. ||  || SNS || 5 || It is already possible to make a labeled connection.  &lt;br /&gt;
|-&lt;br /&gt;
|33 || Dialog with a list of records in a template || Feature || In case of a hierarchical template, the representation of all the records should be a tree ||  || Cosylab (Krapec) || 5 || Spreadsheet view solves this request as well.  &lt;br /&gt;
|-&lt;br /&gt;
|35 || Resize drawing objects || Feature || 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) || 5 || The size of drawings can be changed by dragging the right bottom corner. It is not clear what is meant by one set of small symbols - this seems to be a reflection of a Capfast bias - VDCT has a different model for symbols.  &lt;br /&gt;
|-&lt;br /&gt;
|36 || Improve printing || Feature || print all, print current screen ||  || Ralph Lange (BESSY) || 5 || Printing is currently always &amp;quot;print current screen&amp;quot;. To print all type Ctrl-A, Shift-space, to zoom all, then print.&lt;br /&gt;
|-&lt;br /&gt;
|37 || Change record type || Feature || Ability to change a record type (i.e., calc to sub) where the values for common fields and the record name are retained. ||  || Stephanie Allison (SLAC) || 5 || This is done by &amp;quot;morph&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|38 || Quick Zoom || Feature || Full View keyboard short cut. (capfast &amp;quot;V-V&amp;quot; equivalent) ||  || Matt Rippa (JAC) || 5 || Done. Use Ctrl-A, Shift-Space&lt;br /&gt;
|-&lt;br /&gt;
|39 || Keyboard pan || Feature || Move or pan canvas with arrows (or some key combination independent of the mouse). ||  || Matt Rippa (JAC) || 5 || Done. Use Ctrl-Up/Down/Left/Right Arrow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=443</id>
		<title>Fundamental Tools and Popular Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=443"/>
		<updated>2005-07-01T13:28:49Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Created an EPICS Office section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== EPICS Office ==&lt;br /&gt;
&lt;br /&gt;
The activities around the EPICS-Office are coordinated by the web-site: [http://epics-office.desy.de EPICS-Office Web Page]&lt;br /&gt;
&lt;br /&gt;
== VDCT Developments ==&lt;br /&gt;
&lt;br /&gt;
VDCT development is now coordinated through Nick Rees, at Diamond Light Source. He will be using these pages to help this work through the new [[VDCT Status Page]].&lt;br /&gt;
&lt;br /&gt;
Note that the main reference for obtaining the VDCT distribution is still the [http://visualdct.cosylab.com CosyLab VDCT page].&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=338</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=338"/>
		<updated>2005-06-24T07:58:33Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Another attempt to fix the formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Improve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable. ''(Note: This now seems to be fixed, but could be better documented)'' |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Quick Zoom || Full View keyboard short cut. (capfast &amp;quot;V-V&amp;quot; equivalent)|| || Matt Rippa (JAC)&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard pan || Move or pan canvas with arrows (or some key combination independant of the mouse). || || Matt Rippa (JAC)&lt;br /&gt;
|-&lt;br /&gt;
|Highlight which record is inspected || Select or highlight the corresponding record when the Inspector selects or changes records. || || Matt Rippa (JAC)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. || || Nick Rees (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=317</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=317"/>
		<updated>2005-06-24T07:57:38Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Attempt to fix bug on one of the lines just entered&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Improve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable. ''(Note: This now seems to be fixed, but could be better documented)'' |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Quick Zoom || Full View keyboard short cut. (capfast &amp;quot;V-V&amp;quot; equivalent)|| || Matt Rippa (JAC)&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard pan || Move or pan canvas with arrows (or some key combination &lt;br /&gt;
independant of the mouse). || || Matt Rippa (JAC)&lt;br /&gt;
|-&lt;br /&gt;
|Highlight which record is inspected || Select or highlight the corresponding record when the Inspector selects or changes records. || || Matt Rippa (JAC)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. || || Nick Rees (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=316</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=316"/>
		<updated>2005-06-24T07:54:54Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added requests from Matt Rippa&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Improve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable. ''(Note: This now seems to be fixed, but could be better documented)'' |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Quick Zoom || Full View keyboard short cut. (capfast &amp;quot;V-V&amp;quot; equivalent)|| || Matt Rippa (JAC)&lt;br /&gt;
|-&lt;br /&gt;
| Keyboard pan || Move or pan canvas with arrows (or some key combination &lt;br /&gt;
independant of the mouse).|| || Matt Rippa (JAC)&lt;br /&gt;
|-&lt;br /&gt;
|Highlight which record is inspected || Select or highlight the corresponding record when the Inspector selects or changes records.|| || Matt Rippa (JAC)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. || || Nick Rees (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=315</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=315"/>
		<updated>2005-06-20T20:58:33Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Fixed typo and noted build seems OK now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Improve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable. ''(Note: This now seems to be fixed, but could be better documented)'' |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. || || Nick Rees (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=301</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=301"/>
		<updated>2005-06-20T08:11:26Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added affiliation to all names&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Imporve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. || || Nick Rees (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=299</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=299"/>
		<updated>2005-06-20T08:00:19Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Fixed some formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Imporve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. || || Nick Rees (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=298</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=298"/>
		<updated>2005-06-17T16:12:11Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Fixed italics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Imporve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. || || Nick Rees (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=296</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=296"/>
		<updated>2005-06-17T16:08:54Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added fixing of file format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Imporve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue. || || Nick Rees (Diamond)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=295</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=295"/>
		<updated>2005-06-17T13:05:22Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added other wishlists&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|Imporve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|Building || Make build from source easier and more reliable |||| Philip Taylor (OSL)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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. &lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=293</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=293"/>
		<updated>2005-06-17T11:13:36Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added Ralph Lange wishlist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|More wiring issues || Do not draw lines over each other, mark connections &lt;br /&gt;
clearly different from crossings, easier way to control routing manually. || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|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).&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|Imporve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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. &lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=292</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=292"/>
		<updated>2005-06-17T11:12:01Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added Ralph Lange wishlist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Please add bugs here and also email them to [[mailto:bug@visualdct.cosylab.com bug@visualdct.cosylab.com]]. When they are definitely in the system they will be removed from this page.&lt;br /&gt;
&lt;br /&gt;
== High Priority Enhancements ==&lt;br /&gt;
&lt;br /&gt;
These are either smalll useability enhancements, or large ones that have been agreed to be the next major developmental priority.&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Proposed by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|More wiring issues || Do not draw lines over each other, mark connections &lt;br /&gt;
clearly different from crossings, easier way to control routing manually. || || Ralph Lange (BESSY)&lt;br /&gt;
|-&lt;br /&gt;
|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).&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|Imporve printing || Omit wire anchors on printing. print all, print current screen || || Ralph Lange (BESSY)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Longer term (Maybe EPICS V4 related) improvements ==&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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. &lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Capfast compatibility ==&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Wishful thinking enhancements ==&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=291</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=291"/>
		<updated>2005-06-10T16:03:49Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added Cosylab low priority features.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bug fixes ==&lt;br /&gt;
&lt;br /&gt;
# 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).&lt;br /&gt;
# 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.&lt;br /&gt;
# Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.&lt;br /&gt;
# 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.&lt;br /&gt;
# Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.&lt;br /&gt;
# 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.&lt;br /&gt;
# Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.&lt;br /&gt;
# The font used for the name of a template instantiated in a hierarchy is too large, IMHO.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
shoaf@strmeng1 201&amp;gt; vdct&lt;br /&gt;
Loading VisualDCT v2.4 build 1256...&lt;br /&gt;
 &lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
  &lt;br /&gt;
o) Usage: java com.cosylab.vdct.VisualDCT [&amp;lt;DBDs&amp;gt;] [&amp;lt;DB&amp;gt;]&lt;br /&gt;
 &lt;br /&gt;
shoaf@strmeng1 202&amp;gt; java -version&lt;br /&gt;
java version &amp;quot;1.4.2_07&amp;quot;&lt;br /&gt;
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-215)&lt;br /&gt;
Java HotSpot(TM) Client VM (build 1.4.2-50, mixed mode)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Higher Priority Features ===&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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). &lt;br /&gt;
|-&lt;br /&gt;
|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).&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Resize drawing objects|| Allow you to change the size of drawing objects (lines and boxes).&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Longer term (Maybe EPICS V4 related) improvements ===&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Specifiable background color||Ability to customize the background color||0.5||Cosylab (Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Coloring of the records||It should be possible to change colors of the records||1||Cosylab (Iztok Krapec)&lt;br /&gt;
|-&lt;br /&gt;
|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. &lt;br /&gt;
|-&lt;br /&gt;
|MACRO enhancements||Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Capfast compatibility ===&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
=== Wishful thinking enhancements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=274</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=274"/>
		<updated>2005-06-10T15:53:00Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Removed rubbish that got added accidently at the end&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bug fixes ==&lt;br /&gt;
&lt;br /&gt;
# 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).&lt;br /&gt;
# 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.&lt;br /&gt;
# Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.&lt;br /&gt;
# 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.&lt;br /&gt;
# Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.&lt;br /&gt;
# 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.&lt;br /&gt;
# Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.&lt;br /&gt;
# The font used for the name of a template instantiated in a hierarchy is too large, IMHO.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
shoaf@strmeng1 201&amp;gt; vdct&lt;br /&gt;
Loading VisualDCT v2.4 build 1256...&lt;br /&gt;
 &lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
  &lt;br /&gt;
o) Usage: java com.cosylab.vdct.VisualDCT [&amp;lt;DBDs&amp;gt;] [&amp;lt;DB&amp;gt;]&lt;br /&gt;
 &lt;br /&gt;
shoaf@strmeng1 202&amp;gt; java -version&lt;br /&gt;
java version &amp;quot;1.4.2_07&amp;quot;&lt;br /&gt;
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-215)&lt;br /&gt;
Java HotSpot(TM) Client VM (build 1.4.2-50, mixed mode)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Higher Priority Features ===&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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). &lt;br /&gt;
|-&lt;br /&gt;
|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).&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Resize drawing objects|| Allow you to change the size of drawing objects (lines and boxes).&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Major, EPICS V4 related improvements ===&lt;br /&gt;
# 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. &lt;br /&gt;
# Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
&lt;br /&gt;
=== Capfast compatibility ===&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
=== Wishful thinking enhancements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=273</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=273"/>
		<updated>2005-06-10T15:51:15Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added CosyLab high priority features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bug fixes ==&lt;br /&gt;
&lt;br /&gt;
# 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).&lt;br /&gt;
# 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.&lt;br /&gt;
# Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.&lt;br /&gt;
# 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.&lt;br /&gt;
# Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.&lt;br /&gt;
# 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.&lt;br /&gt;
# Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.&lt;br /&gt;
# The font used for the name of a template instantiated in a hierarchy is too large, IMHO.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
shoaf@strmeng1 201&amp;gt; vdct&lt;br /&gt;
Loading VisualDCT v2.4 build 1256...&lt;br /&gt;
 &lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
  &lt;br /&gt;
o) Usage: java com.cosylab.vdct.VisualDCT [&amp;lt;DBDs&amp;gt;] [&amp;lt;DB&amp;gt;]&lt;br /&gt;
 &lt;br /&gt;
shoaf@strmeng1 202&amp;gt; java -version&lt;br /&gt;
java version &amp;quot;1.4.2_07&amp;quot;&lt;br /&gt;
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-215)&lt;br /&gt;
Java HotSpot(TM) Client VM (build 1.4.2-50, mixed mode)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Higher Priority Features ===&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
!Feature!!Description!!Time Estimate (days) !! Suggested by&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Debug plugin and hierarchies||Make debug plugin work on hierachical databases (now it works only on flat databases).||5||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Generate files with .template extension.||At present, if you define something using $(&amp;lt;name&amp;gt;) and don't define &amp;lt;name&amp;gt;, it shows up the .db as $(&amp;lt;name&amp;gt;). It should be possible to call the generated file &amp;lt;filename&amp;gt;.template to use with a substitution file.  (Actually, if a .db is generated with $(&amp;lt;name&amp;gt;), that might warrant a warning.)||3||SNS&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Cloning a template||Ability to quickly do a &amp;quot;clone&amp;quot; of the template, of course with another (file)name - this seems a simple &amp;amp; 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&lt;br /&gt;
|-&lt;br /&gt;
|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&lt;br /&gt;
|-&lt;br /&gt;
|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 (&amp;quot;A&amp;quot;, perhaps) with a corresponding tab elsewhere on the diagram.||2||SNS&lt;br /&gt;
|-&lt;br /&gt;
|Read appInclude.dbd files with #include's||Using a locally referenced RELEASE file to find the include files. &amp;quot;Relatively referenced&amp;quot; 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&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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 &amp;quot;ignore list&amp;quot;, saved in a substitution file as a comment. Provide a simple table to edit subs file values.||10||Cosylab (Igor Verstovsek)&lt;br /&gt;
|-&lt;br /&gt;
|Display less info at small zooms||When zoom level &amp;lt; 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)&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|-&lt;br /&gt;
|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). &lt;br /&gt;
|-&lt;br /&gt;
|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).&lt;br /&gt;
|-&lt;br /&gt;
|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)&lt;br /&gt;
|-&lt;br /&gt;
|Resize drawing objects|| Allow you to change the size of drawing objects (lines and boxes).&lt;br /&gt;
|-&lt;br /&gt;
|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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Major, EPICS V4 related improvements ===&lt;br /&gt;
# 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. &lt;br /&gt;
# Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
&lt;br /&gt;
=== Capfast compatibility ===&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
=== Wishful thinking enhancements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;br /&gt;
&lt;br /&gt;
=== Items from the CosyLab High Priority Features list ===&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=1305</id>
		<title>VDCT Status Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=1305"/>
		<updated>2005-06-09T14:39:20Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added a reference to the next development package.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended to inform the EPICS community of the development status of VDCT. It is meant to complement the information on the Cosylab page, not duplicate it.&lt;br /&gt;
&lt;br /&gt;
=== What is VDCT? ===&lt;br /&gt;
&lt;br /&gt;
VDCT is the Visual Database Configuration Tool. We hope that it will become the standard database configuration tool. It began as a project funded by the Swiss Light Source developed by [http://www.cosylab.com Cosylab]. Recent development has been funded by the APS, Diamond and the SNS. The code development is being done by Cosylab. &lt;br /&gt;
&lt;br /&gt;
Cosylab and the SLS have kindly made VDCT available under an open source license. Source code and binaries are available from the Cosylab web site. &lt;br /&gt;
&lt;br /&gt;
I ([mailto:Nick.Rees_at_diamond.ac.uk Nick Rees], of [http://www.diamond.ac.uk Diamond Light Source]) try to act as the interface person between the EPICS community and Cosylab. &lt;br /&gt;
&lt;br /&gt;
=== Where to find it === &lt;br /&gt;
The main place for things VDCT is the [http://visualdct.cosylab.com Cosylab VDCT page]. Go to this page and click on the link under Builds. Here you will find links to the latest binaries, documentation, release notes and other useful information. &lt;br /&gt;
&lt;br /&gt;
=== Installation Tips ===&lt;br /&gt;
&lt;br /&gt;
You don't need to build VDCT to install it. You can just get hold of the binary files and run it. You will need V1.4 or greater of the Java Runtime Environment to run it. These notes refer to build 1257. Check that there are not later builds available before you download. &lt;br /&gt;
&lt;br /&gt;
# Go [http://visualdct.cosylab.com here] at the CosyLab site and click on the &amp;quot;Builds&amp;quot; link and then on the latest build number (at the time of writing this is &amp;quot;2.4.1257&amp;quot;) under the &amp;quot;Distribution&amp;quot; heading. &lt;br /&gt;
# On this page again click on the build number under the Distribution heading This should begin the download of the distribution zip file. &lt;br /&gt;
# Save the zip file somewhere convenient. &lt;br /&gt;
# Unzip the zip file, to somewhere convenient. On Windows systems a &amp;quot;vdct&amp;quot; directory in the &amp;quot;Program Files&amp;quot; directory seems a good place. &lt;br /&gt;
# You should then see a &amp;quot;2.4.1257&amp;quot; directory. In that you'll see a file named &amp;quot;runScript&amp;quot;. &lt;br /&gt;
# Execute the file named &amp;quot;runScript&amp;quot; and VDCT should start. On windows systems you will have to rename &amp;quot;runScript&amp;quot; to &amp;quot;runSript.bat&amp;quot; first. &lt;br /&gt;
&lt;br /&gt;
=== Current Status ===&lt;br /&gt;
As of 31 May 2005.&lt;br /&gt;
&lt;br /&gt;
The current build is 1257. This is the package D2 release. The known bugs are listed on the Cosylab web site. See the [http://www.cosylab.com/visualdct/builds/VisualDCT/2.4.1257/index.html Change Log] on the Cosylab Page.&lt;br /&gt;
&lt;br /&gt;
The next major development is package E (spreadsheet view and printing).&lt;br /&gt;
&lt;br /&gt;
If you find any bugs not mentioned, please report them [mailto:bug@visualdct.cosylab.com here]. &lt;br /&gt;
&lt;br /&gt;
=== Wish list - Possible long term requirements ===&lt;br /&gt;
A list of these is kept on the [[VDCT Bugs and Features Page]]. This contains a list of known bugs, plus a list of things that people have come up with as &amp;quot;wouldn't it be nice if&amp;quot; (WIBNIf) ideas. They may or may not get implemented. In true EPICS tradition, if you really want something the best way to get it is to fund the development or contribute effort. &lt;br /&gt;
&lt;br /&gt;
If you want a feature not mentioned, [mailto:Nick.Rees_at_diamond.ac.uk email me], or edit the page directly if you have a wiki username.&lt;br /&gt;
&lt;br /&gt;
A list of recently implemented features is shown below:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Title !! Description &lt;br /&gt;
|-&lt;br /&gt;
| Multiple files                   || Have the ability of having multiple db files open at one time.&lt;br /&gt;
|-&lt;br /&gt;
| GDCT to VDCT conversion tool.    || Done. See [http://www.aps.anl.gov/epics/extensions/gdct/index.php GDCT 1.3].&lt;br /&gt;
|-&lt;br /&gt;
| CAPFAST to VDCT conversion tool. || Available in build 1249.&lt;br /&gt;
|-&lt;br /&gt;
| Remote mode  || Available as of build 1248  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VDCT mailing list ===&lt;br /&gt;
If you are interested in the development of VDCT you can subscribe to the VDCT [http://lists.cosylab.com/ mailing list]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools ===&lt;br /&gt;
Following the standard laid down in the Application Developers Guide, VDCT requires record names to be enclosed in double quotes. This can cause a problem if you try to read a database that's been created on a text editor.&lt;br /&gt;
&lt;br /&gt;
If you attempt to read a database in to VDCT that has macro substitution fields in the record name but does not have double quotes around the record names you will see an error. e.g. a database file with record names like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
record(sub,$(dev):StandardizeSUB) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
record(ai,$(dev):CurrentAI) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will produce this error on the VDCT console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: Record with name '$' already exists, skiping...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following perl script processes database files, adding quotes to record names when required.&lt;br /&gt;
&lt;br /&gt;
* [http:/epics/extensions/vdct/addQuotes.pl addQuotes.pl] (7 Aug 2002)&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=272</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=272"/>
		<updated>2005-06-09T14:27:53Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Removed the nowiki tags that had been added inadvertently&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bug fixes ==&lt;br /&gt;
&lt;br /&gt;
# 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).&lt;br /&gt;
# 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.&lt;br /&gt;
# Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.&lt;br /&gt;
# 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.&lt;br /&gt;
# Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.&lt;br /&gt;
# 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.&lt;br /&gt;
# Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.&lt;br /&gt;
# The font used for the name of a template instantiated in a hierarchy is too large, IMHO.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
shoaf@strmeng1 201&amp;gt; vdct&lt;br /&gt;
Loading VisualDCT v2.4 build 1256...&lt;br /&gt;
 &lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
  &lt;br /&gt;
o) Usage: java com.cosylab.vdct.VisualDCT [&amp;lt;DBDs&amp;gt;] [&amp;lt;DB&amp;gt;]&lt;br /&gt;
 &lt;br /&gt;
shoaf@strmeng1 202&amp;gt; java -version&lt;br /&gt;
java version &amp;quot;1.4.2_07&amp;quot;&lt;br /&gt;
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-215)&lt;br /&gt;
Java HotSpot(TM) Client VM (build 1.4.2-50, mixed mode)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Things we can do now because they are minor funtional improvements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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). &lt;br /&gt;
# Add an environment variable search path for .vdb files used in the hierarchy so you can store useful modules in a central location.&lt;br /&gt;
# Add support for EPICS_DB_INCLUDE_PATH in dbd file expansion. &lt;br /&gt;
# 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).&lt;br /&gt;
# 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)&lt;br /&gt;
# Allow you to change the size of drawing objects (lines and boxes).&lt;br /&gt;
# Allow you to select lines and wire segments by clicking on the line, not just the anchor.&lt;br /&gt;
# Add the ability to copy field values to multiple records quickly – possibly by selecting multiple records and then modifying the Inspector so it only displays the intersection set of all the available fields. This may be done as part of the spreadsheet view upgrade.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
=== Major, EPICS V4 related improvements ===&lt;br /&gt;
# 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. &lt;br /&gt;
# Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
&lt;br /&gt;
=== Capfast compatibility ===&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
=== Wishful thinking enhancements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=265</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=265"/>
		<updated>2005-06-09T14:24:42Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added MacOS Java Bug&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bug fixes ==&lt;br /&gt;
&lt;br /&gt;
# 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).&lt;br /&gt;
# 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.&lt;br /&gt;
# Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.&lt;br /&gt;
# 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.&lt;br /&gt;
# Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.&lt;br /&gt;
# 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.&lt;br /&gt;
# Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.&lt;br /&gt;
# The font used for the name of a template instantiated in a hierarchy is too large, IMHO.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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:&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
shoaf@strmeng1 201&amp;gt; vdct&lt;br /&gt;
Loading VisualDCT v2.4 build 1256...&lt;br /&gt;
 &lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
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&lt;br /&gt;
java(5397,0x1804600) malloc: *** set a breakpoint in szone_error to debug&lt;br /&gt;
  &lt;br /&gt;
o) Usage: java com.cosylab.vdct.VisualDCT [&amp;lt;DBDs&amp;gt;] [&amp;lt;DB&amp;gt;]&lt;br /&gt;
 &lt;br /&gt;
shoaf@strmeng1 202&amp;gt; java -version&lt;br /&gt;
java version &amp;quot;1.4.2_07&amp;quot;&lt;br /&gt;
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-215)&lt;br /&gt;
Java HotSpot(TM) Client VM (build 1.4.2-50, mixed mode)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Things we can do now because they are minor funtional improvements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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). &lt;br /&gt;
# Add an environment variable search path for .vdb files used in the hierarchy so you can store useful modules in a central location.&lt;br /&gt;
# Add support for EPICS_DB_INCLUDE_PATH in dbd file expansion. &lt;br /&gt;
# 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).&lt;br /&gt;
# 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)&lt;br /&gt;
# Allow you to change the size of drawing objects (lines and boxes).&lt;br /&gt;
# Allow you to select lines and wire segments by clicking on the line, not just the anchor.&lt;br /&gt;
# Add the ability to copy field values to multiple records quickly – possibly by selecting multiple records and then modifying the Inspector so it only displays the intersection set of all the available fields. This may be done as part of the spreadsheet view upgrade.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
=== Major, EPICS V4 related improvements ===&lt;br /&gt;
# 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. &lt;br /&gt;
# Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
&lt;br /&gt;
=== Capfast compatibility ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&amp;lt;nowiki&amp;gt;Insert non-formatted text here&lt;br /&gt;
&lt;br /&gt;
=== Wishful thinking enhancements ===&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=266</id>
		<title>VDCT Status Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=266"/>
		<updated>2005-06-09T14:06:20Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Removed bugs and features to the relevant page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended to inform the EPICS community of the development status of VDCT. It is meant to complement the information on the Cosylab page, not duplicate it.&lt;br /&gt;
&lt;br /&gt;
=== What is VDCT? ===&lt;br /&gt;
&lt;br /&gt;
VDCT is the Visual Database Configuration Tool. We hope that it will become the standard database configuration tool. It began as a project funded by the Swiss Light Source developed by [http://www.cosylab.com Cosylab]. Recent development has been funded by the APS, Diamond and the SNS. The code development is being done by Cosylab. &lt;br /&gt;
&lt;br /&gt;
Cosylab and the SLS have kindly made VDCT available under an open source license. Source code and binaries are available from the Cosylab web site. &lt;br /&gt;
&lt;br /&gt;
I ([mailto:Nick.Rees_at_diamond.ac.uk Nick Rees], of [http://www.diamond.ac.uk Diamond Light Source]) try to act as the interface person between the EPICS community and Cosylab. &lt;br /&gt;
&lt;br /&gt;
=== Where to find it === &lt;br /&gt;
The main place for things VDCT is the [http://visualdct.cosylab.com Cosylab VDCT page]. Go to this page and click on the link under Builds. Here you will find links to the latest binaries, documentation, release notes and other useful information. &lt;br /&gt;
&lt;br /&gt;
=== Installation Tips ===&lt;br /&gt;
&lt;br /&gt;
You don't need to build VDCT to install it. You can just get hold of the binary files and run it. You will need V1.4 or greater of the Java Runtime Environment to run it. These notes refer to build 1257. Check that there are not later builds available before you download. &lt;br /&gt;
&lt;br /&gt;
# Go [http://visualdct.cosylab.com here] at the CosyLab site and click on the &amp;quot;Builds&amp;quot; link and then on the latest build number (at the time of writing this is &amp;quot;2.4.1257&amp;quot;) under the &amp;quot;Distribution&amp;quot; heading. &lt;br /&gt;
# On this page again click on the build number under the Distribution heading This should begin the download of the distribution zip file. &lt;br /&gt;
# Save the zip file somewhere convenient. &lt;br /&gt;
# Unzip the zip file, to somewhere convenient. On Windows systems a &amp;quot;vdct&amp;quot; directory in the &amp;quot;Program Files&amp;quot; directory seems a good place. &lt;br /&gt;
# You should then see a &amp;quot;2.4.1257&amp;quot; directory. In that you'll see a file named &amp;quot;runScript&amp;quot;. &lt;br /&gt;
# Execute the file named &amp;quot;runScript&amp;quot; and VDCT should start. On windows systems you will have to rename &amp;quot;runScript&amp;quot; to &amp;quot;runSript.bat&amp;quot; first. &lt;br /&gt;
&lt;br /&gt;
=== Current Status ===&lt;br /&gt;
As of 31 May 2005.&lt;br /&gt;
&lt;br /&gt;
The current build is 1257. This is the package D2 release. The known bugs are listed on the Cosylab web site. See the [http://www.cosylab.com/visualdct/builds/VisualDCT/2.4.1257/index.html Change Log] on the Cosylab Page.&lt;br /&gt;
&lt;br /&gt;
If you find any bugs not mentioned, please report them [mailto:bug@visualdct.cosylab.com here]. &lt;br /&gt;
&lt;br /&gt;
=== Wish list - Possible long term requirements ===&lt;br /&gt;
A list of these is kept on the [[VDCT Bugs and Features Page]]. This contains a list of known bugs, plus a list of things that people have come up with as &amp;quot;wouldn't it be nice if&amp;quot; (WIBNIf) ideas. They may or may not get implemented. In true EPICS tradition, if you really want something the best way to get it is to fund the development or contribute effort. &lt;br /&gt;
&lt;br /&gt;
If you want a feature not mentioned, [mailto:Nick.Rees_at_diamond.ac.uk email me], or edit the page directly if you have a wiki username.&lt;br /&gt;
&lt;br /&gt;
A list of recently implemented features is shown below:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Title !! Description &lt;br /&gt;
|-&lt;br /&gt;
| Multiple files                   || Have the ability of having multiple db files open at one time.&lt;br /&gt;
|-&lt;br /&gt;
| GDCT to VDCT conversion tool.    || Done. See [http://www.aps.anl.gov/epics/extensions/gdct/index.php GDCT 1.3].&lt;br /&gt;
|-&lt;br /&gt;
| CAPFAST to VDCT conversion tool. || Available in build 1249.&lt;br /&gt;
|-&lt;br /&gt;
| Remote mode  || Available as of build 1248  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VDCT mailing list ===&lt;br /&gt;
If you are interested in the development of VDCT you can subscribe to the VDCT [http://lists.cosylab.com/ mailing list]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools ===&lt;br /&gt;
Following the standard laid down in the Application Developers Guide, VDCT requires record names to be enclosed in double quotes. This can cause a problem if you try to read a database that's been created on a text editor.&lt;br /&gt;
&lt;br /&gt;
If you attempt to read a database in to VDCT that has macro substitution fields in the record name but does not have double quotes around the record names you will see an error. e.g. a database file with record names like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
record(sub,$(dev):StandardizeSUB) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
record(ai,$(dev):CurrentAI) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will produce this error on the VDCT console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: Record with name '$' already exists, skiping...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following perl script processes database files, adding quotes to record names when required.&lt;br /&gt;
&lt;br /&gt;
* [http:/epics/extensions/vdct/addQuotes.pl addQuotes.pl] (7 Aug 2002)&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=264</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=264"/>
		<updated>2005-06-09T14:00:48Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Added items from Johns old VDCT Status page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bug fixes ==&lt;br /&gt;
&lt;br /&gt;
# 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).&lt;br /&gt;
# 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.&lt;br /&gt;
# Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.&lt;br /&gt;
# 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.&lt;br /&gt;
# Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.&lt;br /&gt;
# 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.&lt;br /&gt;
# Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.&lt;br /&gt;
# The font used for the name of a template instantiated in a hierarchy is too large, IMHO.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Things we can do now because they are minor funtional improvements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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). &lt;br /&gt;
# Add an environment variable search path for .vdb files used in the hierarchy so you can store useful modules in a central location.&lt;br /&gt;
# Add support for EPICS_DB_INCLUDE_PATH in dbd file expansion. &lt;br /&gt;
# 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).&lt;br /&gt;
# 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)&lt;br /&gt;
# Allow you to change the size of drawing objects (lines and boxes).&lt;br /&gt;
# Allow you to select lines and wire segments by clicking on the line, not just the anchor.&lt;br /&gt;
# Add the ability to copy field values to multiple records quickly – possibly by selecting multiple records and then modifying the Inspector so it only displays the intersection set of all the available fields. This may be done as part of the spreadsheet view upgrade.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
=== Major, EPICS V4 related improvements ===&lt;br /&gt;
# 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. &lt;br /&gt;
# Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
&lt;br /&gt;
=== Capfast compatibility ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&amp;lt;nowiki&amp;gt;Insert non-formatted text here&lt;br /&gt;
&lt;br /&gt;
=== Wishful thinking enhancements ===&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; 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).''&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=262</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=262"/>
		<updated>2005-06-09T13:54:33Z</updated>

		<summary type="html">&lt;p&gt;NickRees: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Note:* To edit this page click the &amp;quot;Edit Page&amp;quot; link at the bottom. For more help on editing, look at the [[DLS wiki]] page.&lt;br /&gt;
&lt;br /&gt;
== Bug fixes ==&lt;br /&gt;
&lt;br /&gt;
# 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).&lt;br /&gt;
# 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.&lt;br /&gt;
# Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.&lt;br /&gt;
# 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.&lt;br /&gt;
# Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.&lt;br /&gt;
# 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.&lt;br /&gt;
# Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.&lt;br /&gt;
# The font used for the name of a template instantiated in a hierarchy is too large, IMHO.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Things we can do now because they are minor funtional improvements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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). &lt;br /&gt;
# Add an environment variable search path for .vdb files used in the hierarchy so you can store useful modules in a central location.&lt;br /&gt;
# Add support for EPICS_DB_INCLUDE_PATH in dbd file expansion. &lt;br /&gt;
# 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).&lt;br /&gt;
# 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)&lt;br /&gt;
# Allow you to change the size of drawing objects (lines and boxes).&lt;br /&gt;
# Allow you to select lines and wire segments by clicking on the line, not just the anchor.&lt;br /&gt;
# Add the ability to copy field values to multiple records quickly – possibly by selecting multiple records and then modifying the Inspector so it only displays the intersection set of all the available fields. This may be done as part of the spreadsheet view upgrade.&lt;br /&gt;
&lt;br /&gt;
=== Major, EPICS V4 related improvements ===&lt;br /&gt;
# 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. &lt;br /&gt;
# Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
&lt;br /&gt;
=== Capfast compatibility ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&amp;lt;nowiki&amp;gt;Insert non-formatted text here&lt;br /&gt;
&lt;br /&gt;
=== Wishful thinking enhancements ===&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;br /&gt;
# Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
# Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; displays. ''(Editors note: I think this is has really been implemented in hierarchy implementation).''&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=321</id>
		<title>Fundamental Tools and Popular Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=321"/>
		<updated>2005-05-31T12:11:03Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Removed direct link to bugs and features, plus cleaned up the cosylab link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just the start of a page, to be filled in by Matthias when he has time. I am just using it to link through to the VDCT page...&lt;br /&gt;
&lt;br /&gt;
== VDCT Developments ==&lt;br /&gt;
&lt;br /&gt;
VDCT development is now coordinated through Nick Rees, at Diamond Light Source. He will be using these pages to help this work through the new [[VDCT Status Page]].&lt;br /&gt;
&lt;br /&gt;
Note that the main reference for obtaining the VDCT distribution is still the [http://visualdct.cosylab.com CosyLab VDCT page].&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=263</id>
		<title>VDCT Status Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=263"/>
		<updated>2005-05-31T12:09:06Z</updated>

		<summary type="html">&lt;p&gt;NickRees: More updating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended to inform the EPICS community of the development status of VDCT. It is meant to complement the information on the Cosylab page, not duplicate it.&lt;br /&gt;
&lt;br /&gt;
=== What is VDCT? ===&lt;br /&gt;
&lt;br /&gt;
VDCT is the Visual Database Configuration Tool. We hope that it will become the standard database configuration tool. It began as a project funded by the Swiss Light Source developed by [http://www.cosylab.com Cosylab]. Recent development has been funded by the APS, Diamond and the SNS. The code development is being done by Cosylab. &lt;br /&gt;
&lt;br /&gt;
Cosylab and the SLS have kindly made VDCT available under an open source license. Source code and binaries are available from the Cosylab web site. &lt;br /&gt;
&lt;br /&gt;
I ([mailto:Nick.Rees_at_diamond.ac.uk Nick Rees], of [http://www.diamond.ac.uk Diamond Light Source]) try to act as the interface person between the EPICS community and Cosylab. &lt;br /&gt;
&lt;br /&gt;
=== Where to find it === &lt;br /&gt;
The main place for things VDCT is the [http://visualdct.cosylab.com Cosylab VDCT page]. Go to this page and click on the link under Builds. Here you will find links to the latest binaries, documentation, release notes and other useful information. &lt;br /&gt;
&lt;br /&gt;
=== Installation Tips ===&lt;br /&gt;
&lt;br /&gt;
You don't need to build VDCT to install it. You can just get hold of the binary files and run it. You will need V1.4 or greater of the Java Runtime Environment to run it. These notes refer to build 1257. Check that there are not later builds available before you download. &lt;br /&gt;
&lt;br /&gt;
# Go [http://visualdct.cosylab.com here] at the CosyLab site and click on the &amp;quot;Builds&amp;quot; link and then on the latest build number (at the time of writing this is &amp;quot;2.4.1257&amp;quot;) under the &amp;quot;Distribution&amp;quot; heading. &lt;br /&gt;
# On this page again click on the build number under the Distribution heading This should begin the download of the distribution zip file. &lt;br /&gt;
# Save the zip file somewhere convenient. &lt;br /&gt;
# Unzip the zip file, to somewhere convenient. On Windows systems a &amp;quot;vdct&amp;quot; directory in the &amp;quot;Program Files&amp;quot; directory seems a good place. &lt;br /&gt;
# You should then see a &amp;quot;2.4.1257&amp;quot; directory. In that you'll see a file named &amp;quot;runScript&amp;quot;. &lt;br /&gt;
# Execute the file named &amp;quot;runScript&amp;quot; and VDCT should start. On windows systems you will have to rename &amp;quot;runScript&amp;quot; to &amp;quot;runSript.bat&amp;quot; first. &lt;br /&gt;
&lt;br /&gt;
=== Current Status ===&lt;br /&gt;
As of 31 May 2005.&lt;br /&gt;
&lt;br /&gt;
The current build is 1257. This is the package D2 release. The known bugs are listed on the Cosylab web site. See the [http://www.cosylab.com/visualdct/builds/VisualDCT/2.4.1257/index.html Change Log] on the Cosylab Page.&lt;br /&gt;
&lt;br /&gt;
If you find any bugs not mentioned, please report them [mailto:bug@visualdct.cosylab.com here]. &lt;br /&gt;
&lt;br /&gt;
=== Wish list - Possible long term requirements ===&lt;br /&gt;
A list of these is kept on the [[VDCT Bugs and Features Page]]. This contains a list of known bugs, plus a list of things that people have come up with as &amp;quot;wouldn't it be nice if&amp;quot; (WIBNIf) ideas. They may or may not get implemented. In true EPICS tradition, if you really want something the best way to get it is to fund the development or contribute effort. &lt;br /&gt;
&lt;br /&gt;
If you want a feature not mentioned, [mailto:Nick.Rees_at_diamond.ac.uk email me], or edit the page directly if you have a wiki username.&lt;br /&gt;
&lt;br /&gt;
A list of recently implemented features is shown below:&lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Title !! Description &lt;br /&gt;
|-&lt;br /&gt;
| Multiple files                   || Have the ability of having multiple db files open at one time.&lt;br /&gt;
|-&lt;br /&gt;
| GDCT to VDCT conversion tool.    || Done. See [http://www.aps.anl.gov/epics/extensions/gdct/index.php GDCT 1.3].&lt;br /&gt;
|-&lt;br /&gt;
| CAPFAST to VDCT conversion tool. || Available in build 1249.&lt;br /&gt;
|-&lt;br /&gt;
|Interact with high level tools.   || Interactions with other high level tools, e.g. Oracle, should be defined. Could be done with plugins?  &lt;br /&gt;
|-&lt;br /&gt;
| Tutorial.                        || Have a tutorial/quick start guide available on line. Could be produced by someone in the community.  &lt;br /&gt;
|-&lt;br /&gt;
| Expand manual. || The manual is good, but brief. It could use some expansion. Could be produced by someone in the community.  &lt;br /&gt;
|-&lt;br /&gt;
| Auto placement. || Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
|-&lt;br /&gt;
| Simulation.  || Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
|-&lt;br /&gt;
| Group links.  || Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; displays.  &lt;br /&gt;
|-&lt;br /&gt;
| Remote mode  || Available as of build 1248  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VDCT mailing list ===&lt;br /&gt;
If you are interested in the development of VDCT you can subscribe to the VDCT [http://lists.cosylab.com/ mailing list]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools ===&lt;br /&gt;
Following the standard laid down in the Application Developers Guide, VDCT requires record names to be enclosed in double quotes. This can cause a problem if you try to read a database that's been created on a text editor.&lt;br /&gt;
&lt;br /&gt;
If you attempt to read a database in to VDCT that has macro substitution fields in the record name but does not have double quotes around the record names you will see an error. e.g. a database file with record names like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
record(sub,$(dev):StandardizeSUB) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
record(ai,$(dev):CurrentAI) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will produce this error on the VDCT console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: Record with name '$' already exists, skiping...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following perl script processes database files, adding quotes to record names when required.&lt;br /&gt;
&lt;br /&gt;
* [http:/epics/extensions/vdct/addQuotes.pl addQuotes.pl] (7 Aug 2002)&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=225</id>
		<title>VDCT Status Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=225"/>
		<updated>2005-05-31T11:00:39Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Updated links and info for curren date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended to inform the EPICS community of the development status of VDCT. It is meant to complement the information on the Cosylab page, not duplicate it.&lt;br /&gt;
&lt;br /&gt;
=== What is VDCT? ===&lt;br /&gt;
&lt;br /&gt;
VDCT is the Visual Database Configuration Tool. We hope that it will become the standard database configuration tool. It began as a project funded by the Swiss Light Source developed by [http://www.cosylab.com Cosylab]. Recent development has been funded by the APS, Diamond and the SNS. The code development is being done by Cosylab. &lt;br /&gt;
&lt;br /&gt;
Cosylab and the SLS have kindly made VDCT available under an open source license. Source code and binaries are available from the Cosylab web site. &lt;br /&gt;
&lt;br /&gt;
I ([mailto:Nick.Rees_at_diamond.ac.uk Nick Rees], of [http://www.diamond.ac.uk Diamond Light Source]) try to act as the interface person between the EPICS community and Cosylab. &lt;br /&gt;
&lt;br /&gt;
=== Where to find it === &lt;br /&gt;
The main place for things VDCT is the [http://visualdct.cosylab.com Cosylab VDCT page]. Go to this page and click on the link under Builds. Here you will find links to the latest binaries, documentation, release notes and other useful information. &lt;br /&gt;
&lt;br /&gt;
=== Installation Tips ===&lt;br /&gt;
&lt;br /&gt;
You don't need to build VDCT to install it. You can just get hold of the binary files and run it. You will need V1.4 or greater of the Java Runtime Environment to run it. These notes refer to build 1257. Check that there are not later builds available before you download. &lt;br /&gt;
&lt;br /&gt;
# Go [http://visualdct.cosylab.com here] at the CosyLab site and click on the latest build number (at the time of writing this is&amp;quot;2.4.1257&amp;quot;) under the &amp;quot;Distribution&amp;quot; heading. &lt;br /&gt;
# On this page again click on the build number under the Distribution heading This should begin the download of the distribution zip file. &lt;br /&gt;
# Save the zip file somewhere convenient. &lt;br /&gt;
# Unzip the zip file, to somewhere convenient. On Windows systems a &amp;quot;vdct&amp;quot; directory in the &amp;quot;Program Files&amp;quot; directory seems a good place. &lt;br /&gt;
# You should then see a &amp;quot;2.4.1257&amp;quot; directory. In that you'll see a file named &amp;quot;runScript&amp;quot;. &lt;br /&gt;
# Execute the file named &amp;quot;runScript&amp;quot; and VDCT should start. On windows systems you will have to rename &amp;quot;runScript&amp;quot; to &amp;quot;runSript.bat&amp;quot; first. &lt;br /&gt;
&lt;br /&gt;
=== Current Status ===&lt;br /&gt;
As of 31 May 2005.&lt;br /&gt;
&lt;br /&gt;
The current build is 1257. This is the package D2 release. The known bugs are listed on the Cosylab web site. See the [http://www.cosylab.com/visualdct/builds/VisualDCT/2.4.1257/index.html Change Log] on the Cosylab Page.&lt;br /&gt;
&lt;br /&gt;
If you find any bugs not mentioned, please report them [mailto:bug@visualdct.cosylab.com here]. &lt;br /&gt;
&lt;br /&gt;
=== Wish list - Possible long term requirements ===&lt;br /&gt;
These are things that people have come up with as &amp;quot;wouldn't it be nice if&amp;quot; (WIBNIf) ideas. They may or may not get implemented. In true EPICS tradition, if you really want something the best way to get it is to fund the development or contribute effort. &lt;br /&gt;
&lt;br /&gt;
If you want a feature not mentioned, send a request [mailto:bug@visualdct.cosylab.com here]. &lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Title !! Description &lt;br /&gt;
|-&lt;br /&gt;
| Multiple files                   || Have the ability of having multiple db files open at one time.&lt;br /&gt;
|-&lt;br /&gt;
| GDCT to VDCT conversion tool.    || Done. See [http://www.aps.anl.gov/epics/extensions/gdct/index.php GDCT 1.3].&lt;br /&gt;
|-&lt;br /&gt;
| CAPFAST to VDCT conversion tool. || Available in build 1249.&lt;br /&gt;
|-&lt;br /&gt;
|Interact with high level tools.   || Interactions with other high level tools, e.g. Oracle, should be defined. Could be done with plugins?  &lt;br /&gt;
|-&lt;br /&gt;
| Tutorial.                        || Have a tutorial/quick start guide available on line. Could be produced by someone in the community.  &lt;br /&gt;
|-&lt;br /&gt;
| Expand manual. || The manual is good, but brief. It could use some expansion. Could be produced by someone in the community.  &lt;br /&gt;
|-&lt;br /&gt;
| Auto placement. || Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
|-&lt;br /&gt;
| Simulation.  || Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
|-&lt;br /&gt;
| Group links.  || Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; displays.  &lt;br /&gt;
|-&lt;br /&gt;
| Remote mode  || Available as of build 1248  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VDCT mailing list ===&lt;br /&gt;
If you are interested in the development of VDCT you can subscribe to the VDCT [http://lists.cosylab.com/ mailing list]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools ===&lt;br /&gt;
Following the standard laid down in the Application Developers Guide, VDCT requires record names to be enclosed in double quotes. This can cause a problem if you try to read a database that's been created on a text editor.&lt;br /&gt;
&lt;br /&gt;
If you attempt to read a database in to VDCT that has macro substitution fields in the record name but does not have double quotes around the record names you will see an error. e.g. a database file with record names like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
record(sub,$(dev):StandardizeSUB) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
record(ai,$(dev):CurrentAI) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will produce this error on the VDCT console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: Record with name '$' already exists, skiping...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following perl script processes database files, adding quotes to record names when required.&lt;br /&gt;
&lt;br /&gt;
* [http:/epics/extensions/vdct/addQuotes.pl addQuotes.pl] (7 Aug 2002)&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=224</id>
		<title>VDCT Status Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Status_Page&amp;diff=224"/>
		<updated>2005-05-31T10:51:53Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Original version, copied from John Macleans original.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended to inform the EPICS community of the development status of VDCT. It meant to complement the information on the Cosylab page, not duplicate it.&lt;br /&gt;
&lt;br /&gt;
=== What is VDCT? ===&lt;br /&gt;
&lt;br /&gt;
VDCT is the Visual Database Configuration Tool. We hope that it we become the standard database configuration tool. It began as a project funded by the Swiss Light Source developed by [http://visualdct.cosylab.com Cosylab]. Recent development has been funded by the APS, DIAMOND and the SNS. The code development is being done by Cosylab. &lt;br /&gt;
&lt;br /&gt;
Cosylab and the SLS have kindly made VDCT available under an open source license. Source code and binaries are available from the Cosylab web site. &lt;br /&gt;
&lt;br /&gt;
I ([mailto:Nick.Rees_at_diamond.ac.uk Nick Rees], of [http://www.diamond.ac.uk Diamond Light Source]) try to act as the interface person between the EPICS community and Cosylab. &lt;br /&gt;
&lt;br /&gt;
=== Where to find it === &lt;br /&gt;
The main place for things VDCT is the [http://www.cosylab.com/customer_area.php?mid=6&amp;amp;sid=26&amp;amp;ssid=2 Cosylab page]. Go to this page and click on the link under Builds. Here you will find links to the latest binaries, documentation, release notes and other useful information. &lt;br /&gt;
&lt;br /&gt;
=== Installation Tips ===&lt;br /&gt;
&lt;br /&gt;
You don't need to build VDCT to install it. You can just get hold of the binary files and run it. You will need V1.4 or greater of the Java Runtime Environment to run it. These notes refer to build 1249. Check that there are not later builds available before you download. &lt;br /&gt;
&lt;br /&gt;
# Go [http://www.cosylab.com/visualdct/builds/VisualDCT/ here] at the CosyLab site and click on the latest build number (at the time of writing this is&amp;quot;2.3.1249&amp;quot;) under the &amp;quot;Distribution&amp;quot; heading. &lt;br /&gt;
# On this page again click on the build number under the Distribution heading This should begin the download of the distribution zip file. &lt;br /&gt;
# Save the zip file somewhere convenient. &lt;br /&gt;
# Unzip the zip file, to somewhere convenient. On Windows systems a &amp;quot;vdct&amp;quot; directory in the &amp;quot;Program Files&amp;quot; directory seems a good place. &lt;br /&gt;
# You should then see a &amp;quot;2.3.1249&amp;quot; directory. In that you'll see a file named &amp;quot;runScript&amp;quot;. &lt;br /&gt;
# Execute the file named &amp;quot;runScript&amp;quot; and VDCT should start. On windows systems you will have to rename &amp;quot;runScript&amp;quot; to &amp;quot;runSript.bat&amp;quot; first. &lt;br /&gt;
&lt;br /&gt;
=== Current Status ===&lt;br /&gt;
As of 31 May 2005.&lt;br /&gt;
&lt;br /&gt;
The current build is 1249. This is the package C release. The known bugs are listed on the Cosylab web site. See the [http://www.cosylab.com/visualdct/builds/VisualDCT/2.4.1249/index.html Change Log] on the Cosylab Page.&lt;br /&gt;
&lt;br /&gt;
If you find any bugs not mentioned, please report them [mailto:bug@visualdct.cosylab.com here]. &lt;br /&gt;
&lt;br /&gt;
=== Wish list - Possible long term requirements ===&lt;br /&gt;
These are things that people have come up with as &amp;quot;wouldn't it be nice if&amp;quot; (WIBNIf) ideas. They may or may not get implemented. In true EPICS tradition, if you really want something the best way to get it is to fund the development or contribute effort. &lt;br /&gt;
&lt;br /&gt;
If you want a feature not mentioned, send a request [mailto:bug@visualdct.cosylab.com here]. &lt;br /&gt;
&lt;br /&gt;
{| BORDER=&amp;quot;1&amp;quot;&lt;br /&gt;
! Title !! Description &lt;br /&gt;
|-&lt;br /&gt;
| Multiple files                   || Have the ability of having multiple db files open at one time.&lt;br /&gt;
|-&lt;br /&gt;
| GDCT to VDCT conversion tool.    || Done. See [http://www.aps.anl.gov/epics/extensions/gdct/index.php GDCT 1.3].&lt;br /&gt;
|-&lt;br /&gt;
| CAPFAST to VDCT conversion tool. || Available in build 1249.&lt;br /&gt;
|-&lt;br /&gt;
|Interact with high level tools.   || Interactions with other high level tools, e.g. Oracle, should be defined. Could be done with plugins?  &lt;br /&gt;
|-&lt;br /&gt;
| Tutorial.                        || Have a tutorial/quick start guide available on line. Could be produced by someone in the community.  &lt;br /&gt;
|-&lt;br /&gt;
| Expand manual. || The manual is good, but brief. It could use some expansion. Could be produced by someone in the community.  &lt;br /&gt;
|-&lt;br /&gt;
| Auto placement. || Provide an &amp;quot;auto-placement&amp;quot; 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).  &lt;br /&gt;
|-&lt;br /&gt;
| Simulation.  || Visualization of the process chain (an EPICS database simulator)  &lt;br /&gt;
|-&lt;br /&gt;
| Group links.  || Show links between groups (display a group as a &amp;quot;meta-record&amp;quot;) display external links also in the &amp;quot;group&amp;quot; displays.  &lt;br /&gt;
|-&lt;br /&gt;
| Remote mode  || Available as of build 1248  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== VDCT mailing list ===&lt;br /&gt;
If you are interested in the development of VDCT you can subscribe to the VDCT [http://lists.cosylab.com/ mailing list]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Useful Tools ===&lt;br /&gt;
Following the standard laid down in the Application Developers Guide, VDCT requires record names to be enclosed in double quotes. This can cause a problem if you try to read a database that's been created on a text editor.&lt;br /&gt;
&lt;br /&gt;
If you attempt to read a database in to VDCT that has macro substitution fields in the record name but does not have double quotes around the record names you will see an error. e.g. a database file with record names like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
record(sub,$(dev):StandardizeSUB) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
record(ai,$(dev):CurrentAI) {&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will produce this error on the VDCT console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: Record with name '$' already exists, skiping...&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following perl script processes database files, adding quotes to record names when required.&lt;br /&gt;
&lt;br /&gt;
* [http:/epics/extensions/vdct/addQuotes.pl addQuotes.pl] (7 Aug 2002)&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=226</id>
		<title>Fundamental Tools and Popular Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=226"/>
		<updated>2005-05-31T10:06:30Z</updated>

		<summary type="html">&lt;p&gt;NickRees: /* VDCT Developments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just the start of a page, to be filled in by Matthias when he has time. I am just using it to link through to the VDCT page...&lt;br /&gt;
&lt;br /&gt;
== VDCT Developments ==&lt;br /&gt;
&lt;br /&gt;
VDCT development is now coordinated through Nick Rees, at Diamond Light Source. He will be using these pages to help this work through the new [[VDCT Status Page]]. There is also a [[VDCT Bugs and Features Page]].&lt;br /&gt;
&lt;br /&gt;
Note that the main reference for obtaining the VDCT distribution is still the [http://www.cosylab.com/customer_area.php?mid=6&amp;amp;sid=26&amp;amp;ssid=2 CosyLab VDCT page].&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=261</id>
		<title>VDCT Bugs and Features Page</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=VDCT_Bugs_and_Features_Page&amp;diff=261"/>
		<updated>2005-05-09T10:41:50Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Initial version of bugs and features page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Note:* To edit this page click the &amp;quot;Edit Page&amp;quot; link at the bottom. For more help on editing, look at the [[DLS wiki]] page.&lt;br /&gt;
&lt;br /&gt;
== Bug fixes ==&lt;br /&gt;
&lt;br /&gt;
# 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).&lt;br /&gt;
# 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.&lt;br /&gt;
# Fix problems with undo/redo. Sometimes when you undo a move the objects don’t go back in the same place.&lt;br /&gt;
# 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.&lt;br /&gt;
# Near-vertical wires shouldn’t get an awkward kink in them when you add a connection anchor. This isn’t intuitive.&lt;br /&gt;
# 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.&lt;br /&gt;
# Wire anchor connectors that are connected to a template instantiation in a hierarchy don’t get preserved through a save/restore cycle.&lt;br /&gt;
# The font used for the name of a template instantiated in a hierarchy is too large, IMHO.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
== Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Things we can do now because they are minor funtional improvements ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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). &lt;br /&gt;
# Add an environment variable search path for .vdb files used in the hierarchy so you can store useful modules in a central location.&lt;br /&gt;
# Add support for EPICS_DB_INCLUDE_PATH in dbd file expansion. &lt;br /&gt;
# 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).&lt;br /&gt;
# 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)&lt;br /&gt;
# Allow you to change the size of drawing objects (lines and boxes).&lt;br /&gt;
# Allow you to select lines and wire segments by clicking on the line, not just the anchor.&lt;br /&gt;
# Add the ability to copy field values to multiple records quickly – possibly by selecting multiple records and then modifying the Inspector so it only displays the intersection set of all the available fields. This may be done as part of the spreadsheet view upgrade.&lt;br /&gt;
&lt;br /&gt;
=== Major, EPICS V4 related improvements ===&lt;br /&gt;
# Define a relational database interface that will allow VDCT to 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. This is a big subject and falls naturally into the EPICS V4 domain.&lt;br /&gt;
# Allow a simple arithmetic syntax in macro expansion. e.g. if &amp;lt;tt&amp;gt;$(basenum)=10&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basenum:+1)=11&amp;lt;/tt&amp;gt;. 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 &amp;lt;tt&amp;gt;$(basename)=FF&amp;lt;/tt&amp;gt; then &amp;lt;tt&amp;gt;$(basename:+0x3)=102&amp;lt;/tt&amp;gt;, 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 &amp;lt;tt&amp;gt;$(($(basename)+3))&amp;lt;/tt&amp;gt; syntax as an alternative). This may not be V4, but the concept of substitution and macros may be a bigger issue.&lt;br /&gt;
&lt;br /&gt;
=== Capfast compatibility ===&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
&lt;br /&gt;
=== Wishful thinking enhancements ===&lt;br /&gt;
&lt;br /&gt;
# 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.&lt;br /&gt;
# 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.&lt;br /&gt;
# 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...)&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
	<entry>
		<id>https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=223</id>
		<title>Fundamental Tools and Popular Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki-ext.aps.anl.gov/epics/index.php?title=Fundamental_Tools_and_Popular_Extensions&amp;diff=223"/>
		<updated>2005-05-09T10:31:42Z</updated>

		<summary type="html">&lt;p&gt;NickRees: Initial page for VDCT developments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just the start of a page, to be filled in by Matthias when he has time. I am just using it to link through to the VDCT page...&lt;br /&gt;
&lt;br /&gt;
== VDCT Developments ==&lt;br /&gt;
&lt;br /&gt;
VDCT development is now coordinated through Nick Rees, at Diamond Light Source. He will be using these pages to help this work and to start this there is a [[VDCT Bugs and Features Page]].&lt;br /&gt;
&lt;br /&gt;
Note that the main reference for obtaining the VDCT distribution is still the [http://www.cosylab.com/customer_area.php?mid=6&amp;amp;sid=26&amp;amp;ssid=2 CosyLab VDCT page].&lt;/div&gt;</summary>
		<author><name>NickRees</name></author>
	</entry>
</feed>