Commit in epics/trunk/epics_example/myexampleApp on MAIN
Db/Makefile+7-6788 -> 789
  /dbFebTemp.db+34-2788 -> 789
  /dbHybLV.db+25-24788 -> 789
  /dbHybT.db+36added 789
src/client_util.c+12-24788 -> 789
   /dbSubExample.c+85-51788 -> 789
+199-107
1 added + 5 modified, total 6 files
Added hyb t, feb t and other updates

epics/trunk/epics_example/myexampleApp/Db
Makefile 788 -> 789
--- epics/trunk/epics_example/myexampleApp/Db/Makefile	2014-07-18 01:01:57 UTC (rev 788)
+++ epics/trunk/epics_example/myexampleApp/Db/Makefile	2014-07-18 01:03:23 UTC (rev 789)
@@ -10,12 +10,13 @@
 #----------------------------------------------------
 # Create and install (or just install)
 # databases, templates, substitutions like this
-DB += dbExample1.db
-DB += dbExample2.db
-DB += dbSubExample.db
-DB += user.substitutions
-DB += userHost.substitutions
-DB += hybLV.db
+#DB += dbExample1.db
+#DB += dbExample2.db
+#DB += dbSubExample.db
+#DB += user.substitutions
+#DB += userHost.substitutions
+#DB += hybLV.db
+DB += dbHybT.db
 DB += dbHybLV.db
 DB += dbFebTemp.db
 DB += dbSVT.db

epics/trunk/epics_example/myexampleApp/Db
dbFebTemp.db 788 -> 789
--- epics/trunk/epics_example/myexampleApp/Db/dbFebTemp.db	2014-07-18 01:01:57 UTC (rev 788)
+++ epics/trunk/epics_example/myexampleApp/Db/dbFebTemp.db	2014-07-18 01:03:23 UTC (rev 789)
@@ -1,22 +1,54 @@
 
 
+ 
 record(sub,SVT:temp:fe:0:axixadc:t_rd_sub)
 {
     field(SCAN, "Passive")
     field(INAM,"subTempInit")
     field(SNAM,"subTempProcess")
-    field(FLNK,"SVT:lv:hyb:bot:0:dvdd:i_rd")
+    field(FLNK,"SVT:temp:fe:0:FebTemp0:t_rd")
 }
 
