65 INT
pause_run(INT run_number,
char *error);
80 LAM_SOURCE(0, 0xFFFFFF),
134 printf(
"Entering frontend_early_init ... \n");
140 printf(
"Crate number = %d\n",crate_number);
142 printf(
"Frontend early init returns success \n");
153 printf(
"Entering frontend_init() ... \n");
155 if (run_state != STATE_STOPPED) {
156 cm_msg(MERROR,
"Crate",
157 "Run must be stopped before starting crate program.");
162 if((*trigger_modules[
i]).
init != NULL) {
171 if((*periodic_modules[i]).init != NULL) {
172 int status = (*periodic_modules[
i]).
init();
191 if((*trigger_modules[i]).
exit != NULL) {
192 (*trigger_modules[
i]).
exit();
197 if((*periodic_modules[i]).exit != NULL) {
198 (*periodic_modules[
i]).
exit();
210 diag_print(1,
"*** Before begin of run %d ***\n", run_number);
213 if((*trigger_modules[i]).
pre_bor != NULL) {
214 int status = (*trigger_modules[
i]).
pre_bor();
222 if((*periodic_modules[i]).pre_bor != NULL) {
223 int status = (*periodic_modules[
i]).
pre_bor();
241 diag_print(1,
"*** Begin of run %d ***\n", run_number);
244 if((*trigger_modules[i]).
bor != NULL) {
245 int status = (*trigger_modules[
i]).
bor();
253 if((*periodic_modules[i]).bor != NULL) {
254 int status = (*periodic_modules[
i]).
bor();
264 between_runs =
false;
276 diag_print(1,
"*** End of run %d ***\n", run_number);
281 if((*trigger_modules[i]).
eor != NULL) {
282 int status = (*trigger_modules[
i]).
eor();
290 if((*periodic_modules[i]).eor != NULL) {
291 int status = (*periodic_modules[
i]).
eor();
306 INT
pause_run(INT run_number,
char *error)
326 printf(
"starting new cycle in crate.cpp\n");
327 struct timeval restart_time;
328 gettimeofday(&restart_time, NULL);
336 diag_print(2,
"Waited %f microseconds for restart.\n",
349 if((*trigger_modules[i]).poll_dead != NULL) {
350 int status = (*trigger_modules[
i]).poll_dead();
368 if((*trigger_modules[i]).
stop_cycle != NULL) {
383 if (cycle_active || run_state != STATE_RUNNING || between_runs ==
TRUE) {
389 if (run_state != STATE_RUNNING || between_runs ==
TRUE) {
398 if((*trigger_modules[i]).poll_live != NULL) {
402 if (run_state != STATE_RUNNING || between_runs ==
TRUE) {
405 int status = (*trigger_modules[
i]).poll_live();
438 for (
int i = 0; i <
count; i++) {
452 case CMD_INTERRUPT_ENABLE:
455 case CMD_INTERRUPT_DISABLE:
458 case CMD_INTERRUPT_ATTACH:
461 case CMD_INTERRUPT_DETACH:
473 printf(
"Event number: %d\n", (((EVENT_HEADER *)pevent)-1)->serial_number);
478 int size = bk_iterate32(pevent, &pbk, &pdata);
480 printf(
"%c%c%c%c\t%d\t\t", pbk->name[0], pbk->name[1], pbk->name[2],
482 for(
int i = 0; i <
MIN(4, size/4); i++) {
483 printf(
"0x%08x ", pdata[i]);
487 }
while(pbk != NULL);
495 diag_print(2,
"Event has ended. Executing read_trigger_event.\n");
504 if (run_state != STATE_RUNNING) {
505 diag_print(1,
"Readout after end of run!!!\n");
506 return bk_size(pevent);
509 struct timeval readout_start_time;
510 gettimeofday(&readout_start_time, NULL);
513 if((*trigger_modules[i]).read != NULL) {
514 int status = (*trigger_modules[
i]).read(pevent);
521 diag_print(2,
"Spent %f microseconds for readout.\n",
533 return bk_size(pevent);
546 if((*periodic_modules[i]).read != NULL) {
547 int status = (*periodic_modules[
i]).read(pevent);
560 return bk_size(pevent);