CVS-commit comments since synApps 5.0 ============================================================================= support/sscan/configure/CONFIG_APP Changes for 3.14.7 ============================================================================= support/sscan/configure/RULES.iocBoot deleted; Obsolete in 3.14.7 ============================================================================= support/sscan/documentation/Scans.ppt New file ============================================================================= support/sscan/documentation/busyRecord.html New file ============================================================================= support/sscan/documentation/sscanRecord.html Update for new data-storage-client handshake (AWAIT, AAWAIT). Lots of minor improvements. ============================================================================= support/sscan/documentation/sscanReleaseNotes.html New scanparm stuff Updated for synApps 5.1 ============================================================================= support/sscan/sscanApp/Db/scan.db don't specify TnCD=1, since this is already in the .dbd file ============================================================================= support/sscan/sscanApp/Db/alignParms.db AR field is now all uppercase ============================================================================= support/sscan/sscanApp/Db/scanParms.db AR field is now all uppercase ============================================================================= support/sscan/sscanApp/Db/scanParms2D.db AR field is now all uppercase ============================================================================= support/sscan/sscanApp/Db/scanParms2Pos.db AR field is now all uppercase. Allow positioners and sscan record to all be in different iocs. Don't FLNK to get second scanparm record processed, because then it can't know whether it's supposed to LOAD, or GO, or what. Now have OLOAD and OGO output links. Deleted unused scanParms_np record. Now first scanparm record writes NP to second record, which writes to the sscan record. scan parms for one-dimensional, two-positioner scan ============================================================================= support/sscan/sscanApp/Db/scanParmsRemote.db AR field is now all uppercase ============================================================================= support/sscan/sscanApp/Db/scan_settings.req added BSWAIT, ASWAIT, AWCT, AAWAIT, ACQT, ACQM, A1PB, A1CD ============================================================================= support/sscan/sscanApp/op/adl/display_fields.adl documentation displays ============================================================================= support/sscan/sscanApp/op/adl/scan.adl Show dstste (data-state) field mostly cosmetic changes ============================================================================= support/sscan/sscanApp/op/adl/scanParms2Pos.adl Allow positioners and sscan record to all be in different iocs. Use .BUSY instead of xxx:scanActive scan parms for one-dimensional, two-positioner scan ============================================================================= support/sscan/sscanApp/op/adl/scan_detector_help.adl documentation displays ============================================================================= support/sscan/sscanApp/op/adl/scan_full.adl Show dstste (data-state) field mostly cosmetic; added doc displays; await ============================================================================= support/sscan/sscanApp/op/adl/scan_help.adl Add dstste (data-state) field documentation displays ============================================================================= support/sscan/sscanApp/op/adl/scan_more.adl Show dstste (data-state) field mostly cosmetic; added doc displays; await ============================================================================= support/sscan/sscanApp/op/adl/scan_positioner_help.adl documentation displays ============================================================================= support/sscan/sscanApp/op/adl/scan_positioners.adl mostly cosmetic; added doc displays; await ============================================================================= support/sscan/sscanApp/op/adl/scan_triggers.adl mostly cosmetic; added doc displays; await ============================================================================= support/sscan/sscanApp/src/Makefile saveData now runs on solaris and linux publish sscanMenu.dbd ============================================================================= support/sscan/sscanApp/src/recDynLink.c Removed DEBUG macro; fixed format warning recDynLinkAddInput was failing to decrement precDynLink->onQueue if messageQueueSend() failed Use epicsThreadGetStackSize(epicsThreadStackBig) instead of hard-coded (20000) stack size taskDelay(1) -> epicsThreadSleep(epicsThreadSleepQuantum)) Check CA-context pointer. Added a bunch of debug statements Input and output tasks are no longer independent; they share one CA context. recDynLinkGetCallback() needs the behavior of the recDynOut task (ca_flush, no ca_pend_event), applied to a chid owned by the recDynInp task, so the simplest thing was to join them. Use ca_get_callback() to acquire data. Previously, the sscan record relied on monitors coming in before the callback resulting from a ca_put_callback -- whose processing triggered the monitors. This was almost always ok, but CA buffer overruns and TCP retries could result in the sscan record acquiring stale data. checks for null pointers Don't clear while an action message is on queue Added diagnostics for uninitialized pointer problem Changes for Windows compatibility ============================================================================= support/sscan/sscanApp/src/recDynLink.h Use ca_get_callback() to acquire data. Previously, the sscan record relied on monitors coming in before the callback resulting from a ca_put_callback -- whose processing triggered the monitors. This was almost always ok, but CA buffer overruns and TCP retries could result in the sscan record acquiring stale data. Don't clear while an action message is on queue Changes for Windows compatibility ============================================================================= support/sscan/sscanApp/src/req_file.c long int printf ============================================================================= support/sscan/sscanApp/src/req_file.h define our own max FILENAME_LENGTH ============================================================================= support/sscan/sscanApp/src/saveData.c Many changes; saveData now runs on solaris and linux Use epicsThreadGetStackSize(epicsThreadStackMedium) instead of hard-coded (10000) stack size merged 3.13 AWAIT handshake into 3.14 version Now scan record uses its double buffered data arrays, and doesn't wait for saveData unless both buffers are in use. ============================================================================= support/sscan/sscanApp/src/scanparmRecord.c New fields OLOAD and OGO -- links that write LOAD and GO fields, so multiple scanparm records can be combined into a single scan specification. Check links before using them. Fields NP & MP changed from DBF_SHORT to DBF_LONG ============================================================================= support/sscan/sscanApp/src/scanparmRecord.dbd Notes for last commit didn't mention new fields OLOAD and OGO -- links that write LOAD and GO fields, so multiple scanparm records can be combined into a single scan specification. Also, NP & MP changed from DBF_SHORT to DBF_LONG Now include sscanMenu.dbd, instead of having separate definitions of the menu fields ============================================================================= support/sscan/sscanApp/src/sscanMenu.dbd Lots of fixes to (new) recDynLinkGetCallback()-based data acquisition, mostly affecting array-valued PV's. Use ca_get_callback() to acquire data. Previously, the sscan record relied on monitors coming in before the callback resulting from a ca_put_callback -- whose processing triggered the monitors. This was almost always ok, but CA buffer overruns and TCP retries could result in the sscan record acquiring stale data. New file, Tim forgot to commit ============================================================================= support/sscan/sscanApp/src/sscanRecord.c v5.26 Allow before-scan and after-scan links to write to their own sscan record. ExportAddress for volatile variables. Check for npts<=0 in init_record. Reject illegal npts in special(). ajdLinParms() now checks that step-increment agrees with overall scan direction. (Freeze flags for start, end, and width are ignored in this check.) Abort and killing scans reworked to allow sscan record to wait for data-storage client even if it doesn't wait for anything else, to abandon even that caution if user insists, and to show user where it is in the process. scan abort no longer clears .PAUS Lots of fixes to (new) recDynLinkGetCallback()-based data acquisition, mostly affecting array-valued PV's. Updated the internal version number to 5.22 Use ca_get_callback() to acquire data. Previously, the sscan record relied on monitors coming in before the callback resulting from a ca_put_callback -- whose processing triggered the monitors. This was almost always ok, but CA buffer overruns and TCP retries could result in the sscan record acquiring stale data. get enum strings; FLNK if scan fails, so ca_put_callback() completes; call scanOnce() from special if we're waiting for saveData and AWAIT==0; if limit trouble stops scan, hang instead of declaring done. merged 3.13 AWAIT handshake, and array-trigger/array-read-at-end-of-scan capabilities into 3.14 version ============================================================================= support/sscan/sscanApp/src/sscanRecord.dbd Include sscanMenu.dbd, so scanparm record can have identical menus. AWAIT is no longer a PP field (now special() will call scanOnce() if processing is needed) merged 3.13 AWAIT handshake, and array-trigger/array-read-at-end-of-scan capabilities into 3.14 version ============================================================================= support/sscan/sscanApp/src/sscanSupport.dbd Added recDynLinkDebug added variable() calls for sscan-record volatiles added registrar and variable statements for saveData ============================================================================= support/sscan/sscanApp/src/xdr_lib.c support/sscan/sscanApp/src/xdr_lib.h ifdef vxWorks (first time running on Solaris and Linux ioc's)