From 76c4e103325304429fc7032764223ae5f9ba465f Mon Sep 17 00:00:00 2001 From: hadaq Date: Sun, 1 Nov 2009 19:11:30 +0000 Subject: [PATCH] new trigger number handling, now counting, random is random --- trbrich/pulser.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/trbrich/pulser.c b/trbrich/pulser.c index 088ead9..b571e0c 100644 --- a/trbrich/pulser.c +++ b/trbrich/pulser.c @@ -7,10 +7,11 @@ #include #include #include +#include #include #include -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); -- 2.43.0