]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
error message handling update
authorhadaq <hadaq>
Thu, 29 Jul 2010 15:40:25 +0000 (15:40 +0000)
committerhadaq <hadaq>
Thu, 29 Jul 2010 15:40:25 +0000 (15:40 +0000)
libtrbnet/trbcmd.c

index 1809bd41723f958a3fa32a3a7fbd761961685927..736fc4561724f55290b0778bc28d07a4b91d8035 100644 (file)
@@ -1,13 +1,3 @@
-/*
- * Changes by Boris and Jan:
- *
- * 1. Original code is in a sub-routine called start()
- * 2. main() can enter a tcp loop (if called with attribute \"tcp\") or
- * just call start() (otherwise)
- *
- *
- */
-
 #define _GNU_SOURCE
 #include <stdio.h>
 #include <stdlib.h>
@@ -35,7 +25,7 @@
 
 static int hexMode = HEXMODE;
 
-static const char trbcmd_version[] = "$Revision: 2.55 $";
+static const char trbcmd_version[] = "$Revision: 2.56 $";
 
 #define BACKLOG 10
 static uint16_t tcp_port = 55555;
@@ -68,19 +58,31 @@ static const char errTypeString[4][32] = {
 static void logError(int type, const char* format, ...)
 {
   char fmt[512] = "";
+  char msg[4096]= "";
+  char* msgEnd = NULL;
+  char* line = NULL;
   va_list args;
   
   va_start(args, format);
-
+  
   if (scriptFile != NULL) {
-    snprintf(fmt, 512, "%s: Line #%d: %s",
-             errTypeString[type], lineCtr, format);
+    snprintf(fmt, 512, "Line #%d: %s",
+             lineCtr, format);
   } else {
-    snprintf(fmt, 512, "%s: %s", errTypeString[type], format);
+    snprintf(fmt, 512, "%s", format);
   }
-  
-  vfprintf(stderr, fmt, args);
+  vsnprintf(msg, 4096, fmt, args);
   va_end(args);
+
+  msgEnd = msg + strlen(msg);  
+  line = msg;
+  do {
+    char *p = strchr(line, '\n');
+    if (p == NULL) break;
+    *p = '\0';
+    fprintf(stderr, "%s: %s\n", errTypeString[type], line);
+    line = p + 1;
+  } while (line < msgEnd);
 }
 
 /* ------ MAIN ---------------------------------------------------------- */
@@ -341,7 +343,7 @@ int start(int argc, char **argv)
         } else {
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bit(s) have been set:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
 
@@ -377,8 +379,7 @@ int start(int argc, char **argv)
         status = trb_register_read(trb_address, reg_address,
                                    data, NUM_ENDPOINTS * 2);
         if (status == -1) {
-          logError(ERROR, "read_register failed %s\n",
-                   trb_strerror(trb_errno));
+          logError(ERROR, "read_register failed: %s\n", trb_strerror());
         } else {
           for (i = 0; i < status; i += 2) {
             fprintf(stdout, "0x%04x  0x%08x\n", data[i], data[i + 1]);
@@ -387,7 +388,7 @@ int start(int argc, char **argv)
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bit(s) have been set:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }                
         }
         free(data);
@@ -435,7 +436,7 @@ int start(int argc, char **argv)
                                        size, data, USER_BUFFER_SIZE);
         if (status == -1) {
           logError(ERROR, "read_register_mem failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           /* Print data-buffer */
@@ -453,7 +454,7 @@ int start(int argc, char **argv)
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bits are active:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
         free(data);
@@ -527,13 +528,13 @@ int start(int argc, char **argv)
                                         data, size);
         if (status == -1) {
           logError(ERROR, "write_register_memory failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bits are active:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
         
@@ -569,7 +570,7 @@ int start(int argc, char **argv)
         status = trb_read_uid(trb_address, uidBuffer, NUM_ENDPOINTS * 4);
         if (status == -1) {
           logError(ERROR, "read_uid failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           for (i = 0; 
@@ -582,7 +583,7 @@ int start(int argc, char **argv)
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bits are active:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
 
@@ -618,13 +619,13 @@ int start(int argc, char **argv)
 
         if (trb_set_address(uid, endpoint, trb_address) == -1) {
           logError(ERROR, "set_address failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bits are active:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
         
@@ -669,13 +670,13 @@ int start(int argc, char **argv)
 
         if (trb_send_trigger(type, info, random, number) == -1) {
           logError(ERROR, "send_trigger failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bits are active:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
 
@@ -718,7 +719,7 @@ int start(int argc, char **argv)
 
         if (com_reset() == -1) {
           logError(ERROR, "Etrax RESET failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         }
 
@@ -743,13 +744,13 @@ int start(int argc, char **argv)
 
         if (trb_register_write(trb_address, 0x0020, 0x8000) == -1) {
           logError(ERROR, "FPGA reload failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bits are active:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
         
@@ -798,13 +799,13 @@ int start(int argc, char **argv)
 
         if (trb_send_trigger_rich(input, type, info, random, number) == -1) {
           logError(ERROR, "send_trigger failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bits are active:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
 
@@ -858,7 +859,7 @@ int start(int argc, char **argv)
                                    buffer, USER_BUFFER_SIZE);
         if (status == -1) {
           logError(ERROR, "read_ipu_data failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           for (i = 0; i < status; i++) {
@@ -867,7 +868,7 @@ int start(int argc, char **argv)
           /* Check Status-Bits */
           if (trb_errno == TRB_STATUS_WARNING) {
             logError(WARNING, "Status-Bits are active:\n%s\n",
-                     trb_strterm(trb_term));
+                     trb_termstr(trb_term));
           }
         }
 
@@ -893,7 +894,7 @@ int start(int argc, char **argv)
 
         if (trb_fifo_flush(channel) == -1) {
           logError(ERROR, "trb_fifo_flush failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         }
 
@@ -921,7 +922,7 @@ int start(int argc, char **argv)
 
         if (fpga_register_read(reg_address, &value) == -1) {
           logError(ERROR, "fpga_register_read failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         } else {
           fprintf(stdout, "0x%04x  0x%08x\n", reg_address, value);
@@ -987,7 +988,7 @@ int start(int argc, char **argv)
                                      1, bitMask, 0);
         if (status == -1) {
           logError(ERROR, "setbit of register failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         }
         
@@ -1022,7 +1023,7 @@ int start(int argc, char **argv)
                                      2, bitMask, 0);
         if (status == -1) {
           logError(ERROR, "clearbit of register failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           
           return -1;
         }
@@ -1060,7 +1061,7 @@ int start(int argc, char **argv)
                                      3, bitMask, bitValue);
         if (status == -1) {
           logError(ERROR, "loadbit of register failed: %s\n",
-                   trb_strerror(trb_errno));
+                   trb_strerror());
           return -1;
         }
         
@@ -1131,7 +1132,7 @@ int main(int argc, char **argv)
     int yes = 1;
     int daemonMode = 0;
     int opt;
-
+    
     /* Parse Arguments */
     optind = 1;
     while ((opt = getopt(argc, argv, "+hdVbp:")) != -1) {