EQUIPMENT equipment[] = { { "Trigger1", // equipment name 1, 0, // event ID, trigger mask "BUF1", // event buffer ...
The user has the possibility of interfering into the event building process at several stages:
In the case of serial number mismatch or error returned from the user code, the event builder will abort by issuing a "stop run" transition and return to an "idle" state. THERE IS NO RECOVERY PROCESS AVAILABLE YET!
The fields "Event ID", "Buffer" have to match the frontend equipment definition in order to garantee the proper data transfer.
[local:midas:S]/>ls -lr EBuilder Key name Type #Val Size Last Opn Mode Value --------------------------------------------------------------------------- EBuilder DIR Settings DIR Event ID WORD 1 2 35h 0 RWD 1 Trigger mask WORD 1 2 35h 0 RWD 1 Buffer STRING 1 32 35h 0 RWD SYSTEM Format STRING 1 32 35h 0 RWD MIDAS User build BOOL 1 4 35h 0 RWD n User Field STRING 1 64 3h 0 RWD 1024 Event mask DWORD 1 4 35h 0 RWD 3 Hostname STRING 1 64 43m 0 RWD dasdevpc Statistics DIR Events sent DOUBLE 1 8 38m 0 RWD 1883 Events per sec. DOUBLE 1 8 38m 0 RWD 0 kBytes per sec. DOUBLE 1 8 38m 0 RWD 0 Channels DIR Frag1 DIR Settings DIR Event ID WORD 1 2 35h 0 RWD 1 Trigger mask WORD 1 2 35h 0 RWD 65535 Buffer STRING 1 32 35h 0 RWD BUF1 Format STRING 1 32 35h 0 RWD MIDAS Event mask DWORD 1 4 35h 0 RWD 1 Statistics DIR Events sent DOUBLE 1 8 38m 0 RWD 1883 Events per sec. DOUBLE 1 8 38m 0 RWD 1881.12 kBytes per sec. DOUBLE 1 8 38m 0 RWD 0 Frag2 DIR Settings DIR Event ID WORD 1 2 35h 0 RWD 2 Trigger mask WORD 1 2 35h 0 RWD 65535 Buffer STRING 1 32 35h 0 RWD BUF2 Format STRING 1 32 35h 0 RWD MIDAS Event mask DWORD 1 4 35h 0 RWD 2 Statistics DIR Events sent DOUBLE 1 8 38m 0 RWD 1884 Events per sec. DOUBLE 1 8 38m 0 RWD 1882.12 kBytes per sec. DOUBLE 1 8 38m 0 RWD 0
eb> make cc -g -I/usr/local/include -I../../drivers -DOS_LINUX -Dextname -c ebuser.c cc -g -I/usr/local/include -I../../drivers -DOS_LINUX -Dextname -o mevb mevb.c \ ebuser.o /usr/local/lib/libmidas.a -lm -lz -lutil -lnsl cc -g -I/usr/local/include -I../../drivers -DOS_LINUX -Dextname \ -c ../../drivers/bus/camacnul.c cc -g -I/usr/local/include -I../../drivers -DOS_LINUX -Dextname -o fe1 \ fe1.c camacnul.o /usr/local/lib/mfe.o /usr/local/lib/libmidas.a \ -lm -lz -lutil -lnsl cc -g -I/usr/local/include -I../../drivers -DOS_LINUX -Dextname -o fe2 \ fe2.c camacnul.o /usr/local/lib/mfe.o /usr/local/lib/libmidas.a \ -lm -lz -lutil -lnsl eb>
eb> pwd /home/midas/midas-1.8.3/examples/eventbuilder eb> setenv MIDAS_DIR /home/midas/midas-1.8.3/examples/eventbuilder eb> odbedit [local:Default:S]/>ls System Programs Experiment Logger Runinfo Alarms [local:Default:S]/>q eb> xterm1: eb> fe1 xterm2: eb> fe2 xterm3: eb> mevb xterm4: eb> odbedit [local:Default:S]/>ls System Programs Experiment Logger Runinfo Alarms Equipment EBuilder <--- New tree [local:Default:S]/>scl Name Host Fe1 dasdevpc <--- Frontend fragment 1 Fe2 dasdevpc <--- Frontend fragment 2 EBuilder dasdevpc <--- Event builder ODBEdit dasdevpc [local:Default:S]/> [local:Default:S]/>start now Starting run #2 12:12:11 [ODBEdit] Run #2 started [local:Default:R]/>stop 12:12:13 [ODBEdit] Run #2 stopped 12:12:16 [EBuilder] Run 2 Stop on frag#0; events_sent 144; npulser 0 12:12:16 [EBuilder] Run 2 Stop on frag#1; events_sent 144; npulser 0 [local:Default:S]/>
Run 2 In eb_begin_of_run nfrag : 2 bm_empty_buffer:1 bm_empty_buffer:1 Event Serial1 Fragment#:1 Data size:56 Serial1 Fragment#:2 Data size:56 Serial1 Event Serial2 Fragment#:1 Data size:56 Serial2 Fragment#:2 Data size:56 Serial2 Event Serial3 Fragment#:1 Data size:56 Serial3 Fragment#:2 Data size:56 Serial3 Event Serial4 Fragment#:1 Data size:56 Serial4 Fragment#:2 Data size:56 Serial4 Event Serial5 Fragment#:1 Data size:56 Serial5 Fragment#:2 Data size:56 Serial5 ... Event Serial141 Fragment#:1 Data size:56 Serial141 Fragment#:2 Data size:56 Serial141 Event Serial142 Fragment#:1 Data size:56 Serial142 Fragment#:2 Data size:56 Serial142 Event Serial143 Fragment#:1 Data size:56 Serial143 Fragment#:2 Data size:56 Serial143 Event Serial144 Fragment#:1 Data size:56 Serial144 Fragment#:2 Data size:56 Serial144 In eb_end_of_run Run 2 Stop on frag#0; events_sent 144; npulser 0 Time between request and actual stop: 3457 ms In eb_end_of_run Run 2 Stop on frag#1; events_sent 144; npulser 0 Time between request and actual stop: 3459 ms
eb> odb -e midas [local:midas:S]/>scl Name Host Fe1 mid001.triumf.ca <-- Node 1 Fe2 mid002.triumf.ca <-- Node 2 EBuilder dasdevpc <-- Node 3 ODBEdit dasdevpc <-- Node 3 [local:midas:S]/> Thu> mevb -e midas Program mevb/EBuilder version 2 started New Run 209 In eb_begin_of_run nfrag : 2 bm_empty_buffer:1 bm_empty_buffer:1 Event Serial1 Fragment#:1 Data size:56 Serial1 Fragment#:2 Data size:56 Serial1 Event Serial2 Fragment#:1 Data size:56 Serial2 Fragment#:2 Data size:56 Serial2 Event Serial3 Fragment#:1 Data size:56 Serial3 Fragment#:2 Data size:56 Serial3 Event Serial4 Fragment#:1 Data size:56 Serial4 Fragment#:2 Data size:56 Serial4 Event Serial5 Fragment#:1 Data size:56 Serial5 Fragment#:2 Data size:56 Serial5 ... Event Serial233 Fragment#:1 Data size:56 Serial233 Fragment#:2 Data size:56 Serial233 Event Serial234 Fragment#:1 Data size:56 Serial234 Fragment#:2 Data size:56 Serial234 Event Serial235 Fragment#:1 Data size:56 Serial235 Fragment#:2 Data size:56 Serial235 In eb_end_of_run Run 209 Stop on frag#0; events_sent 235; npulser 0 Time between request and actual stop: 4488 ms