]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
buffer bug fixed
authorhadaq <hadaq>
Wed, 11 Nov 2009 22:18:48 +0000 (22:18 +0000)
committerhadaq <hadaq>
Wed, 11 Nov 2009 22:18:48 +0000 (22:18 +0000)
trbrich/pulser.c

index b571e0cbac5c325dc09a66566bf7cb52ec5a79a8..3070de41dcaa2c5fb32f72f5a4755d59f959d5c8 100644 (file)
 #include <trbnet.h>
 #include <trberror.h>
 
-static const char pulser_version[] = "$Revision: 1.5 $"; 
+static const char pulser_version[] = "$Revision: 1.6 $"; 
 
-#define bufferSize 16385
+/* 1MByte for 6 Sectors should be enough */
+#define BUFFER_SIZE (1024 * 1024 / 4)
 
 /* ------ MAIN ---------------------------------------------------------- */
 
 static FILE *hldFile = NULL;
 static unsigned int evtCounter = 0;
+static uint32_t *buffer = NULL;
 
 static void atexit0()
 {
   if (hldFile != NULL) {
     fclose(hldFile);
   }
+  free(buffer);
   
   fprintf(stderr, "%d Triggers were send\n", evtCounter);
 }
@@ -60,7 +63,6 @@ int main(int argc, char ** argv)
   uint8_t triggerType = 0;
   uint8_t input = 0;
   unsigned int numEvts = UINT_MAX;
-  uint32_t buffer[bufferSize];
   sigset_t blockSet;
   int size;
   int writeToStdout = 0;
@@ -132,6 +134,10 @@ int main(int argc, char ** argv)
     exit(EXIT_FAILURE);
   }
   
+  /* allocate buffer */
+  buffer = (uint32_t*)malloc(sizeof(uint32_t) * BUFFER_SIZE);
+  if (buffer == NULL) abort();
+
   trg_number = 0;
   srand(time(NULL));
   
@@ -152,7 +158,7 @@ int main(int argc, char ** argv)
     }
     
     size = trb_ipu_data_read(triggerType, 0xcc, 0xdd, 0x0001, 
-                             buffer, bufferSize);
+                             buffer, BUFFER_SIZE);
     if (size == -1) {
       trb_error("Error IPU Read");
       exit(EXIT_FAILURE);