Experimental Physics and
| |||||||||||||||
|
we just found the "feature" again, that in record-sections of db-files, the DTYP field has to be set before the INP or OUT field (at least for INST_IO), it took us an hour or two to track this down. I didn't search for that in the AppDevGuide and other docs, since I'm afraid (and definitely hope), I'll find that documented, since I found tha last reference to that "feature" on tech-talk back in '99. It was undocumented back then... So for about 10 years, we didn't have a problem with that here at BESSY, but the following is, what just happened: 1. A colleague created a db-file for his application with vdct * he set the INP field of his whatever-in-record properly, but forgot to set the DTYP at all 2. He recognizes his mistake and opens his db-file in vdct again and sets DTYP as well So far, everything looks good, BUT: * When vdct writes the db-file, it puts the fields in the order in that they were set! Fields added in another vdct-session or after another "Open" are appended to the list of already defined fields! * Hence, vdct creates a db-file, that won't work at all (INP is set before DTYP is) while looking absolutely correct (to the untrained eye). My first suggestion would be to change dbLoadRecords() (dbPutString(), and/or setLinkType() in dbStaticLib.c) and remove the dependency, but I also see, that it's a lot easier to modify vdct in a way to always write the fields in the order they were defined in the dbd-file (or at least write DTYP before INP or OUT). The latter would be a workaround, that would keep us safe for the next 10 years... Regards, Thomas -- ______________________________________________________________________ /homas.Birke @ bessy.de BESSY Tel: +49 30 6392 4934 Albert Einstein StraÃe 15 Fax: +49 30 6392 4859 12489 Berlin Germany
| ||||||||||||||
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |