EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS Base version 3.15.0.1 released
From: Kevin Peterson <[email protected]>
To: Anze Zagar <[email protected]>
Cc: [email protected]
Date: Mon, 13 Aug 2012 12:32:47 -0500
I have successfully built the released version of synApps_5_6 against
base 3.15.0.1 on RHEL6 (linux-x86_64-debug).  The details of my changes
are attached.  Not all of my changes are backwards-compatible.

I had to modify the following files:

asyn-4-18/asyn/asynRecord/asynRecord.dbd
asyn-4-18/asyn/devGpib/devCommonGpib.c
asyn-4-18/asyn/drvAsynSerial/drvAsynIPPort.dbd
asyn-4-18/asyn/drvAsynSerial/drvAsynSerialPort.dbd
asyn-4-18/asyn/gsIP488/drvGsIP488.dbd
asyn-4-18/asyn/linuxGpib/drvLinuxGpib.dbd
asyn-4-18/asyn/ni1014/drvNi1014.dbd
asyn-4-18/asyn/vxi11/drvVxi11.dbd
autosave-4-8/asApp/src/fGetDateStr.c
autosave-4-8/asApp/src/save_restore.c
calc-2-9/calcApp/src/aCalcoutRecord.c
ipac-2-11/tyGSOctal/tyGSOctal.dbd
mca-7-1/mcaApp/mcaSrc/mcaRecord.c
motor-6-7/motorApp/MotorSimSrc/motorSimSupport.dbd
motor-6-7/motorApp/MotorSrc/motorRecord.cc
motor-6-7/motorApp/MotorSrc/motorRecord.dbd
motor-6-7/motorApp/OrielSrc/devEMC18011.cc
motor-6-7/motorApp/PiJenaSrc/devPIJEDS.cc
motor-6-7/motorApp/PiSrc/devPIE516.cc
motor-6-7/motorApp/PiSrc/devPIE710.cc
motor-6-7/motorApp/PiSrc/devPIE816.cc
motor-6-7/motorApp/SoftMotorSrc/devSoft.cc
motor-6-7/motorApp/ThorLabsSrc/devMDT695.cc
seq-2-1-3/configure/RULES_BUILD
sscan-2-7/sscanApp/src/Makefile
sscan-2-7/sscanApp/src/menuSscan.dbd
sscan-2-7/sscanApp/src/recDynLink.c
sscan-2-7/sscanApp/src/recDynLink.h
sscan-2-7/sscanApp/src/saveData.c
sscan-2-7/sscanApp/src/scanparmRecord.dbd
sscan-2-7/sscanApp/src/sscanMenu.dbd
sscan-2-7/sscanApp/src/sscanRecord.c
sscan-2-7/sscanApp/src/sscanRecord.dbd
sscan-2-7/sscanApp/src/sscanSupport.dbd
std-3-1/stdApp/src/devTimeOfDay.c
stream-2-5-1/streamDevice/src/AsynDriverInterface.cc
stream-2-5-1/streamDevice/src/Makefile
stream-2-5-1/streamDevice/src/StreamEpics.cc
stream-2-5-1/streamDevice/srcSynApps/Makefile
stream-2-5-1/streamDevice/streamApp/Makefile
vac-1-4/vacApp/src/devDigitelPump.dbd
vac-1-4/vacApp/src/devVacSen.dbd
xxx-5-6/xxxApp/src/Makefile
xxx-5-6/xxxApp/src/xxxCommonInclude.dbd

Kevin
diff --git a/.gitignore b/.gitignore
index 501c31c..def9913 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ html
 O.Common
 O.linux-x86_64
 O.linux-x86_64-debug
+O.solaris-sparc-gnu
 envPaths
 cdCommands
 bnf.inc