-record(ai, SVT:temp:fe:0:anap:t_rd) {
+record(ai, SVT:temp:fe:0:axixadc:t_rd) {
     field(SCAN, "Passive")
     field(FLNK,"SVT:temp:fe:0:axixadc:t_rd_sub")
     field(INP, "SVT:temp:fe:0:axixadc:t_rd_sub PP")
     field(DTYP,"Soft Channel")
 }
 
+record(sub,SVT:temp:fe:0:FebTemp0:t_rd_sub)
+{
+    field(SCAN, "Passive")
+    field(INAM,"subTempInit")
+    field(SNAM,"subTempProcess")
+    field(FLNK,"SVT:temp:fe:0:FebTemp1:t_rd")
+}
 
+record(ai, SVT:temp:fe:0:FebTemp0:t_rd) {
+    field(SCAN, "Passive")
+    field(FLNK,"SVT:temp:fe:0:FebTemp0:t_rd_sub")
+    field(INP, "SVT:temp:fe:0:FebTemp0:t_rd_sub PP")
+    field(DTYP,"Soft Channel")
+}
 
+record(sub,SVT:temp:fe:0:FebTemp1:t_rd_sub)
+{
+    field(SCAN, "Passive")
+    field(INAM,"subTempInit")
+    field(SNAM,"subTempProcess")
+    field(FLNK,"SVT:lv:hyb:bot:0:dvdd:i_rd")
+}
 
+record(ai, SVT:temp:fe:0:FebTemp1:t_rd) {
+    field(SCAN, "Passive")
+    field(FLNK,"SVT:temp:fe:0:FebTemp1:t_rd_sub")
+    field(INP, "SVT:temp:fe:0:FebTemp1:t_rd_sub PP")
+    field(DTYP,"Soft Channel")
+}
 
 
+
+
+
+
+

epics/trunk/epics_example/myexampleApp/Db
dbHybLV.db 788 -> 789
--- epics/trunk/epics_example/myexampleApp/Db/dbHybLV.db	2014-07-18 01:01:57 UTC (rev 788)
+++ epics/trunk/epics_example/myexampleApp/Db/dbHybLV.db	2014-07-18 01:03:23 UTC (rev 789)
@@ -16,7 +16,7 @@
 
 record(ai, SVT:lv:hyb:bot:0:dvdd:i_rd) {
   field(SCAN, "Passive")
-  field(FLNK,"SVT:lv:hyb:bot:0:dvdd:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:0:dvdd:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:0:dvdd:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -31,7 +31,7 @@
 
 record(ai, SVT:lv:hyb:bot:1:dvdd:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:1:dvdd:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:1:dvdd:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:1:dvdd:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -46,7 +46,7 @@
 
 record(ai, SVT:lv:hyb:bot:2:dvdd:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:2:dvdd:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:2:dvdd:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:2:dvdd:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -61,7 +61,7 @@
 
 record(ai, SVT:lv:hyb:bot:3:dvdd:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:3:dvdd:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:3:dvdd:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:3:dvdd:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -81,7 +81,7 @@
 
 record(ai, SVT:lv:hyb:bot:0:avdd:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:0:avdd:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:0:avdd:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:0:avdd:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -96,7 +96,7 @@
 
 record(ai, SVT:lv:hyb:bot:1:avdd:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:1:avdd:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:1:avdd:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:1:avdd:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -111,7 +111,7 @@
 
 record(ai, SVT:lv:hyb:bot:2:avdd:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:2:avdd:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:2:avdd:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:2:avdd:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -126,7 +126,7 @@
 
 record(ai, SVT:lv:hyb:bot:3:avdd:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:3:avdd:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:3:avdd:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:3:avdd:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -146,7 +146,7 @@
 
 record(ai, SVT:lv:hyb:bot:0:v125:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:0:v125:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:0:v125:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:0:v125:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -161,7 +161,7 @@
 
 record(ai, SVT:lv:hyb:bot:1:v125:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:1:v125:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:1:v125:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:1:v125:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -176,7 +176,7 @@
 
 record(ai, SVT:lv:hyb:bot:2:v125:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:2:v125:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:2:v125:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:2:v125:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -191,7 +191,7 @@
 
 record(ai, SVT:lv:hyb:bot:3:v125:i_rd) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:3:v125:i_rd_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:3:v125:i_rd_sub")
   field(INP, "SVT:lv:hyb:bot:3:v125:i_rd_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -213,7 +213,7 @@
 
 record(ai, SVT:lv:hyb:bot:0:dvdd:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:0:dvdd:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:0:dvdd:vn_sub")
   field(INP, "SVT:lv:hyb:bot:0:dvdd:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -228,7 +228,7 @@
 
 record(ai, SVT:lv:hyb:bot:1:dvdd:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:1:dvdd:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:1:dvdd:vn_sub")
   field(INP, "SVT:lv:hyb:bot:1:dvdd:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -243,7 +243,7 @@
 
 record(ai, SVT:lv:hyb:bot:2:dvdd:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:2:dvdd:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:2:dvdd:vn_sub")
   field(INP, "SVT:lv:hyb:bot:2:dvdd:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -258,7 +258,7 @@
 
 record(ai, SVT:lv:hyb:bot:3:dvdd:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:3:dvdd:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:3:dvdd:vn_sub")
   field(INP, "SVT:lv:hyb:bot:3:dvdd:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -279,7 +279,7 @@
 
 record(ai, SVT:lv:hyb:bot:0:avdd:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:0:avdd:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:0:avdd:vn_sub")
   field(INP, "SVT:lv:hyb:bot:0:avdd:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -294,7 +294,7 @@
 
 record(ai, SVT:lv:hyb:bot:1:avdd:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:1:avdd:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:1:avdd:vn_sub")
   field(INP, "SVT:lv:hyb:bot:1:avdd:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -309,7 +309,7 @@
 
 record(ai, SVT:lv:hyb:bot:2:avdd:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:2:avdd:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:2:avdd:vn_sub")
   field(INP, "SVT:lv:hyb:bot:2:avdd:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -324,7 +324,7 @@
 
 record(ai, SVT:lv:hyb:bot:3:avdd:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:3:avdd:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:3:avdd:vn_sub")
   field(INP, "SVT:lv:hyb:bot:3:avdd:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -346,7 +346,7 @@
 
 record(ai, SVT:lv:hyb:bot:0:v125:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:0:v125:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:0:v125:vn_sub")
   field(INP, "SVT:lv:hyb:bot:0:v125:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -361,7 +361,7 @@
 
 record(ai, SVT:lv:hyb:bot:1:v125:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:1:v125:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:1:v125:vn_sub")
   field(INP, "SVT:lv:hyb:bot:1:v125:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -376,7 +376,7 @@
 
 record(ai, SVT:lv:hyb:bot:2:v125:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:2:v125:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:2:v125:vn_sub")
   field(INP, "SVT:lv:hyb:bot:2:v125:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }
@@ -386,11 +386,12 @@
     field(INAM,"subLVInit")
     field(SNAM,"subLVProcess")
     field(SCAN,"Passive")
+    field(FLNK, "SVT:temp:hyb:bot:0:temp1:t_rd")
 }
 
 record(ai, SVT:lv:hyb:bot:3:v125:vn) {
   #field(SCAN, "5 second")
-  field(FLNK,"SVT:lv:hyb:bot:3:v125:vn_sub PP")
+  field(FLNK,"SVT:lv:hyb:bot:3:v125:vn_sub")
   field(INP, "SVT:lv:hyb:bot:3:v125:vn_sub CPP")
   field(DTYP,"Soft Channel")
 }

epics/trunk/epics_example/myexampleApp/Db
dbHybT.db added at 789
--- epics/trunk/epics_example/myexampleApp/Db/dbHybT.db	                        (rev 0)
+++ epics/trunk/epics_example/myexampleApp/Db/dbHybT.db	2014-07-18 01:03:23 UTC (rev 789)
@@ -0,0 +1,36 @@
+
+
+####### T_RD BOT
+
+
+record(sub,SVT:temp:hyb:bot:0:temp1:t_rd_sub)
+{
+    field(SCAN,"Passive")
+    field(INAM,"subTempInit")
+    field(SNAM,"subTempProcess")
+    field(FLNK,"SVT:temp:hyb:bot:1:temp1:t_rd")
+}
+
+record(ai, SVT:temp:hyb:bot:0:temp1:t_rd) {
+  field(SCAN, "Passive")
+  field(FLNK,"SVT:temp:hyb:bot:0:temp1:t_rd_sub")
+  field(INP, "SVT:temp:hyb:bot:0:temp1:t_rd_sub CPP")
+  field(DTYP,"Soft Channel")
+}
+
+
+
+record(sub,SVT:temp:hyb:bot:1:temp1:t_rd_sub)
+{
+    field(SCAN,"Passive")
+    field(INAM,"subTempInit")
+    field(SNAM,"subTempProcess")
+}
+
+record(ai, SVT:temp:hyb:bot:1:temp1:t_rd) {
+  field(SCAN, "Passive")
+  field(FLNK,"SVT:temp:hyb:bot:1:temp1:t_rd_sub")
+  field(INP, "SVT:temp:hyb:bot:1:temp1:t_rd_sub CPP")
+  field(DTYP,"Soft Channel")
+}
+

epics/trunk/epics_example/myexampleApp/src
client_util.c 788 -> 789
--- epics/trunk/epics_example/myexampleApp/src/client_util.c	2014-07-18 01:01:57 UTC (rev 788)
+++ epics/trunk/epics_example/myexampleApp/src/client_util.c	2014-07-18 01:03:23 UTC (rev 789)
@@ -23,6 +23,7 @@
   return s;
 }
 
+
 double extractTempValFromString(char value[]) {
   double t = 0.0;
   char* p_start = strstr(value,"C (");
@@ -289,28 +290,6 @@
   xmlCleanupParser();
 }
 
-void readAxiXadcT(int sockfd,int feb_id, char value[],const unsigned int MAX) {
-  char tag[] = "system:status:FrontEndTestFpga:FebCore:AxiXadc:Temperature";
-  xmlDoc* document = NULL;
-  xmlNode* root = NULL;
-  int* p_sockfd = &sockfd;
-  if(client_util_debug!=0) printf("readAxiXadcT: get DOM\n");
-  getSystemDOM(p_sockfd,&document,&root);
-  if(document==NULL) {
-    printf("couldn't get xml document %p\n",document);
-    return;
-  }
-  if(root==NULL) {
-    printf("couldn't get root from document\n");
-    document=NULL;
-    return;
-  }  
-  if(client_util_debug!=0) printf("retrieve value\n");
-  retrieveValue(document,root,tag,value,MAX);
-  if(client_util_debug!=0) printf("free the xml\n");
-  xmlFreeDoc(document);
-  xmlCleanupParser();
-}
 
 
 void getXMLValue(char tag[], char value[],const unsigned int MAX) {
@@ -329,8 +308,17 @@
 }
 
 
-void readFebT(int feb_id, char value[],const unsigned int MAX) {
-  char tag[] = "system:status:FrontEndTestFpga:FebCore:AxiXadc:Temperature";
+void readFebT(int feb_id, char value[],char ch_name[],const unsigned int MAX) {
+  char tag[256];// = "system:status:FrontEndTestFpga:FebCore:AxiXadc:Temperature";
+  memset(tag,0,256);
+  if(strcmp(ch_name,"axixadc")==0) {
+    strcpy(tag,"system:status:FrontEndTestFpga:FebCore:AxiXadc:Temperature");
+  } else if(strcmp(ch_name,"FebTemp0")==0 || strcmp(ch_name,"FebTemp1")==0) {
+    sprintf(tag,"system:status:FrontEndTestFpga:FebCore:PowerMonitor:%s",ch_name);
+  } else {
+    printf("Error: wrong ch_name \"%s\" for readFebT\n",ch_name);
+    return;
+  }
   getXMLValue(tag,value,MAX);
 }
 

epics/trunk/epics_example/myexampleApp/src
dbSubExample.c 788 -> 789
--- epics/trunk/epics_example/myexampleApp/src/dbSubExample.c	2014-07-18 01:01:57 UTC (rev 788)
+++ epics/trunk/epics_example/myexampleApp/src/dbSubExample.c	2014-07-18 01:03:23 UTC (rev 789)
@@ -6,14 +6,19 @@
 #include <aSubRecord.h>
 #include <epicsExport.h>
 #include <tcpipExample.h>
+#include <stringinRecord.h>
+#include <longinRecord.h>
 #include <client_util.h>
 
+
 int mySubDebug = 0;
+int process_order = 0;
 const int BUF_SIZE = 256;
 //char hostName[256] = "";// "134.79.229.141";
 char* hostNameDef = "134.79.229.141";
 char hostName[256];
-int port = 8090;
+int portDef = 8090;
+int port;
 int sockfd = 0;
 int counter = 0;
 const double def_hyb_v = -1.0;
@@ -21,54 +26,57 @@
 const double def_AxiXadcTemp = -1.0;
 
 static long subLVInit(subRecord *precord) {
+  process_order++;
   if (mySubDebug) {
-    printf("Record %s called subLVInit(%p)\n", precord->name, (void*) precord);
+    printf("%d Record %s called subLVInit(%p)\n", process_order, precord->name, (void*) precord);
   }
 
   return 0;
 }
 
 static long subTempInit(subRecord *precord) {
+   process_order++;
   if (mySubDebug) {
-    printf("Record %s called subTempInit(%p)\n", precord->name, (void*) precord);
+    printf("%d: Record %s called subTempInit(%p)\n", process_order, precord->name, (void*) precord);
   }
 
   return 0;
 }
 
-static long subPollInit(subRecord *precord) {
+static void setupSocket(subRecord *precord) {
+  process_order++;
   if (mySubDebug) {
-    printf("Record %s called subPollInit(%p)\n", precord->name, (void*) precord);
-    //sockfd = open_socket(hostName,port);
-    //printf("Opened socket %d\n",sockfd);    
+    printf("%d: Record %s called setupSocket(%p)\n", process_order, precord->name, (void*) precord);
   }
+
   // look for host name and port in DB
   //initialize the string
   memset(hostName,0,BUF_SIZE);  
+  port=0;
   struct link* inpa;
   struct link* inpb;
   inpa = &precord->inpa;
   inpb = &precord->inpb;
   if(inpa && inpb) {
-    if(inpa->value.constantStr && inpb->value.constantStr) {
+    if(inpa && inpb) {
       //union value va = inpa->value;
       //union value vb = inpb->value;
       if (mySubDebug) { 
 	printf("inpa type %d value %p %s\n",inpa->type,inpa->value.constantStr,inpa->value.constantStr);
 	printf("inpb type %d value %p %s\n",inpb->type,inpb->value.constantStr,inpb->value.constantStr);  
+	printf("inpa pv_link name %p\n",(inpa->value).pv_link.pvname);
+	printf("inpa pv_link name %s\n",(inpa->value).pv_link.pvname);
       }
-      printf("%s\n",inpa->value.constantStr);
-      //sprintf(hostName,"%s",inpa->value.constantStr);
-      strcpy(hostName,inpa->value.constantStr);
-      printf("%s\n",hostName);
-      
-      int p = (int)strtol(inpb->value.constantStr,NULL,0);
-      if(p) {
-	port = p;
-      }
-      else {
-	printf("problem converting to in for port %s\n",inpb->value.constantStr);  
-      }
+      //struct dbCommon* recA = ((inpa->value).pv_link).precord;
+      struct stringinRecord* recA = (stringinRecord*) ((inpa->value).pv_link).precord;
+      if (mySubDebug) printf("inpa pv_link record %p name %s\n",recA, recA->name);
+      char* stra = recA->val;
+      if (mySubDebug) printf("stra %p %s %c\n",stra,stra,stra[0]);
+      strcpy(hostName,stra);
+      if (mySubDebug) printf("got hostname \"%s\"\n",hostName);
+      struct longinRecord* recB = (longinRecord*) ((inpa->value).pv_link).precord;
+      if (mySubDebug) printf("inpb pv_link record %p name %s\n",recB, recB->name);
+      port = recB->val;
     } else {
       printf("inpa and inpb strings are null when getting host and port\n");
     }
@@ -76,17 +84,32 @@
   } else {
     printf("inpa and inpb are null when getting host and port\n");
   }
-
+  
   if(strlen(hostName)==0) {
-    printf("No hostname found in DB. USe default\b");
+    printf("No hostname found in DB. Use default\n");
     strcpy(hostName,hostNameDef);
   }
+  if(port==0) {
+    printf("No port found in DB. Use default\n");
+    port = portDef;
+  }
+  
   printf("hostName %s port %d\n",hostName,port);  
   
   if(strcmp(hostName,"")==0) {
     printf("ERROR no valid hostname found\n");
-    return 1;
+    return;
   }
+
+}
+
+
+static long subPollInit(subRecord *precord) {
+  process_order++;
+  if (mySubDebug) {
+    printf("%d: Record %s called subPollInit(%p)\n", process_order, precord->name, (void*) precord);
+  }
+  setupSocket(precord);
   
 
   return 0;
@@ -104,7 +127,7 @@
 {
   double constant;
   if(mySubDebug) {
-    printf("Record %s called readHybrid %s for half=%s id=%d ch_name=%s\n",precord->name,action,half,id,ch_name);
+    printf("Record %s called readHybrid %s for half=%s id=%d ch_name=%s\n", precord->name,action,half,id,ch_name);
   }
 
   //set to default
@@ -123,6 +146,7 @@
   } 
   else if(strcmp(action,"vn_sub")==0) {
     readHybridV(feb_id, id, ch_name, "Near", value, BUF_SIZE);
+    constant = 1e3;
   } 
   else if(strcmp(action,"v_set_sub")==0) {
     // need to move this to a write function?
@@ -148,17 +172,13 @@
   }
 
   //set to default
+  precord->val=def_AxiXadcTemp;
   
   char value[BUF_SIZE];
   memset(value,0,BUF_SIZE);
   if(strcmp(action,"t_rd_sub")==0) {
-    if(strcmp(ch_name,"axixadc") ==0 ) {
-      precord->val=def_AxiXadcTemp;
-      readFebT(feb_id, value, BUF_SIZE);
-    } else {
-      printf("No such ch_name %s implemented for readFeb!\n",ch_name);
-      return;      
-    }
+    readFebT(feb_id, value, ch_name, BUF_SIZE);
+   
   } 
   else {
     printf("No such action %s implemented for readFeb!\n",action);
@@ -220,8 +240,9 @@
 
 
 static long subLVProcess(subRecord *precord) {
+  process_order++;
   if (mySubDebug) {
-    printf("Record %s called subLVProcess(%p)\n", precord->name, (void*) precord);
+    printf("%d: Record %s called subLVProcess(%p)\n",process_order, precord->name, (void*) precord);
   }
   //SVT:lv:hyb:bot:0:dvdd:vn_sub
   int feb_id;
@@ -296,14 +317,16 @@
 
 
 static long subTempProcess(subRecord *precord) {
+  process_order++;
   if (mySubDebug) {
-    printf("Record %s called subTempProcess(%p)\n", precord->name, (void*) precord);
+    printf("%d: Record %s called subTempProcess(%p)\n",process_order, precord->name, (void*) precord);
   }
   //SVT:temp:hyb:bot:0:temp1:t_rd_sub
   //SVT:temp:hyb:bot:0:temp2:t_rd_sub
   //SVT:temp:fe:0:axixadc:t_rd_sub)
   int feb_id;
   char type[BUF_SIZE];
+  memset(type,0,BUF_SIZE);
   char board_type[BUF_SIZE];
   char half[BUF_SIZE];
   char id[BUF_SIZE];
@@ -318,8 +341,10 @@
     printf("Record %s has type %s board type \"%s\"\n", precord->name, type,board_type);
   }
 
-  if(strcmp(type,"temp")!=0) {
-    printf("ERROR this type is not valid \"%s\"\n",type);
+  //  char tmp[BUF_SIZE];
+  int type_cmp;
+  if((type_cmp=strcmp(type,"temp"))!=0) {
+    printf("ERROR this type is not valid \"%s\" cmp %d\n",type,type_cmp);
     return 0;
   }
 
@@ -368,10 +393,9 @@
       printf("ERROR this feb action type is not valid \"%s\"\n",action);
       return 0;
     }  
-
-    if(strcmp(ch_name,"axixadc") ) {
-      printf("ERROR wrong option for feb ch: %s\n",ch_name);
-      return 0;
+    if(strcmp(ch_name,"axixadc") !=0 && strcmp(ch_name,"FebTemp0") !=0 && strcmp(ch_name,"FebTemp1") !=0 ) {
+      printf("This ch name is not implemented for for readFeb: \"%s\" !\n",ch_name);
+      return 0;      
     }
     
     readFeb(precord,action,feb_id,ch_name);  
@@ -393,11 +417,13 @@
 
 
 static long subPollProcess(subRecord *precord) {
+  process_order++;
   if (mySubDebug) {
-    printf("Record %s called subPollProcess(%p)\n", precord->name, (void*) precord);
+    printf("%d: Record %s called subPollProcess(%p)\n",process_order, precord->name, (void*) precord);
     printf("sockfd %d\n",sockfd);
   }
   if(sockfd<=0) {
+    setupSocket(precord);
     printf("Re-opening socket: host: %s:%d\n",hostName, port);    
     sockfd = open_socket(hostName,port);
     printf("Opened socket : %d\n",sockfd);    
@@ -422,17 +448,19 @@
 
 static long mySubInit(subRecord *precord)
 {
+  process_order++;
     if (mySubDebug) {
-        printf("Record %s called mySubInit(%p)\n", precord->name, (void*) precord);
+        printf("%d: Record %s called mySubInit(%p)\n", process_order, precord->name, (void*) precord);
 	}
     return 0;
 }
 
 static long mySubProcess(subRecord *precord)
 {
+ process_order++;
     if (mySubDebug) {
-        printf("Record %s called mySubProcess(%p)\n",
-               precord->name, (void*) precord);
+        printf("%d: Record %s called mySubProcess(%p)\n",
+	       process_order, precord->name, (void*) precord);
     }
     precord->val++;
     counter++;
@@ -441,16 +469,18 @@
 
 static long mySubTempInit(subRecord* precord) 
 {
+  process_order++;
   if(mySubDebug) {
-    printf("Record %s called mySubTempInit(%p)\n",precord->name,(void*) precord);
+    printf("%d: Record %s called mySubTempInit(%p)\n",process_order, precord->name,(void*) precord);
   }
   return 0;
 }
 
 static long mySubCalDelayInit(subRecord* precord) 
 {
+  process_order++;
   if(mySubDebug) {
-    printf("Record %s called mySubCalDelayInit(%p)\n",precord->name,(void*) precord);
+    printf("%d: Record %s called mySubCalDelayInit(%p)\n",process_order,precord->name,(void*) precord);
   }
   return 0;
 }
@@ -458,8 +488,9 @@
 
 static long mySubTempProcess(subRecord* precord) 
 {
+  process_order++;
   if(mySubDebug) {
-    printf("Record %s called mySubTempProcess(%p)\n",precord->name,(void*) precord);
+    printf("%d: Record %s called mySubTempProcess(%p)\n",  process_order, precord->name,(void*) precord);
   }
   sockfd = open_socket(hostName,port);
   if (mySubDebug) {
@@ -491,8 +522,9 @@
 
 static long mySubCalDelayProcess(subRecord* precord) 
 {
+  process_order++;
   if(mySubDebug) {
-    printf("Record %s called mySubCalDelayProcess(%p)\n",precord->name,(void*) precord);
+    printf("%d: Record %s called mySubCalDelayProcess(%p)\n",process_order,precord->name,(void*) precord);
   }
   sockfd = open_socket(hostName,port);
   if (mySubDebug) {
@@ -533,17 +565,19 @@
 
 static long myAsubInit(aSubRecord *precord)
 {
+process_order++;
     if (mySubDebug)
-        printf("Record %s called myAsubInit(%p)\n",
-               precord->name, (void*) precord);
+        printf("%dRecord %s called myAsubInit(%p)\n",
+               process_order, precord->name, (void*) precord);
     return 0;
 }
 
 static long myAsubProcess(aSubRecord *precord)
 {
+process_order++;
     if (mySubDebug)
-        printf("Record %s called myAsubProcess(%p)\n",
-               precord->name, (void*) precord);
+        printf("%d: Record %s called myAsubProcess(%p)\n",
+               process_order, precord->name, (void*) precord);
     return 0;
 }
 
SVNspam 0.1