]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
new trigger number handling, now counting, random is random
authorhadaq <hadaq>
Sun, 1 Nov 2009 19:11:30 +0000 (19:11 +0000)
committerhadaq <hadaq>
Sun, 1 Nov 2009 19:11:30 +0000 (19:11 +0000)
trbrich/pulser.c

index 088ead9104037c8516982ef97130c24433e72860..b571e0cbac5c325dc09a66566bf7cb52ec5a79a8 100644 (file)
@@ -7,10 +7,11 @@
 #include <libgen.h>
 #include <unistd.h>
 #include <stdint.h>
+#include <time.h>
 #include <trbnet.h>
 #include <trberror.h>
 
-static const char pulser_version[] = "$Revision: 1.4 $"; 
+static const char pulser_version[] = "$Revision: 1.5 $"; 
 
 #define bufferSize 16385
 
@@ -54,7 +55,8 @@ void usage(const char *progName)
 int main(int argc, char ** argv)
 {
   char hldFileName[256] = "pulser.hld";
-  unsigned int trgNumber = 0;
+  uint16_t trg_number = 0;
+  uint8_t trg_random = 0;
   uint8_t triggerType = 0;
   uint8_t input = 0;
   unsigned int numEvts = UINT_MAX;
@@ -62,6 +64,7 @@ int main(int argc, char ** argv)
   sigset_t blockSet;
   int size;
   int writeToStdout = 0;
+  unsigned int  trgCtr = 0;
   int i;
   
   trb_debug = 0;
@@ -122,16 +125,28 @@ int main(int argc, char ** argv)
   sigemptyset(&blockSet);
   sigaddset(&blockSet, SIGINT);
   sigaddset(&blockSet, SIGTERM);
-
+  
+  /* Prepare trg_number */
+  if (trb_register_write(0xfffb, 0x0020, 0x08) == -1) {
+    trb_error("Error reseting trigger_number\n");
+    exit(EXIT_FAILURE);
+  }
+  
+  trg_number = 0;
+  srand(time(NULL));
+  
   /* Loop Triggers */
   while(evtCounter < numEvts) {
     unsigned int len;
     
+    trg_random = (uint8_t)(random() & 0xff);
+    
     /* Block signals */
     sigprocmask(SIG_BLOCK, &blockSet, NULL);
     
     /* Send Trigger and get Data */
-    if (trb_send_trigger_rich(input, triggerType, 0xcc, 0xdd, 0x0001) == -1) {
+    if (trb_send_trigger_rich(input, triggerType, 0x00,
+                              trg_random, trg_number) == -1) {
       trb_error("Error send_trigger");
       exit(EXIT_FAILURE);
     }
@@ -155,7 +170,7 @@ int main(int argc, char ** argv)
     } 
 
     if (writeToStdout == 1) {
-      fprintf(stdout, "Trigger# %d\n", trgNumber);
+      fprintf(stdout, "Trigger# %d,  Random: %d\n", trg_number, trg_random);
       for (i = 0; i < len; i++) {
         fprintf(stdout, "0x%08x\n", buffer[i]);
       }
@@ -169,11 +184,13 @@ int main(int argc, char ** argv)
     /* Unblock signals */
     sigprocmask(SIG_UNBLOCK, &blockSet, NULL);
     
-    trgNumber++;
+    trgCtr++;
     evtCounter++;
     if (evtCounter % 100 == 0) {
-      fprintf(stderr, "%d triggers send\n", trgNumber);
+      fprintf(stderr, "%d triggers send\n", trgCtr);
     }
+    
+    trg_number++;
   }
   
   exit(EXIT_SUCCESS);