Note version numbering got messed up because the 3.13 and 3.14 versions are on separate development tracks. The 3.14 module took its number from the 'std' module, (from which it was extracted), while the 3.13 version (which was never a module) took its number from the save_restore.c file version. To avoid more confusion, the module version number has been bumped up past the most recent (and, I hope, final) 3.13 version, which was 3.5.
Differences from version 2-3:
This version can save and restore array-valued PV's. Array values are saved using database access, so you can't name array PV's hosted by some other IOC, as you can for scalar PV's. Array PV's are restored, using database access, in the second pass of reboot_restore (at initHookAfterInitDatabase), by which time array storage presumably has been allocated. It's not an error to include array PV's in a .sav file that is restored during reboot_restore's first pass, but reboot_restore won't try to restore them then.
This version supports PV's whose data type will change from DBF_NOACCESS to some writable type during record initialization. (Some genSub record fields behave in this way, and previous version of save_restore could not restore them.) It's not an error to include such PV's in a .sav file that is restored during reboot_restore's first pass, but reboot_restore won't try to restore them then.
The database and medm-display files by which save_restore reports its status to the user have been thoroughly reworked. Previously, the datebase and medm display file had to be hardwired with the names of save_restore files. Now, there are eight sets of save_restore status PV's, used on a first-come, first-served basis.
The order in which PV's occur in the .sav file is no longer reversed from the ordering in the corresponding .req file.
This is the first release of the synApps autosave module. Version numbering for this module begins with 2.3 because this module was split from version 2.2 of the std module, and I wanted to retain the CVS histories of module contents.This version is intended to build with EPICS base 3.14.5. Differences from software as previously released in std 2.2:
reload_xxx_set() was hanging because epicsMutex was being used for intertask signalling. Changed to epicsEvent.
Thread priorities adjusted.
Save files with versions earlier than 1.8 are exempt
from the ends-with-"