]> jspc29.x-matter.uni-frankfurt.de Git - daqdata.git/commitdiff
subevt with trigger code is needed for setting the event id
authorhades <hades>
Wed, 1 Sep 1999 08:48:57 +0000 (08:48 +0000)
committerhades <hades>
Wed, 1 Sep 1999 08:48:57 +0000 (08:48 +0000)
hadaq/hwsoft.c

index 59ffce759f69b119da6d5c91cf58207f8d6a56ac..b6cf60a8193e10fd76b00ab2a3d642eed2b383c4 100644 (file)
@@ -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));
 }