#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
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;
sigset_t blockSet;
int size;
int writeToStdout = 0;
+ unsigned int trgCtr = 0;
int i;
trb_debug = 0;
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);
}
}
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]);
}
/* 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);