From 37f011e85f8f5b4c285c88025d11a414df26feee Mon Sep 17 00:00:00 2001 From: hades Date: Wed, 1 Sep 1999 08:48:57 +0000 Subject: [PATCH] subevt with trigger code is needed for setting the event id --- hadaq/hwsoft.c | 51 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/hadaq/hwsoft.c b/hadaq/hwsoft.c index 59ffce7..b6cf60a 100644 --- a/hadaq/hwsoft.c +++ b/hadaq/hwsoft.c @@ -47,17 +47,33 @@ void deleteHardware(Hardware *my) void Hardware_waitForTrigger(const Hardware *my, void *subEvt) { + static int nextId = SubEvtId_trigCode; struct timespec tS, *t = &tS; static UInt4 trigNr = 0; - SubEvt_setSize(subEvt, SubEvt_hdrSize()); - SubEvt_setDecoding(subEvt, SubEvtDecoding_32bitData); - SubEvt_setId(subEvt, SubEvtId_test1); - SubEvt_setTrigNr(subEvt, trigNr++); - t->tv_sec = 0; - t->tv_nsec = 100000000; - nanosleep(t, NULL); + switch (nextId) { + case SubEvtId_trigCode: + t->tv_sec = 0; + t->tv_nsec = 100000000; + nanosleep(t, NULL); + + SubEvt_setSize(subEvt, SubEvt_hdrSize()); + SubEvt_setDecoding(subEvt, SubEvtDecoding_32bitData); + SubEvt_setId(subEvt, SubEvtId_trigCode); + SubEvt_setTrigNr(subEvt, trigNr); + nextId = SubEvtId_test1; + + break; + case SubEvtId_test1: + SubEvt_setSize(subEvt, SubEvt_hdrSize()); + SubEvt_setDecoding(subEvt, SubEvtDecoding_32bitData); + SubEvt_setId(subEvt, SubEvtId_test1); + SubEvt_setTrigNr(subEvt, trigNr++); + nextId = SubEvtId_trigCode; + + break; + } } void Hardware_readout(const Hardware *my, void *subEvt) @@ -65,15 +81,22 @@ void Hardware_readout(const Hardware *my, void *subEvt) UInt4 *data = SubEvt_data(subEvt); UInt4 *first = data; - *data++ = 0x55aa00FF; - *data++ = 0x55aa00FF; - *data++ = 0x55aa00FF; + switch (SubEvt_id(subEvt)) { + case SubEvtId_trigCode: + *data++ = 0x00000001; + break; + case SubEvtId_test1: + *data++ = 0x55aa00FF; + *data++ = 0x55aa00FF; + *data++ = 0x55aa00FF; #if 0 - data += (int) ((100.0 * rand()) / RAND_MAX); - data += (int) ((100.0 * rand()) / RAND_MAX); - data += (int) ((100.0 * rand()) / RAND_MAX); - data += (int) ((100.0 * rand()) / RAND_MAX); + data += (int) ((100.0 * rand()) / RAND_MAX); + data += (int) ((100.0 * rand()) / RAND_MAX); + data += (int) ((100.0 * rand()) / RAND_MAX); + data += (int) ((100.0 * rand()) / RAND_MAX); #endif + break; + } SubEvt_setSize(subEvt, SubEvt_size(subEvt) + sizeof(UInt4) * (data - first)); } -- 2.43.0