From 90d6aa6dd3b79780c26c3b9746c541140bb45739 Mon Sep 17 00:00:00 2001
From: Rolf Bork <rolf.bork@ligo.org>
Date: Wed, 4 Sep 2013 20:47:50 +0000
Subject: [PATCH] Added support for filter module EXCMON and TRAMP signals in
 synchronous EPICS DAQ.

git-svn-id: https://redoubt.ligo-wa.caltech.edu/svn/advLigoRTS/trunk@3470 6dcd42c9-f523-4c6d-aada-af552506706e
---
 src/epics/util/fmseq.pl  | 34 ++++++++++++----------------------
 src/include/drv/daqLib.c | 18 ++++++++++--------
 2 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/src/epics/util/fmseq.pl b/src/epics/util/fmseq.pl
index a8a5cbc8c..d553d0bd1 100755
--- a/src/epics/util/fmseq.pl
+++ b/src/epics/util/fmseq.pl
@@ -919,17 +919,19 @@ if ($gds_specified) {
 	print "datatype = 4\n";	
 	print "datarate = $gds_datarate\n\n";
 	$excnum++;
-	for(my $efn = 0;$efn < 9; $efn ++)
+	for(my $efn = 0;$efn < 11; $efn ++)
 	{
-		if($efn == 0) {$edcuFilt .= "$edcuFiltName\_INMON]\n";}
-		if($efn == 1) {$edcuFilt .= "$edcuFiltName\_OFFSET]\n";}
-		if($efn == 2) {$edcuFilt .= "$edcuFiltName\_GAIN]\n";}
-		if($efn == 3) {$edcuFilt .= "$edcuFiltName\_LIMIT]\n";}
-		if($efn == 4) {$edcuFilt .= "$edcuFiltName\_OUT16]\n";}
-		if($efn == 5) {$edcuFilt .= "$edcuFiltName\_OUTPUT]\n";}
-		if($efn == 6) {$edcuFilt .= "$edcuFiltName\_SWSTAT]\n";}
-		if($efn == 7) {$edcuFilt .= "$edcuFiltName\_SWREQ]\n";}
-		if($efn == 8) {$edcuFilt .= "$edcuFiltName\_SWMASK]\n";}
+		if($efn == 0) {$edcuFilt .= "$edcuFiltName\_OFFSET]\n";}
+		if($efn == 1) {$edcuFilt .= "$edcuFiltName\_GAIN]\n";}
+		if($efn == 2) {$edcuFilt .= "$edcuFiltName\_LIMIT]\n";}
+		if($efn == 3) {$edcuFilt .= "$edcuFiltName\_TRAMP]\n";}
+		if($efn == 4) {$edcuFilt .= "$edcuFiltName\_SWREQ]\n";}
+		if($efn == 5) {$edcuFilt .= "$edcuFiltName\_SWMASK]\n";}
+		if($efn == 6) {$edcuFilt .= "$edcuFiltName\_INMON]\n";}
+		if($efn == 7) {$edcuFilt .= "$edcuFiltName\_EXCMON]\n";}
+		if($efn == 8) {$edcuFilt .= "$edcuFiltName\_OUT16]\n";}
+		if($efn == 9) {$edcuFilt .= "$edcuFiltName\_OUTPUT]\n";}
+		if($efn == 10) {$edcuFilt .= "$edcuFiltName\_SWSTAT]\n";}
 	 $edcuFilt .= "acquire=3\n";
 	 $edcuFilt .= "datarate=16\n";
 	 $edcuFilt .= "datatype=4\n";
@@ -1142,16 +1144,4 @@ print PROC $vproc;
 print PROC "};\n";
 close PROC;
 
-print STDERR "SENDINGEPICS FILE TO $ARGV[0]_edcu16 $edcuSizeI $edcuSizeD\n";
-open(PROC, ">$ARGV[0]_edcu16") || die "cannot open $ARGV[0]_edcu16.h file for writing";
-$edcuEntryI =~ s/%SITE%/$site/g;
-$edcuEntryI =~ s/%SYS%/$systems[0]/g;
-$edcuEntryD =~ s/%SITE%/$site/g;
-$edcuEntryD =~ s/%SYS%/$systems[0]/g;
-print PROC $edcuEntryI;
-print PROC $edcuEntryD;
-print PROC "Int Count = $edcuSizeI \n";
-print PROC "Double Count = $edcuSizeD \n";
-close PROC;
-
 exit(0);
diff --git a/src/include/drv/daqLib.c b/src/include/drv/daqLib.c
index 1af18cfa5..1c3a10375 100644
--- a/src/include/drv/daqLib.c
+++ b/src/include/drv/daqLib.c
@@ -626,26 +626,28 @@ if(daqSlot == 1)
 // Write filter module EPICS values as floats
  	for(ii=0;ii<MAX_MODULES;ii++)
 	{
-		*testPtr = (float)dspPtr->data[ii].filterInput;;
-		testPtr ++;
-		// *testPtr = (float)dspPtr->data[ii].exciteInput;;
-		// testPtr ++;
 		*testPtr = (float)dspPtr->inputs[ii].offset;;
 		testPtr ++;
 		*testPtr = (float)dspPtr->inputs[ii].outgain;;
 		testPtr ++;
 		*testPtr = (float)dspPtr->inputs[ii].limiter;;
 		testPtr ++;
+		*testPtr = (float)dspPtr->inputs[ii].gain_ramp_time;;
+		testPtr ++;
+		*testPtr = (float)dspPtr->inputs[ii].swReq;;
+		testPtr ++;
+		*testPtr = (float)dspPtr->inputs[ii].swMask;;
+		testPtr ++;
+		*testPtr = (float)dspPtr->data[ii].filterInput;;
+		testPtr ++;
+		*testPtr = (float)dspPtr->data[ii].exciteInput;;
+		testPtr ++;
 		*testPtr = (float)dspPtr->data[ii].output16Hz;;
 		testPtr ++;
 		*testPtr = (float)dspPtr->data[ii].output;;
 		testPtr ++;
 		*testPtr = (float)dspPtr->data[ii].swStatus;;
 		testPtr ++;
-		*testPtr = (float)dspPtr->inputs[ii].swReq;;
-		testPtr ++;
-		*testPtr = (float)dspPtr->inputs[ii].swMask;;
-		testPtr ++;
 	}
 }
   if(!xferDone)
-- 
GitLab