372 {
380
381
400
401
403
404
411 break;
412 }
413 }
414 }
416
427 else if (
argv[
i][0] ==
'-') {
474 } else {
476 printf(
"mdump for replay -x file name : file to inspect\n");
477 printf(
" -m mode : Display mode either Bank or raw\n");
478 printf(
" -b bank name : search for bank name (case sensitive)\n");
479 printf(
" -i evt_id (any) : event id from the FE\n");
480 printf(
" -[single] : Request single bank only (to be used with -b)\n");
481 printf(
" -y : Serial number consistency check(-i supported)\n");
482 printf(
" -j : Display # of banks and bank name list only for all the event\n");
483 printf(
" -k mask (any) : trigger_mask from FE setting\n");
484 printf(
">>> -i and -k are valid for YBOS ONLY if EVID bank is present in the event\n");
485 printf(
" -w what : [h]eader, [r]ecord, [l]ength\n");
486 printf(
" [e]vent, [j]bank_list (same as -j)\n");
487 printf(
">>> Header & Record are not supported for MIDAS as no physical record structure exists\n");
488 printf(
" -f format (auto): data representation ([x]/[d]/[a]scii) def:bank header content\n");
489 printf(
" -r # : skip event(MIDAS) to #\n");
490 printf(
" -a bytes : max event size to support (defaults to %d bytes)\n",
492 return 0;
493 }
494 }
495 }
496 } else {
497
507 else if (
argv[
i][0] ==
'-') {
552 else {
554 printf(
"mdump for online -l # : display # events (look 1)\n");
556 (" -f format (auto): data representation ([x]/[d]/[a]scii) def:bank header content\n");
558 (" -w time : insert wait in [sec] between each display\n");
560 (" -m mode : Display mode either Bank or raw\n");
562 (" -j : Display # of banks and bank name list only for all the event\n");
564 (" -b bank name : search for bank name (case sensitive)\n");
566 (" -i evt_id (any) : event id from the FE\n");
568 (" -k mask (any) : trigger_mask from FE setting\n");
570 (" -g type : sampling mode either SOME or all)\n");
572 (" -s : report buffer data rate and fill level\n");
574 (" -s -d : for use with -s: also report all buffer clients and requests\n");
576 (" -t type (auto) : Bank format (Midas/Ybos)\n");
578 (" -x Source : Data source selection def:online (see -x -h)\n");
580 (" -y : Serial number consistency check\n");
582 (">>> in case of -y it is recommented to used -g all\n");
584 (" -z buffer name : Midas buffer name default:[SYSTEM]\n");
586 (" [-h Hostname] [-e Experiment]\n\n");
587 return 0;
588 }
589 }
590 }
591 }
592
593
595
597
607 } else {
608 printf(
"\n>>> data type (-t) should be set by hand in -x mode for tape <<< \n\n");
610 }
615 } else {
617 ("\n>>> data type (-t) should be set by hand in -x mode for tape <<< \n\n");
619 }
620 }
621 }
622
623
626 return 0;
627 } else {
628
630 printf(
"mdump-F- <-display arg> out of range (1:9999)\n");
631 return -1;
632 }
633 }
635 printf(
"mdump-F- <-delay arg> out of range (1:100)\n");
636 return -1;
637 }
638
639
641
642
645 return 1;
646
647#ifdef _DEBUG
649#endif
650
651
655 goto error;
656 }
657
659
660
662
663 start_time = 0;
665 printf(
"- MIDAS revision: %s -- Enter <!> to Exit ------- Midas Dump in Speed test mode ---\n",
667 else
669
670
672
673 {
675
681 break;
686
687
691
692
693
694
695
696
697
701
705
711 strcpy(
eq[l].Fmt,
"MIDAS");
714 strcpy(
eq[l].Fmt,
"FIXED");
715 } else {
718 strcpy(
eq[l].Fmt,
"UNKNOWN");
719 }
720 l++;
721 }
722 }
723
724
725
728
729
730
731
732
733
734
737
740
745 strcpy(
eq[l].Fmt,
"MIDAS");
746 } else {
747 printf(
"Format unknown for Event Builder \"%s\"\n",
str);
748 goto error;
749 }
750 l++;
751 }
752
753
756 printf(
"ID\tMask\tFormat\tEq_name\n");
757 while (
eq.size() > 0 &&
eq[
i].fmt) {
760 }
761 }
762 }
763
764 do {
768
772
773
778
782
784
785 printf(
"buffer name [%s], clients: %d, max: %d, size: %d, rp: %d, wp: %d, ine: %d, oute: %d\n",
794 );
795
799 if (used < 0)
800 used += buffer_header.
size;
801
806 }
807 }
808
809 printf(
" client %d: name [%s], pid: %d, port: %d, rp: %d, used: %d, max_req: %d, read_wait: %d, write_wait: %d, wake_up: %d, get_all: %d, active: %d, timeout: %d\n",
815 used,
823
826 printf(
" request %d: id: %d, valid: %d, event_id: %d, trigger_mask: 0x%x, type: %d\n",
833 }
834 }
835 }
836 printf(
"buffer name [%s], ", buffer_header.
name);
841
844 }
845 }
846
847
848
854 if ((
char)
ch ==
'!')
855 break;
856 }
858
859 error:
860
862
864
865 return 1;
866}
INT bm_open_buffer(const char *buffer_name, INT buffer_size, INT *buffer_handle)
INT bm_request_event(HNDLE buffer_handle, short int event_id, short int trigger_mask, INT sampling_type, HNDLE *request_id, EVENT_HANDLER *func)
INT bm_set_cache_size(INT buffer_handle, size_t read_size, size_t write_size)
INT cm_yield(INT millisec)
INT cm_get_experiment_database(HNDLE *hDB, HNDLE *hKeyClient)
INT cm_connect_experiment(const char *host_name, const char *exp_name, const char *client_name, void(*func)(char *))
INT cm_disconnect_experiment(void)
INT cm_get_environment(char *host_name, int host_name_size, char *exp_name, int exp_name_size)
const char * cm_get_revision()
INT cm_set_watchdog_params(BOOL call_watchdog, DWORD timeout)
INT ss_getchar(BOOL reset)
INT cm_msg(INT message_type, const char *filename, INT line, const char *routine, const char *format,...)
INT cm_set_msg_print(INT system_mask, INT user_mask, int(*func)(const char *))
BOOL equal_ustring(const char *str1, const char *str2)
INT db_get_value(HNDLE hDB, HNDLE hKeyRoot, const char *key_name, void *data, INT *buf_size, DWORD type, BOOL create)
INT db_get_key(HNDLE hDB, HNDLE hKey, KEY *key)
INT db_find_key(HNDLE hDB, HNDLE hKey, const char *key_name, HNDLE *subhKey)
INT db_enum_key(HNDLE hDB, HNDLE hKey, INT idx, HNDLE *subkey_handle)
BOOL debug
debug printouts
char host_name[HOST_NAME_LENGTH]
void process_event(HNDLE hBuf, HNDLE request_id, EVENT_HEADER *pheader, void *pevent)
int replog(int data_fmt, char *rep_file, int bl, int action, int max_event_size)
char expt_name[NAME_LENGTH]
INT bm_get_buffer_info(INT buffer_handle, BUFFER_HEADER *buffer_header)
#define DEFAULT_MAX_EVENT_SIZE
#define DEFAULT_BUFFER_SIZE
#define EVENT_BUFFER_NAME
EVENT_REQUEST event_request[MAX_EVENT_REQUESTS]
BUFFER_CLIENT client[MAX_CLIENTS]