diff --git a/asyn-4-18/asyn/asynRecord/asynRecord.dbd b/asyn-4-18/asyn/asynRecord/asynRecord.dbd
index e39dd9e..4fb93ed 100644
--- a/asyn-4-18/asyn/asynRecord/asynRecord.dbd
+++ b/asyn-4-18/asyn/asynRecord/asynRecord.dbd
@@ -122,7 +122,6 @@ recordtype(asyn) {
         promptgroup(GUI_INPUTS)
         special(SPC_MOD)
         interest(1)
-        initial("")
         size(40)
     }
     field(ADDR,DBF_LONG) {
@@ -143,7 +142,6 @@ recordtype(asyn) {
         promptgroup(GUI_INPUTS)
         special(SPC_MOD)
         interest(2)
-        initial("")
         size(40)
     }
     field(REASON,DBF_LONG) {
diff --git a/asyn-4-18/asyn/devGpib/devCommonGpib.c b/asyn-4-18/asyn/devGpib/devCommonGpib.c
index ad7e19a..b28ac15 100644
--- a/asyn-4-18/asyn/devGpib/devCommonGpib.c
+++ b/asyn-4-18/asyn/devGpib/devCommonGpib.c
@@ -21,6 +21,7 @@
 
 #include <epicsAssert.h>
 #include <epicsStdio.h>
+#include <epicsVersion.h>
 #include <recGbl.h>
 #include <dbAccess.h>
 #include <dbScan.h>
@@ -449,7 +450,6 @@ long  devGpib_readEv(eventRecord * pev)
 
 static void evFinish(gpibDpvt * pgpibDpvt,int failure)
 {
-    unsigned short value;
     eventRecord *pev = ((eventRecord *) (pgpibDpvt->precord));
     gpibCmd *pgpibCmd = gpibCmdGet(pgpibDpvt);
     int cnvrtStat;
@@ -470,9 +470,14 @@ static void evFinish(gpibDpvt * pgpibDpvt,int failure)
             "%s no msg buffer\n",pev->name);
         failure = -1;
     } else {/* interpret msg with predefined format and write into val/rval */
+#if ((EPICS_VERSION<=(3)) && (EPICS_REVISION<=(14)))
+        unsigned short value;
         char *format = (pgpibCmd->format) ? (pgpibCmd->format) : "hu";
         if (sscanf(pgpibDpvt->msg, format, &value) == 1) {
             pev->val = value;
+#else
+        if (sscanf(pgpibDpvt->msg, " %39s", pev->val) == 1) {
+#endif
             pev->udf = FALSE;
         } else { /* sscanf did not find or assign the parameter */
             failure = -1;
diff --git a/asyn-4-18/asyn/drvAsynSerial/drvAsynIPPort.dbd b/asyn-4-18/asyn/drvAsynSerial/drvAsynIPPort.dbd
index 08d0245..e98c2c9 100644
--- a/asyn-4-18/asyn/drvAsynSerial/drvAsynIPPort.dbd
+++ b/asyn-4-18/asyn/drvAsynSerial/drvAsynIPPort.dbd
@@ -1,3 +1,2 @@
 registrar(drvAsynIPPortRegisterCommands)
 registrar(drvAsynIPServerPortRegisterCommands)
-include "asyn.dbd"
diff --git a/asyn-4-18/asyn/drvAsynSerial/drvAsynSerialPort.dbd b/asyn-4-18/asyn/drvAsynSerial/drvAsynSerialPort.dbd
index a6ebb6a..3379453 100644
--- a/asyn-4-18/asyn/drvAsynSerial/drvAsynSerialPort.dbd
+++ b/asyn-4-18/asyn/drvAsynSerial/drvAsynSerialPort.dbd
@@ -1,2 +1 @@
 registrar(drvAsynSerialPortRegisterCommands)
-include "asyn.dbd"
diff --git a/asyn-4-18/asyn/gsIP488/drvGsIP488.dbd b/asyn-4-18/asyn/gsIP488/drvGsIP488.dbd
index 443813e..1f045ac 100644
--- a/asyn-4-18/asyn/gsIP488/drvGsIP488.dbd
+++ b/asyn-4-18/asyn/gsIP488/drvGsIP488.dbd
@@ -1,3 +1,2 @@
 registrar(gsIP488RegisterCommands)
 variable(gsip488Debug,int)
-include "asyn.dbd"
diff --git a/asyn-4-18/asyn/linuxGpib/drvLinuxGpib.dbd b/asyn-4-18/asyn/linuxGpib/drvLinuxGpib.dbd
index 161600c..db40027 100644
--- a/asyn-4-18/asyn/linuxGpib/drvLinuxGpib.dbd
+++ b/asyn-4-18/asyn/linuxGpib/drvLinuxGpib.dbd
@@ -1,2 +1 @@
 registrar(GpibBoardDriverRegister)
-include "asyn.dbd"
diff --git a/asyn-4-18/asyn/ni1014/drvNi1014.dbd b/asyn-4-18/asyn/ni1014/drvNi1014.dbd
index 792b314..1843372 100644
--- a/asyn-4-18/asyn/ni1014/drvNi1014.dbd
+++ b/asyn-4-18/asyn/ni1014/drvNi1014.dbd
@@ -1,2 +1 @@
 registrar(ni1014RegisterCommands)
-include "asyn.dbd"
diff --git a/asyn-4-18/asyn/vxi11/drvVxi11.dbd b/asyn-4-18/asyn/vxi11/drvVxi11.dbd
index 4a78b14..a73fb27 100644
--- a/asyn-4-18/asyn/vxi11/drvVxi11.dbd
+++ b/asyn-4-18/asyn/vxi11/drvVxi11.dbd
@@ -1,2 +1 @@
 registrar(vxi11RegisterCommands)
-include "asyn.dbd"
diff --git a/autosave-4-8/asApp/src/fGetDateStr.c b/autosave-4-8/asApp/src/fGetDateStr.c
index 147fc80..a5b0c51 100644
--- a/autosave-4-8/asApp/src/fGetDateStr.c
+++ b/autosave-4-8/asApp/src/fGetDateStr.c
@@ -67,19 +67,19 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
 #include <dbCommon.h>
 #include <recGbl.h>
 #include <devSup.h>
-#include <tsDefs.h>
 #include <fGetDateStr.h>
 
 int	fGetDateStr( char datetime[])
 {
 
-	TS_STAMP   now;
+	epicsTimeStamp   now;
 	char	   time_text[32];
 	char	   tmp[16];
 	char	*p, *p1, *p2;
 
-	tsLocalTime(&now);
-	p = tsStampToText( &now, TS_TEXT_MMDDYY, time_text);
+	epicsTimeGetCurrent(&now);
+	/*p = tsStampToText( &now, TS_TEXT_MMDDYY, time_text);*/
+	p = epicsTimeToStrftime(time_text, sizeof(time_text), "%m/%d/%y %H:%M:%S.%09f", &now);
 	p2 = tmp;
 	if((p1 = strchr(p, (int) '/'))) {
 		*p1= 0;
diff --git a/autosave-4-8/asApp/src/save_restore.c b/autosave-4-8/asApp/src/save_restore.c
index d7aaa11..9a4770b 100644
--- a/autosave-4-8/asApp/src/save_restore.c
+++ b/autosave-4-8/asApp/src/save_restore.c
@@ -148,7 +148,6 @@
 #include	<epicsThread.h>
 #include	<epicsExport.h>
 #include	<iocsh.h>
-#include 	<tsDefs.h>
 #include    <macLib.h>
 #include	<callback.h>
 #include	<epicsMutex.h>
diff --git a/calc-2-9/calcApp/src/aCalcoutRecord.c b/calc-2-9/calcApp/src/aCalcoutRecord.c
index 42da0ea..f4c2b4c 100644
--- a/calc-2-9/calcApp/src/aCalcoutRecord.c
+++ b/calc-2-9/calcApp/src/aCalcoutRecord.c
@@ -893,11 +893,11 @@ static void monitor(acalcoutRecord *pcalc)
 	}
 
 	for (i=0, panew=&pcalc->aa; i<ARRAY_MAX_FIELDS; i++, panew++) {
-		if (*panew && (pcalc->new & (1<<i))) {
+		if (*panew && (pcalc->NEW & (1<<i))) {
 			db_post_events(pcalc, *panew, monitor_mask|DBE_VALUE|DBE_LOG);
 		}
 	}
-	pcalc->new = 0;
+	pcalc->NEW = 0;
 
 	/* Check OVAL field */
 	if (pcalc->povl != pcalc->oval) {
@@ -949,7 +949,7 @@ static int fetch_values(acalcoutRecord *pcalc)
 			if (!RTN_SUCCESS(status)) return(status);
 			/* compare new array value with saved value */
 			for (j=0; j<pcalc->nelm; j++) {
-				if (pcalc->paa[j] != (*pavalue)[j]) {pcalc->new |= 1<<i; break;}
+				if (pcalc->paa[j] != (*pavalue)[j]) {pcalc->NEW |= 1<<i; break;}
 			}
 		}
 	}
diff --git a/ipac-2-11/tyGSOctal/tyGSOctal.dbd b/ipac-2-11/tyGSOctal/tyGSOctal.dbd
index 623fda1..3824bdc 100644
--- a/ipac-2-11/tyGSOctal/tyGSOctal.dbd
+++ b/ipac-2-11/tyGSOctal/tyGSOctal.dbd
@@ -1,5 +1,2 @@
-# This driver depends on drvIpac:
-include "drvIpac.dbd"
-
 # It supplies iocsh commands, so needs a registrar:
 registrar(tyGSOctalRegistrar)
diff --git a/mca-7-1/mcaApp/mcaSrc/mcaRecord.c b/mca-7-1/mcaApp/mcaSrc/mcaRecord.c
index cb6eb78..8d6832b 100644
--- a/mca-7-1/mcaApp/mcaSrc/mcaRecord.c
+++ b/mca-7-1/mcaApp/mcaSrc/mcaRecord.c
@@ -106,7 +106,7 @@
 #include    <recSup.h>
 #include    <recGbl.h>
 #include    <special.h>
-#include    <tsDefs.h>
+
 #include    <menuYesNo.h> 
 
 #define GEN_SIZE_OFFSET
@@ -806,8 +806,7 @@ read_data:
     if (!pmca->acqg) {
         /* Use TimeStamp to record end of acquisition */
         recGblGetTimeStamp(pmca);
-        tsStampToText(&pmca->time, TS_TEXT_MONDDYYYY,
-                       pmca->stim);
+        epicsTimeToStrftime(pmca->stim,32,"%b %d, %Y %H:%M:%S.%09f",&pmca->time);
         /* Trim STIM to 25 characters = .001 sec precision */
         pmca->stim[25]='\0';
         MARK(M_STIM);
diff --git a/motor-6-7/motorApp/MotorSimSrc/motorSimSupport.dbd b/motor-6-7/motorApp/MotorSimSrc/motorSimSupport.dbd
index 3883b98..f6b21fd 100644
--- a/motor-6-7/motorApp/MotorSimSrc/motorSimSupport.dbd
+++ b/motor-6-7/motorApp/MotorSimSrc/motorSimSupport.dbd
@@ -1,4 +1,3 @@
-include "motorRecord.dbd"
 device(motor,VME_IO,devMotorSim,"Motor Simulation")
 driver(motorSim)
 registrar(motorSimRegister)
diff --git a/motor-6-7/motorApp/MotorSrc/motorRecord.cc b/motor-6-7/motorApp/MotorSrc/motorRecord.cc
index 6a17156..66c8be1 100644
--- a/motor-6-7/motorApp/MotorSrc/motorRecord.cc
+++ b/motor-6-7/motorApp/MotorSrc/motorRecord.cc
@@ -169,6 +169,8 @@ HeadURL:        $URL: https://subversion.xor.aps.anl.gov/synApps/motor/tags/R6-7
 #include    <dbEvent.h>
 #include    <devSup.h>
 #include    <math.h>
+#include    "menuYesNo.h"
+#include    "menuOmsl.h"
 
 #define GEN_SIZE_OFFSET
 #include    "motorRecord.h"
diff --git a/motor-6-7/motorApp/MotorSrc/motorRecord.dbd b/motor-6-7/motorApp/MotorSrc/motorRecord.dbd
index 27c2d9c..849b352 100644
--- a/motor-6-7/motorApp/MotorSrc/motorRecord.dbd
+++ b/motor-6-7/motorApp/MotorSrc/motorRecord.dbd
@@ -29,8 +29,6 @@
 #Modification Log:
 #-----------------
 
-include "menuYesNo.dbd"
-
 menu(motorDIR) {
         choice(motorDIR_Pos,"Pos")
         choice(motorDIR_Neg,"Neg")
@@ -72,8 +70,6 @@ menu(motorRMOD) {
         choice(motorRMOD_G,"Geometric")
 }
 
-include "menuOmsl.dbd"
-
 recordtype(motor) {
         include "dbCommon.dbd" 
         field(VERS,DBF_FLOAT) {
diff --git a/motor-6-7/motorApp/OrielSrc/devEMC18011.cc b/motor-6-7/motorApp/OrielSrc/devEMC18011.cc
index bd767ad..980508e 100644
--- a/motor-6-7/motorApp/OrielSrc/devEMC18011.cc
+++ b/motor-6-7/motorApp/OrielSrc/devEMC18011.cc
@@ -40,6 +40,7 @@ Last Modified:	$Date: 2008-03-14 20:19:25 $
 
 #include <string.h>
 #include <math.h>
+#include "menuYesNo.h"
 #include "motorRecord.h"
 #include "motor.h"
 #include "motordevCom.h"
diff --git a/motor-6-7/motorApp/PiJenaSrc/devPIJEDS.cc b/motor-6-7/motorApp/PiJenaSrc/devPIJEDS.cc
index c3f79a9..0f19698 100644
--- a/motor-6-7/motorApp/PiJenaSrc/devPIJEDS.cc
+++ b/motor-6-7/motorApp/PiJenaSrc/devPIJEDS.cc
@@ -40,6 +40,7 @@ Last Modified:	$Date: 2008-03-14 20:20:03 $
 
 
 #include <string.h>
+#include "menuYesNo.h"
 #include "motorRecord.h"
 #include "motor.h"
 #include "motordevCom.h"
diff --git a/motor-6-7/motorApp/PiSrc/devPIE516.cc b/motor-6-7/motorApp/PiSrc/devPIE516.cc
index e70afd9..54b07a1 100644
--- a/motor-6-7/motorApp/PiSrc/devPIE516.cc
+++ b/motor-6-7/motorApp/PiSrc/devPIE516.cc
@@ -41,6 +41,7 @@ Last Modified:	$Date: 2008-03-14 20:21:37 $
 
 
 #include <string.h>
+#include "menuYesNo.h"
 #include "motorRecord.h"
 #include "motor.h"
 #include "motordevCom.h"
diff --git a/motor-6-7/motorApp/PiSrc/devPIE710.cc b/motor-6-7/motorApp/PiSrc/devPIE710.cc
index 636eb21..71aeeea 100644
--- a/motor-6-7/motorApp/PiSrc/devPIE710.cc
+++ b/motor-6-7/motorApp/PiSrc/devPIE710.cc
@@ -41,6 +41,7 @@ Last Modified:	$Date: 2008-03-14 20:21:36 $
 
 
 #include <string.h>
+#include "menuYesNo.h"
 #include "motorRecord.h"
 #include "motor.h"
 #include "motordevCom.h"
diff --git a/motor-6-7/motorApp/PiSrc/devPIE816.cc b/motor-6-7/motorApp/PiSrc/devPIE816.cc
index ff6ca3d..2e1e1d1 100644
--- a/motor-6-7/motorApp/PiSrc/devPIE816.cc
+++ b/motor-6-7/motorApp/PiSrc/devPIE816.cc
@@ -41,6 +41,7 @@ Last Modified:	2007/03/30 20:01:05
 
 
 #include <string.h>
+#include "menuYesNo.h"
 #include "motorRecord.h"
 #include "motor.h"
 #include "motordevCom.h"
diff --git a/motor-6-7/motorApp/SoftMotorSrc/devSoft.cc b/motor-6-7/motorApp/SoftMotorSrc/devSoft.cc
index 95b2e30..a12bf0e 100644
--- a/motor-6-7/motorApp/SoftMotorSrc/devSoft.cc
+++ b/motor-6-7/motorApp/SoftMotorSrc/devSoft.cc
@@ -58,6 +58,7 @@ NOTES...
 #include	<dbEvent.h>
 #include	<recSup.h>
 
+#include        "menuYesNo.h"
 #include	"motorRecord.h"
 #include	"motor.h"
 #include	"devSoft.h"
diff --git a/motor-6-7/motorApp/ThorLabsSrc/devMDT695.cc b/motor-6-7/motorApp/ThorLabsSrc/devMDT695.cc
index c46b339..d5025d3 100644
--- a/motor-6-7/motorApp/ThorLabsSrc/devMDT695.cc
+++ b/motor-6-7/motorApp/ThorLabsSrc/devMDT695.cc
@@ -41,6 +41,7 @@ Last Modified:	$Date: 2008-03-14 20:23:45 $
 
 #include <string.h>
 #include <math.h>
+#include "menuYesNo.h"
 #include "motorRecord.h"
 #include "motor.h"
 #include "motordevCom.h"
diff --git a/seq-2-1-3/configure/RULES_BUILD b/seq-2-1-3/configure/RULES_BUILD
index c2f1bac..61477b5 100644
--- a/seq-2-1-3/configure/RULES_BUILD
+++ b/seq-2-1-3/configure/RULES_BUILD
@@ -68,6 +68,6 @@ endif
 	$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $(USR_SNCFLAGS) $(call PATH_FILTER,$<) -o $(@F).tmp
 	$(MV) $(@F).tmp $@
 
-clean::
+clean:
 	@$(RM) $(SNC_CSRC_FILES)
 
diff --git a/sscan-2-7/sscanApp/src/Makefile b/sscan-2-7/sscanApp/src/Makefile
index eb7f393..45c7722 100644
--- a/sscan-2-7/sscanApp/src/Makefile
+++ b/sscan-2-7/sscanApp/src/Makefile
@@ -21,11 +21,11 @@ Com_DIR          = $(EPICS_BASE_LIB)
 
 DBDINC += scanparmRecord
 DBDINC += sscanRecord
+DBDINC += menuSscan
 
 # <name>.dbd will be created from <name>Include.dbd
 DBD += sscan.dbd
 DBD += sscanSupport.dbd
-DBD += sscanMenu.dbd
 
 INC += recDynLink.h
 
diff --git a/sscan-2-7/sscanApp/src/menuSscan.dbd b/sscan-2-7/sscanApp/src/menuSscan.dbd
new file mode 100644
index 0000000..e97cff8
--- /dev/null
+++ b/sscan-2-7/sscanApp/src/menuSscan.dbd
@@ -0,0 +1,95 @@
+menu(sscanNOYES) {
+	choice(sscanNOYES_NO,"NO")
+	choice(sscanNOYES_YES,"YES")
+}
+menu(sscanDSTATE) {
+	choice(sscanDSTATE_UNPACKED, "UNPACKED")
+	choice(sscanDSTATE_TRIG_ARRAY_READ, "TRIG_ARRAY_READ")
+	choice(sscanDSTATE_ARRAY_READ_WAIT, "ARRAY_READ_WAIT")
+	choice(sscanDSTATE_ARRAY_GET_CALLBACK_WAIT, "ARRAY_GET_CALLBACK_WAIT")
+	choice(sscanDSTATE_RECORD_ARRAY_DATA, "RECORD_ARRAY_DATA")
+	choice(sscanDSTATE_SAVE_DATA_WAIT, "SAVE_DATA_WAIT")
+	choice(sscanDSTATE_PACKED, "PACKED")
+	choice(sscanDSTATE_POSTED, "POSTED")
+}
+menu(sscanLINKWAIT) {
+	choice(sscanLINKWAIT_YES,"Wait")
+	choice(sscanLINKWAIT_NO,"NoWait")
+}
+menu(sscanP1SM) {
+	choice(sscanP1SM_Linear,"LINEAR")
+	choice(sscanP1SM_Table,"TABLE")
+	choice(sscanP1SM_On_The_Fly,"FLY")
+}
+menu(sscanFPTS) {
+	choice(sscanFPTS_No,"NO")
+	choice(sscanFPTS_Freeze,"FREEZE")
+}
+menu(sscanFFO) {
+	choice(sscanFFO_Use_F_Flags,"USE F-FLAGS")
+	choice(sscanFFO_Override,"OVERRIDE")
+}
+menu(sscanPASM) {
+	choice(sscanPASM_Stay,"STAY")
+	choice(sscanPASM_Start_Pos,"START POS")
+	choice(sscanPASM_Prior_Pos,"PRIOR POS")
+	choice(sscanPASM_Peak_Pos,"PEAK POS")
+	choice(sscanPASM_Valley_Pos,"VALLEY POS")
+	choice(sscanPASM_RisingEdge_Pos,"+EDGE POS")
+	choice(sscanPASM_FallingEdge_Pos,"-EDGE POS")
+	choice(sscanPASM_COM,"CNTR OF MASS")
+}
+menu(sscanP1AR) {
+	choice(sscanP1AR_Absolute,"ABSOLUTE")
+	choice(sscanP1AR_Relative,"RELATIVE")
+}
+menu(sscanP1NV) {
+	choice(sscanP1NV_PV_OK,"PV OK")
+	choice(sscanP1NV_No_PV,"No PV")
+	choice(sscanP1NV_PV_NoRead,"PV NoRead")
+	choice(sscanP1NV_PV_xxx,"PV illegal1")
+	choice(sscanP1NV_PV_NoWrite,"PV NoWrite")
+	choice(sscanP1NV_PV_yyy,"PV illegal2")
+	choice(sscanP1NV_PV_NC,"PV BAD")
+}
+menu(sscanPAUS) {
+	choice(sscanPAUS_Go,"GO")
+	choice(sscanPAUS_Pause,"PAUSE")
+}
+menu(sscanFAZE) {
+	choice(sscanFAZE_IDLE,"IDLE")
+	choice(sscanFAZE_INIT_SCAN,"INIT_SCAN")
+	choice(sscanFAZE_BEFORE_SCAN,"DO:BEFORE_SCAN")
+	choice(sscanFAZE_BEFORE_SCAN_WAIT,"WAIT:BEFORE_SCAN")
+	choice(sscanFAZE_MOVE_MOTORS,"MOVE_MOTORS")
+	choice(sscanFAZE_CHECK_MOTORS,"WAIT:MOTORS")
+	choice(sscanFAZE_TRIG_DETCTRS,"TRIG_DETCTRS")
+	choice(sscanFAZE_READ_DETCTRS,"WAIT:DETCTRS")
+	choice(sscanFAZE_RETRACE_MOVE,"RETRACE_MOVE")
+	choice(sscanFAZE_RETRACE_WAIT,"WAIT:RETRACE")
+	choice(sscanFAZE_AFTER_SCAN_DO,"DO:AFTER_SCAN")
+	choice(sscanFAZE_AFTER_SCAN_WAIT,"WAIT:AFTER_SCAN")
+	choice(sscanFAZE_SCAN_DONE,"SCAN_DONE")
+	choice(sscanFAZE_SCAN_PENDING,"SCAN_PENDING")
+	choice(sscanFAZE_PREVIEW,"PREVIEW")
+	choice(sscanFAZE_RECORD_SCALAR_DATA,"RECORD SCALAR DATA")
+}
+menu(sscanACQM) {
+	choice(sscanACQM_NORMAL,"NORMAL")
+	choice(sscanACQM_ACC,"ACCUMULATE")
+	choice(sscanACQM_ADD,"ADD TO PREV")
+}
+menu(sscanACQT) {
+	choice(sscanACQT_SCALAR,"SCALAR")
+	choice(sscanACQT_1D_ARRAY,"1D ARRAY")
+}
+menu(sscanCMND) {
+	choice(sscanCMND_CLEAR_MSG,"Clear msg")
+	choice(sscanCMND_CHECK_LIMITS,"Check limits")
+	choice(sscanCMND_PREVIEW_SCAN,"Preview scan")
+	choice(sscanCMND_CLEAR_ALL_PVS,"Clear all PV's")
+	choice(sscanCMND_CLEAR_POS_PVS_ETC,"Clear pos PV's, etc")
+	choice(sscanCMND_CLEAR_POS_PVS,"Clear pos PV's")
+	choice(sscanCMND_CLEAR_POS_RDBK_PVS_ETC,"Clear pos&rdbk PV's, etc")
+	choice(sscanCMND_CLEAR_POS_RDBK_PVS,"Clear pos&rdbk PV's")
+}
diff --git a/sscan-2-7/sscanApp/src/recDynLink.c b/sscan-2-7/sscanApp/src/recDynLink.c
index 50e8045..9f2db3a 100644
--- a/sscan-2-7/sscanApp/src/recDynLink.c
+++ b/sscan-2-7/sscanApp/src/recDynLink.c
@@ -40,13 +40,13 @@ of this distribution.
 
 #include <taskwd.h>
 #include <dbDefs.h>
+#include <dbAddr.h>
 #include <epicsPrint.h>
 #include <db_access.h>
 #include <db_access_routines.h>
 #include <cadef.h>
 #include <caerr.h>
 #include <caeventmask.h>
-#include <tsDefs.h>
 #include <errlog.h>
 #include <epicsExport.h>
 #include <epicsExit.h>
@@ -177,7 +177,7 @@ long epicsShareAPI recDynLinkAddInput(recDynLink *precDynLink,char *pvname,
 		printf("recDynLinkAddInput: pvname is blank\n");
 		return(-1);
 	}
-	if (options&rdlDBONLY  && db_name_to_addr(pvname,&dbaddr)) return(-1);
+	if (options&rdlDBONLY  && dbNameToAddr(pvname,&dbaddr)) return(-1);
 	if (!inpTaskId) recDynLinkStartTasks();
 	if (precDynLink->pdynLinkPvt) {
 		if (recDynLinkDebug > 10)
@@ -230,7 +230,7 @@ long epicsShareAPI recDynLinkAddOutput(recDynLink *precDynLink,char *pvname,
 		printf("recDynLinkAddOutput: pvname is empty\n");
 		return(-1);
 	}
-	if (options&rdlDBONLY  && db_name_to_addr(pvname,&dbaddr)) return(-1);
+        if (options&rdlDBONLY  && dbNameToAddr(pvname,&dbaddr)) return(-1);
 	if (!outTaskId) recDynLinkStartTasks();
 	if (precDynLink->pdynLinkPvt) {
 		if (recDynLinkDebug > 10) 
diff --git a/sscan-2-7/sscanApp/src/recDynLink.h b/sscan-2-7/sscanApp/src/recDynLink.h
index 2747cdc..69e8655 100644
--- a/sscan-2-7/sscanApp/src/recDynLink.h
+++ b/sscan-2-7/sscanApp/src/recDynLink.h
@@ -12,7 +12,9 @@ of this distribution.
 #ifndef INCrecDynLinkh
 #define INCrecDynLinkh
 
-#include <tsDefs.h>
+#include <epicsTime.h>
+#include <shareLib.h>
+
 typedef struct recDynLink{
 	void	*puserPvt;
 	void	*pdynLinkPvt;
diff --git a/sscan-2-7/sscanApp/src/saveData.c b/sscan-2-7/sscanApp/src/saveData.c
index 4c6ebb6..52e43fe 100644
--- a/sscan-2-7/sscanApp/src/saveData.c
+++ b/sscan-2-7/sscanApp/src/saveData.c
@@ -187,7 +187,6 @@ extern STATUS nfsUnmount(char *localName);
 #include <dbEvent.h>
 #include <special.h>
 #include <cadef.h>
-#include <tsDefs.h>
 #include <epicsMutex.h>
 #include <epicsMessageQueue.h>
 #include <epicsThread.h>
diff --git a/sscan-2-7/sscanApp/src/scanparmRecord.dbd b/sscan-2-7/sscanApp/src/scanparmRecord.dbd
index ef5a5e2..ba447e1 100644
--- a/sscan-2-7/sscanApp/src/scanparmRecord.dbd
+++ b/sscan-2-7/sscanApp/src/scanparmRecord.dbd
@@ -1,4 +1,3 @@
-include "sscanMenu.dbd"
 recordtype(scanparm) {
 	include "dbCommon.dbd" 
 	field(VERS,DBF_FLOAT) {
diff --git a/sscan-2-7/sscanApp/src/sscanMenu.dbd b/sscan-2-7/sscanApp/src/sscanMenu.dbd
deleted file mode 100644
index e97cff8..0000000
--- a/sscan-2-7/sscanApp/src/sscanMenu.dbd
+++ /dev/null
@@ -1,95 +0,0 @@
-menu(sscanNOYES) {
-	choice(sscanNOYES_NO,"NO")
-	choice(sscanNOYES_YES,"YES")
-}
-menu(sscanDSTATE) {
-	choice(sscanDSTATE_UNPACKED, "UNPACKED")
-	choice(sscanDSTATE_TRIG_ARRAY_READ, "TRIG_ARRAY_READ")
-	choice(sscanDSTATE_ARRAY_READ_WAIT, "ARRAY_READ_WAIT")
-	choice(sscanDSTATE_ARRAY_GET_CALLBACK_WAIT, "ARRAY_GET_CALLBACK_WAIT")
-	choice(sscanDSTATE_RECORD_ARRAY_DATA, "RECORD_ARRAY_DATA")
-	choice(sscanDSTATE_SAVE_DATA_WAIT, "SAVE_DATA_WAIT")
-	choice(sscanDSTATE_PACKED, "PACKED")
-	choice(sscanDSTATE_POSTED, "POSTED")
-}
-menu(sscanLINKWAIT) {
-	choice(sscanLINKWAIT_YES,"Wait")
-	choice(sscanLINKWAIT_NO,"NoWait")
-}
-menu(sscanP1SM) {
-	choice(sscanP1SM_Linear,"LINEAR")
-	choice(sscanP1SM_Table,"TABLE")
-	choice(sscanP1SM_On_The_Fly,"FLY")
-}
-menu(sscanFPTS) {
-	choice(sscanFPTS_No,"NO")
-	choice(sscanFPTS_Freeze,"FREEZE")
-}
-menu(sscanFFO) {
-	choice(sscanFFO_Use_F_Flags,"USE F-FLAGS")
-	choice(sscanFFO_Override,"OVERRIDE")
-}
-menu(sscanPASM) {
-	choice(sscanPASM_Stay,"STAY")
-	choice(sscanPASM_Start_Pos,"START POS")
-	choice(sscanPASM_Prior_Pos,"PRIOR POS")
-	choice(sscanPASM_Peak_Pos,"PEAK POS")
-	choice(sscanPASM_Valley_Pos,"VALLEY POS")
-	choice(sscanPASM_RisingEdge_Pos,"+EDGE POS")
-	choice(sscanPASM_FallingEdge_Pos,"-EDGE POS")
-	choice(sscanPASM_COM,"CNTR OF MASS")
-}
-menu(sscanP1AR) {
-	choice(sscanP1AR_Absolute,"ABSOLUTE")
-	choice(sscanP1AR_Relative,"RELATIVE")
-}
-menu(sscanP1NV) {
-	choice(sscanP1NV_PV_OK,"PV OK")
-	choice(sscanP1NV_No_PV,"No PV")
-	choice(sscanP1NV_PV_NoRead,"PV NoRead")
-	choice(sscanP1NV_PV_xxx,"PV illegal1")
-	choice(sscanP1NV_PV_NoWrite,"PV NoWrite")
-	choice(sscanP1NV_PV_yyy,"PV illegal2")
-	choice(sscanP1NV_PV_NC,"PV BAD")
-}
-menu(sscanPAUS) {
-	choice(sscanPAUS_Go,"GO")
-	choice(sscanPAUS_Pause,"PAUSE")
-}
-menu(sscanFAZE) {
-	choice(sscanFAZE_IDLE,"IDLE")
-	choice(sscanFAZE_INIT_SCAN,"INIT_SCAN")
-	choice(sscanFAZE_BEFORE_SCAN,"DO:BEFORE_SCAN")
-	choice(sscanFAZE_BEFORE_SCAN_WAIT,"WAIT:BEFORE_SCAN")
-	choice(sscanFAZE_MOVE_MOTORS,"MOVE_MOTORS")
-	choice(sscanFAZE_CHECK_MOTORS,"WAIT:MOTORS")
-	choice(sscanFAZE_TRIG_DETCTRS,"TRIG_DETCTRS")
-	choice(sscanFAZE_READ_DETCTRS,"WAIT:DETCTRS")
-	choice(sscanFAZE_RETRACE_MOVE,"RETRACE_MOVE")
-	choice(sscanFAZE_RETRACE_WAIT,"WAIT:RETRACE")
-	choice(sscanFAZE_AFTER_SCAN_DO,"DO:AFTER_SCAN")
-	choice(sscanFAZE_AFTER_SCAN_WAIT,"WAIT:AFTER_SCAN")
-	choice(sscanFAZE_SCAN_DONE,"SCAN_DONE")
-	choice(sscanFAZE_SCAN_PENDING,"SCAN_PENDING")
-	choice(sscanFAZE_PREVIEW,"PREVIEW")
-	choice(sscanFAZE_RECORD_SCALAR_DATA,"RECORD SCALAR DATA")
-}
-menu(sscanACQM) {
-	choice(sscanACQM_NORMAL,"NORMAL")
-	choice(sscanACQM_ACC,"ACCUMULATE")
-	choice(sscanACQM_ADD,"ADD TO PREV")
-}
-menu(sscanACQT) {
-	choice(sscanACQT_SCALAR,"SCALAR")
-	choice(sscanACQT_1D_ARRAY,"1D ARRAY")
-}
-menu(sscanCMND) {
-	choice(sscanCMND_CLEAR_MSG,"Clear msg")
-	choice(sscanCMND_CHECK_LIMITS,"Check limits")
-	choice(sscanCMND_PREVIEW_SCAN,"Preview scan")
-	choice(sscanCMND_CLEAR_ALL_PVS,"Clear all PV's")
-	choice(sscanCMND_CLEAR_POS_PVS_ETC,"Clear pos PV's, etc")
-	choice(sscanCMND_CLEAR_POS_PVS,"Clear pos PV's")
-	choice(sscanCMND_CLEAR_POS_RDBK_PVS_ETC,"Clear pos&rdbk PV's, etc")
-	choice(sscanCMND_CLEAR_POS_RDBK_PVS,"Clear pos&rdbk PV's")
-}
diff --git a/sscan-2-7/sscanApp/src/sscanRecord.c b/sscan-2-7/sscanApp/src/sscanRecord.c
index dc655af..145575f 100644
--- a/sscan-2-7/sscanApp/src/sscanRecord.c
+++ b/sscan-2-7/sscanApp/src/sscanRecord.c
@@ -328,6 +328,7 @@
 
 #include	"recDynLink.h"
 #include "epicsExport.h"
+#include "menuSscan.h"
 
 #define GEN_SIZE_OFFSET
 #include "sscanRecord.h"
diff --git a/sscan-2-7/sscanApp/src/sscanRecord.dbd b/sscan-2-7/sscanApp/src/sscanRecord.dbd
index c997b55..e44b773 100644
--- a/sscan-2-7/sscanApp/src/sscanRecord.dbd
+++ b/sscan-2-7/sscanApp/src/sscanRecord.dbd
@@ -1,4 +1,3 @@
-include "sscanMenu.dbd" 
 recordtype(sscan) {
 	include "dbCommon.dbd" 
 	field(VERS,DBF_DOUBLE) {
diff --git a/sscan-2-7/sscanApp/src/sscanSupport.dbd b/sscan-2-7/sscanApp/src/sscanSupport.dbd
index 8bdb44d..db44d4d 100644
--- a/sscan-2-7/sscanApp/src/sscanSupport.dbd
+++ b/sscan-2-7/sscanApp/src/sscanSupport.dbd
@@ -3,6 +3,7 @@
 ################
 include "scanparmRecord.dbd"
 include "sscanRecord.dbd"
+include "menuSscan.dbd"
 
 ################
 # DEVICE SUPPORT
diff --git a/std-3-1/stdApp/src/devTimeOfDay.c b/std-3-1/stdApp/src/devTimeOfDay.c
index ad60134..3199302 100644
--- a/std-3-1/stdApp/src/devTimeOfDay.c
+++ b/std-3-1/stdApp/src/devTimeOfDay.c
@@ -62,7 +62,6 @@
 #include "dbCommon.h"
 #include "stringinRecord.h"
 #include "aiRecord.h"
-#include "tsDefs.h"
 #include "epicsEvent.h"
 #include "epicsSignal.h"
 #include "epicsString.h"
@@ -121,10 +120,12 @@ static long createString(psi)
        
         recGblGetTimeStamp(psi);	/* get time stamp NOW */
         if(psi->phas) {
-            tsStampToText(&psi->time, TS_TEXT_MMDDYY, psi->val);
+            /*OLD tsStampToText(&psi->time, TS_TEXT_MMDDYY, psi->val);*/
+	    epicsTimeToStrftime(psi->val, 28, "%m/%d/%y %H:%M:%S.%09f", &psi->time);
         }
         else {
-            tsStampToText(&psi->time, TS_TEXT_MONDDYYYY, psi->val);
+            /*OLD tsStampToText(&psi->time, TS_TEXT_MONDDYYYY, psi->val);*/
+	    epicsTimeToStrftime(psi->val, 32, "%b %d, %Y %H:%M:%S.%09f", &psi->time);
         }
 
         /* truncate string to seconds */
diff --git a/stream-2-5-1/streamDevice/src/AsynDriverInterface.cc b/stream-2-5-1/streamDevice/src/AsynDriverInterface.cc
index 26883ea..62a3642 100644
--- a/stream-2-5-1/streamDevice/src/AsynDriverInterface.cc
+++ b/stream-2-5-1/streamDevice/src/AsynDriverInterface.cc
@@ -22,18 +22,9 @@
 #include "StreamError.h"
 #include "StreamBuffer.h"
 
-#ifdef EPICS_3_14
 #include <epicsAssert.h>
 #include <epicsTime.h>
 #include <epicsTimer.h>
-#else
-#include <assert.h>
-#include <wdLib.h>
-#include <sysLib.h>
-extern "C" {
-#include <callback.h>
-}
-#endif
 
 #include <asynDriver.h>
 #include <asynOctet.h>
@@ -134,9 +125,7 @@ static const char* eomReasonStr[] = {
 };
 
 class AsynDriverInterface : StreamBusInterface
-#ifdef EPICS_3_14
  , epicsTimerNotify
-#endif
 {
     asynUser* pasynUser;
     asynCommon* pasynCommon;
@@ -164,13 +153,8 @@ class AsynDriverInterface : StreamBusInterface
     const char* outputBuffer;
     size_t outputSize;
     int peeksize;
-#ifdef EPICS_3_14
     epicsTimerQueueActive* timerQueue;
     epicsTimer* timer;
-#else
-    WDOG_ID timer;
-    CALLBACK timeoutCallback;
-#endif
 
     AsynDriverInterface(Client* client);
     ~AsynDriverInterface();
@@ -189,12 +173,8 @@ class AsynDriverInterface : StreamBusInterface
     bool disconnectRequest();
     void finish();
 
-#ifdef EPICS_3_14
     // epicsTimerNotify methods
     epicsTimerNotify::expireStatus expire(const epicsTime &);
-#else
-    static void expire(CALLBACK *pcallback);
-#endif
 
     // local methods
     void timerExpired();
@@ -211,21 +191,10 @@ class AsynDriverInterface : StreamBusInterface
             (StreamBusInterface::priority());
     }
     void startTimer(double timeout) {
-#ifdef EPICS_3_14
         timer->start(*this, timeout);
-#else
-        callbackSetPriority(priority(), &timeoutCallback);
-        wdStart(timer, (int)((timeout+1)*sysClkRateGet())-1,
-            reinterpret_cast<FUNCPTR>(callbackRequest),
-            reinterpret_cast<int>(&timeoutCallback));
-#endif
     }
     void cancelTimer() {
-#ifdef EPICS_3_14
         timer->cancel();
-#else
-        wdCancel(timer);
-#endif
     }
 
     // asynUser callback functions
@@ -263,16 +232,10 @@ AsynDriverInterface(Client* client) : StreamBusInterface(client)
         handleTimeout);
     assert(pasynUser);
     pasynUser->userPvt = this;
-#ifdef EPICS_3_14
     timerQueue = &epicsTimerQueueActive::allocate(true);
     assert(timerQueue);
     timer = &timerQueue->createTimer();
     assert(timer);
-#else
-    timer = wdCreate();
-    callbackSetCallback(expire, &timeoutCallback);
-    callbackSetUser(this, &timeoutCallback);
-#endif
 }
 
 AsynDriverInterface::
@@ -306,12 +269,8 @@ AsynDriverInterface::
     }
     // Now, no handler is running any more and none will start.
 
-#ifdef EPICS_3_14
     timer->destroy();
     timerQueue->release();
-#else
-    wdDelete(timer);
-#endif
     pasynManager->disconnect(pasynUser);
     pasynManager->freeAsynUser(pasynUser);
     pasynUser = NULL;
@@ -1273,22 +1232,12 @@ timerExpired()
     }
 }
 
-#ifdef EPICS_3_14
 epicsTimerNotify::expireStatus AsynDriverInterface::
 expire(const epicsTime &)
 {
     timerExpired();
     return noRestart;
 }
-#else
-void AsynDriverInterface::
-expire(CALLBACK *pcallback)
-{
-    AsynDriverInterface* interface =
-        static_cast<AsynDriverInterface*>(pcallback->user);
-    interface->timerExpired();
-}
-#endif
 
 bool AsynDriverInterface::
 connectRequest(unsigned long connecttimeout_ms)
diff --git a/stream-2-5-1/streamDevice/src/Makefile b/stream-2-5-1/streamDevice/src/Makefile
index 99d83b1..8d729a7 100644
--- a/stream-2-5-1/streamDevice/src/Makefile
+++ b/stream-2-5-1/streamDevice/src/Makefile
@@ -36,7 +36,7 @@ include $(TOP)/configure/CONFIG
 
 LIBRARY_DEFAULT = stream
 
-DBD += $(LIBRARY_DEFAULT).dbd
+#!DBD += $(LIBRARY_DEFAULT).dbd
 
 ifdef ASYN
 LIB_LIBS += asyn
diff --git a/stream-2-5-1/streamDevice/src/StreamEpics.cc b/stream-2-5-1/streamDevice/src/StreamEpics.cc
index deb5a61..5626a7b 100644
--- a/stream-2-5-1/streamDevice/src/StreamEpics.cc
+++ b/stream-2-5-1/streamDevice/src/StreamEpics.cc
@@ -22,10 +22,6 @@
 #include "StreamError.h"
 #include "devStream.h"
 
-#ifndef EPICS_3_14
-extern "C" {
-#endif
-
 #include <ctype.h>
 #include <stdarg.h>
 #include <stdlib.h>
@@ -37,18 +33,6 @@ extern "C" {
 #include <alarm.h>
 #include <callback.h>
 
-#ifndef EPICS_3_14
-
-#include <semLib.h>
-#include <wdLib.h>
-#include <taskLib.h>
-
-extern DBBASE *pdbbase;
-
-} // extern "C"
-
-#else
-
 #include <epicsTimer.h>
 #include <epicsMutex.h>
 #include <epicsEvent.h>
@@ -68,8 +52,6 @@ epicsShareFunc int epicsShareAPI iocshCmd(const char *command);
 
 #include <epicsExport.h>
 
-#endif
-
 #if defined(__vxworks) || defined(vxWorks)
 #include <symLib.h>
 #include <sysSymTbl.h>
@@ -87,25 +69,16 @@ extern "C" void streamRecordProcessCallback(CALLBACK *pcallback);
 extern "C" long streamReload(char* recordname);
 
 class Stream : protected StreamCore
-#ifdef EPICS_3_14
     , epicsTimerNotify
-#endif
 {
     dbCommon* record;
     struct link *ioLink;
     streamIoFunction readData;
     streamIoFunction writeData;
-#ifdef EPICS_3_14
     epicsTimerQueueActive* timerQueue;
     epicsTimer* timer;
     epicsMutex mutex;
     epicsEvent initDone;
-#else
-    WDOG_ID timer;
-    CALLBACK timeoutCallback;
-    SEM_ID mutex;
-    SEM_ID initDone;
-#endif
     StreamBuffer fieldBuffer;
     int status;
     int convert;
@@ -114,13 +87,8 @@ class Stream : protected StreamCore
     CALLBACK commandCallback;
     CALLBACK processCallback;
 
-
-#ifdef EPICS_3_14
 // epicsTimerNotify method
     expireStatus expire(const epicsTime&);
-#else
-    static void expire(CALLBACK *pcallback);
-#endif
 
 // StreamCore methods
     void protocolStartHook();
@@ -166,11 +134,9 @@ public:
 
 
 // shell functions ///////////////////////////////////////////////////////
-#ifdef EPICS_3_14
 extern "C" {
 epicsExportAddress(int, streamDebug);
 }
-#endif
 
 // for subroutine record
 extern "C" long streamReloadSub()
@@ -225,7 +191,6 @@ extern "C" long streamReload(char* recordname)
     return OK;
 }
 
-#ifdef EPICS_3_14
 static const iocshArg streamReloadArg0 =
     { "recordname", iocshArgString };
 static const iocshArg * const streamReloadArgs[] =
@@ -251,7 +216,6 @@ static void streamRegistrar ()
 extern "C" {
 epicsExportRegistrar(streamRegistrar);
 }
-#endif // EPICS_3_14
 
 // driver support ////////////////////////////////////////////////////////
 
@@ -265,7 +229,6 @@ struct stream_drvsup {
     Stream::drvInit
 };
 
-#ifdef EPICS_3_14
 extern "C" {
 epicsExportAddress(drvet, stream);
 }
@@ -277,22 +240,6 @@ void streamEpicsPrintTimestamp(char* buffer, int size)
     tlen = tm.strftime(buffer, size, "%Y/%m/%d %H:%M:%S.%03f");
     sprintf(buffer+tlen, " %.*s", size-tlen-2, epicsThreadGetNameSelf());
 }
-#else
-void streamEpicsPrintTimestamp(char* buffer, int size)
-{
-    int tlen;
-    char* c;
-    TS_STAMP tm;
-    tsLocalTime (&tm);
-    tsStampToText(&tm, TS_TEXT_MMDDYY, buffer);
-    c = strchr(buffer,'.');
-    if (c) {
-        c[4] = 0;
-    }
-    tlen = strlen(buffer);
-    sprintf(buffer+tlen, " %.*s", size-tlen-2, taskName(0));
-}
-#endif
 
 long Stream::
 report(int interest)
@@ -500,16 +447,8 @@ Stream(dbCommon* _record, struct link *ioLink,
 :record(_record), ioLink(ioLink), readData(readData), writeData(writeData)
 {
     streamname = record->name;
-#ifdef EPICS_3_14
     timerQueue = &epicsTimerQueueActive::allocate(true);
     timer = &timerQueue->createTimer();
-#else
-    timer = wdCreate();
-    mutex = semMCreate(SEM_INVERSION_SAFE | SEM_Q_PRIORITY);
-    initDone = semBCreate(SEM_Q_FIFO, SEM_EMPTY);
-    callbackSetCallback(expire, &timeoutCallback);
-    callbackSetUser(this, &timeoutCallback);
-#endif
     callbackSetCallback(streamExecuteCommand, &commandCallback);
     callbackSetUser(this, &commandCallback);
     callbackSetCallback(streamRecordProcessCallback, &processCallback);
@@ -532,15 +471,10 @@ Stream::
         record->dpvt = NULL;
         debug("~Stream(%s): dpvt cleared\n", name());
     }
-#ifdef EPICS_3_14
     timer->destroy();
     debug("~Stream(%s): timer destroyed\n", name());
     timerQueue->release();
     debug("~Stream(%s): timer queue released\n", name());
-#else
-    wdDelete(timer);
-    debug("~Stream(%s): watchdog destroyed\n", name());
-#endif
     releaseMutex();
 }
 
@@ -635,11 +569,7 @@ initRecord()
     }
     debug("Stream::initRecord %s: waiting for initDone\n",
         name());
-#ifdef EPICS_3_14
     initDone.wait();
-#else
-    semTake(initDone, WAIT_FOREVER);
-#endif
     debug("Stream::initRecord %s: initDone\n",
         name());
 
@@ -762,21 +692,12 @@ scan(format_t *format, void* value, size_t maxStringSize)
 
 // epicsTimerNotify virtual method ///////////////////////////////////////
 
-#ifdef EPICS_3_14
 epicsTimerNotify::expireStatus Stream::
 expire(const epicsTime&)
 {
     timerCallback();
     return noRestart;
 }
-#else
-void Stream::
-expire(CALLBACK *pcallback)
-{
-    Stream* pstream = static_cast<Stream*>(pcallback->user);
-    pstream->timerCallback();
-}
-#endif
 
 // StreamCore virtual methods ////////////////////////////////////////////
 
@@ -835,11 +756,7 @@ protocolFinishHook(ProtocolResult result)
     }
     if (flags & InitRun)
     {
-#ifdef EPICS_3_14
         initDone.signal();
-#else
-        semGive(initDone);
-#endif
         return;
     }
 
@@ -891,14 +808,7 @@ startTimer(unsigned long timeout)
 {
     debug("Stream::startTimer(stream=%s, timeout=%lu) = %f seconds\n",
         name(), timeout, timeout * 0.001);
-#ifdef EPICS_3_14
     timer->start(*this, timeout * 0.001);
-#else
-    callbackSetPriority(priority(), &timeoutCallback);
-    wdStart(timer, (timeout+1)*sysClkRateGet()/1000-1,
-        reinterpret_cast<FUNCPTR>(callbackRequest),
-        reinterpret_cast<int>(&timeoutCallback));
-#endif
 }
 
 bool Stream::
@@ -1229,7 +1139,6 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
     return true;
 }
 
-#ifdef EPICS_3_14
 // Pass command to iocsh
 void streamExecuteCommand(CALLBACK *pcallback)
 {
@@ -1244,24 +1153,6 @@ void streamExecuteCommand(CALLBACK *pcallback)
         pstream->execCallback(StreamIoSuccess);
     }
 }
-#else
-// Pass command to vxWorks shell
-extern "C" int execute(const char *cmd);
-
-void streamExecuteCommand(CALLBACK *pcallback)
-{
-    Stream* pstream = static_cast<Stream*>(pcallback->user);
-
-    if (execute(pstream->outputLine()) != OK)
-    {
-        pstream->execCallback(StreamIoFault);
-    }
-    else
-    {
-        pstream->execCallback(StreamIoSuccess);
-    }
-}
-#endif
 
 bool Stream::
 execute()
@@ -1274,19 +1165,11 @@ execute()
 void Stream::
 lockMutex()
 {
-#ifdef EPICS_3_14
     mutex.lock();
-#else
-    semTake(mutex, WAIT_FOREVER);
-#endif
 }
 
 void Stream::
 releaseMutex()
 {
-#ifdef EPICS_3_14
     mutex.unlock();
-#else
-    semGive(mutex);
-#endif
 }
diff --git a/stream-2-5-1/streamDevice/srcSynApps/Makefile b/stream-2-5-1/streamDevice/srcSynApps/Makefile
index 4fec9f9..1f62740 100644
--- a/stream-2-5-1/streamDevice/srcSynApps/Makefile
+++ b/stream-2-5-1/streamDevice/srcSynApps/Makefile
@@ -7,8 +7,6 @@ include $(TOP)/configure/CONFIG
 
 LIBRARY_DEFAULT = streamSynApps
 
-DBD += $(LIBRARY_DEFAULT).dbd
-
 ifeq ($(LOADABLE_MODULE),YES)
 SRCS += $(LIBRARY_DEFAULT)_registerRecordDeviceDriver.cpp
 endif 
diff --git a/stream-2-5-1/streamDevice/streamApp/Makefile b/stream-2-5-1/streamDevice/streamApp/Makefile
index 892becb..3b0e137 100644
--- a/stream-2-5-1/streamDevice/streamApp/Makefile
+++ b/stream-2-5-1/streamDevice/streamApp/Makefile
@@ -47,7 +47,7 @@ endif
 ifneq ($(words $(CALC) $(SYNAPPS)), 0)
 # With synApps scalcout record
 streamApp_DBD += calcSupport.dbd
-streamApp_DBD += streamSynApps.dbd
+#!streamApp_DBD += streamSynApps.dbd
 PROD_LIBS += calc
 # older calc versions require sscan.  So does new version if it was built with
 # sscan
@@ -55,7 +55,7 @@ PROD_LIBS += sscan
 PROD_LIBS_DEFAULT += streamSynApps
 endif
 
-streamApp_DBD += stream.dbd
+#!streamApp_DBD += stream.dbd
 
 ifdef PCRE
 LIB_LIBS += pcre
@@ -78,7 +78,7 @@ CPPFLAGS += -DDEBUGFILE=StreamDebug.log
 
 include $(TOP)/configure/RULES
 
-clean:: myclean
+clean: myclean
 
 myclean:
 	$(RM) core* StreamDebug.log
diff --git a/vac-1-4/vacApp/src/devDigitelPump.dbd b/vac-1-4/vacApp/src/devDigitelPump.dbd
index 44224eb..4cf1dad 100644
--- a/vac-1-4/vacApp/src/devDigitelPump.dbd
+++ b/vac-1-4/vacApp/src/devDigitelPump.dbd
@@ -1,2 +1 @@
 device(digitel,	INST_IO, devDigitelPump, "asyn DigitelPump")
-include "asyn.dbd"
diff --git a/vac-1-4/vacApp/src/devVacSen.dbd b/vac-1-4/vacApp/src/devVacSen.dbd
index ccc1de2..8c4a405 100644
--- a/vac-1-4/vacApp/src/devVacSen.dbd
+++ b/vac-1-4/vacApp/src/devVacSen.dbd
@@ -1,2 +1 @@
 device(vs,	INST_IO,	devVacSen,	"asyn VacSen")
-include "asyn.dbd"
diff --git a/xxx-5-6/xxxApp/src/Makefile b/xxx-5-6/xxxApp/src/Makefile
index 07d1f5b..f0077ce 100644
--- a/xxx-5-6/xxxApp/src/Makefile
+++ b/xxx-5-6/xxxApp/src/Makefile
@@ -140,9 +140,11 @@ endif
 ifneq (,$(findstring linux, $(T_A)))
 	DBD  += iocxxxLinux.dbd
 	iocxxxLinux_DBD += xxxCommonInclude.dbd
-	iocxxxLinux_DBD += ADSupport.dbd  NDFileNetCDF.dbd
+	#!iocxxxLinux_DBD += ADSupport.dbd  NDFileNetCDF.dbd
+	iocxxxLinux_DBD += ADSupport.dbd
 	xxx_LIBS_Linux += ADBase NDPlugin netCDF
-	iocxxxLinux_DBD += simDetectorSupport.dbd commonDriverSupport.dbd
+	#!iocxxxLinux_DBD += simDetectorSupport.dbd commonDriverSupport.dbd
+	iocxxxLinux_DBD += simDetectorSupport.dbd NDPluginSupport.dbd
 	xxx_LIBS_Linux += simDetector
 
 	# If your host supports libpcap and libnet and you want to build Canberra network
@@ -161,7 +163,7 @@ ifneq (,$(findstring linux, $(T_A)))
 	endif
 
 	ifdef DEVIOCSTATS
-		iocxxxLinux_DBD += devIocStats.dbd iocAdmin.dbd
+		iocxxxLinux_DBD += devIocStats.dbd
 	endif
 endif
 
diff --git a/xxx-5-6/xxxApp/src/xxxCommonInclude.dbd b/xxx-5-6/xxxApp/src/xxxCommonInclude.dbd
index 767f6e3..09c4fda 100644
--- a/xxx-5-6/xxxApp/src/xxxCommonInclude.dbd
+++ b/xxx-5-6/xxxApp/src/xxxCommonInclude.dbd
@@ -56,12 +56,10 @@ include "devSPiiPlus.dbd"
 include "devSmartMotorMotor.dbd"
 include "devSoftMotor.dbd"
 include "devThorLabs.dbd"
-include "motorRecord.dbd"
 include "motorSimSupport.dbd"
 
 # seq
 include "devSequencer.dbd"
 
 # stream
-include "stream.dbd"
-include "streamSynApps.dbd"
+#include "streamApp.dbd"

References:
EPICS Base version 3.15.0.1 released Andrew Johnson
Re: EPICS Base version 3.15.0.1 released Anze Zagar

Navigate by Date:
Prev: Re: Cross-compilation, static build, etc J. Lewis Muir
Next: OPC with binary out records pthomas
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS Base version 3.15.0.1 released Eric Norum
Next: Re: EPICS Base version 3.15.0.1 released Ron Sluiter
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·