]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
TRB_ENDPOINT_NOT_REACHED will not be treated as fatal error any more
authorhadaq <hadaq>
Fri, 12 Jun 2009 17:59:07 +0000 (17:59 +0000)
committerhadaq <hadaq>
Fri, 12 Jun 2009 17:59:07 +0000 (17:59 +0000)
.

libtrbnet/trbcmd.c
libtrbnet/trbnet.c

index a1888444815b15f911b82437685af66570311e17..a385527214c83104ba562cfeb88fa8af13ae42d6 100644 (file)
@@ -223,7 +223,9 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("write_register failed");
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
       } else if (strncmp(cmd[0], "r", CMD_SIZE) == 0) {
 
@@ -260,9 +262,11 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("read_register failed");
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
-    
+        
         for (i = 0; i < status; i += 2) {
           fprintf(stdout, "0x%04x  0x%08x\n",
                   data[i], data[i + 1]);
@@ -318,7 +322,9 @@ int main(int argc, char ** argv)
           }
           trb_error("read_register_mem failed");
           if (data != NULL) free(data);
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
         
         /* Print data-buffer */
@@ -407,7 +413,9 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("write_register-memory failed");
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
       } else if (strncmp(cmd[0], "i", CMD_SIZE) == 0) {
 
@@ -442,8 +450,9 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("read_uid failed");
-          continue;
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
  
         for (i = 0; (i < size) && (i < 128); i += 4) {
@@ -491,7 +500,9 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("set_address failed");
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
       } else if (strncmp(cmd[0], "T", CMD_SIZE) == 0) {
     
@@ -534,7 +545,9 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("send_trigger failed");
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         } 
       } else if (strncmp(cmd[0], "TR", CMD_SIZE) == 0) {
     
@@ -580,7 +593,9 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("send_trigger failed");
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
       } else if (strncmp(cmd[0], "I", CMD_SIZE) == 0) {
     
@@ -625,7 +640,9 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("read_ipu_data failed");
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
     
         for (i = 0; i < size; i++) {
@@ -660,7 +677,9 @@ int main(int argc, char ** argv)
             fprintf(stderr, "Line #%d: ", lineCtr);
           }
           trb_error("flush_channel failed");
-          exit(EXIT_FAILURE);
+          if (trb_errno != TRB_ENDPOINT_NOT_REACHED) {
+            exit(EXIT_FAILURE);
+          }
         }
       } else if (strncmp(cmd[0], "R", CMD_SIZE) == 0) {
     
@@ -688,7 +707,7 @@ int main(int argc, char ** argv)
                   "reg_address: 0x%04x\n",
                   reg_address);
         }
-    
+        
         read32_from_FPGA(reg_address, &value);
         fprintf(stdout, "0x%04x  0x%08x\n", reg_address, value);
       
@@ -723,11 +742,11 @@ int main(int argc, char ** argv)
       
         write32_to_FPGA(reg_address, value);
       } else {
-          if (scriptFile != NULL) {
-            fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
-          } else {
-            usage(basename(argv[0]));
-          }
+        if (scriptFile != NULL) {
+          fprintf(stderr, "Line #%d: Invalid command\n", lineCtr);
+        } else {
+          usage(basename(argv[0]));
+        }
         exit(EXIT_FAILURE);
      }
 
index 6b7575d5fb8f451ae74a01980dadb327f55a501a..0f9f203bfc5fcee604f9c012f662a8d9ea8b11fb 100644 (file)
@@ -714,7 +714,10 @@ static int trb_fifo_read(uint8_t channel,
         ((uint64_t)channel << 32) | 
         ((uint64_t)package.F1 << 16) | 
         ((uint64_t)package.F2 <<  0);
-      trb_errno = TRB_TERM_ERRBIT;
+      trb_errno = ((package.F2 == 0x0000) && (package.F1 == 0x0000)) 
+        ? TRB_ENDPOINT_NOT_REACHED
+        : TRB_TERM_ERRBIT;
+      
       return -1;
     }
   }