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)
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));
}