AlcapDAQ  1
Data Structures | Macros | Functions | Variables
mzdump.c File Reference
#include <zlib.h>
#include <md5global.h>
#include <md5.h>
#include <midas.h>
#include <msystem.h>
#include <ybos.h>
#include <mrpc.h>

Go to the source code of this file.

Data Structures

struct  FMT_ID
 

Macros

#define REP_HEADER   1
 
#define REP_RECORD   2
 
#define REP_LENGTH   3
 
#define REP_EVENT   4
 
#define REP_BANKLIST   5
 
#define MD5_DIGEST_LEN   16
 

Functions

static void decompress (void *pmyevt)
 
DWORD data_format_check (EVENT_HEADER *pevent, INT *i)
 
int replog (int data_fmt, char *rep_file, int bl, int action)
 
void process_event (HNDLE hBuf, HNDLE request_id, EVENT_HEADER *pheader, void *pevent)
 
int main (int argc, char **argv)
 

Variables

char bank_name [4]
 
char sbank_name [4]
 
char svpath [128]
 
INT hBufEvent
 
INT save_dsp = 1
 
INT evt_display = 0
 
INT speed = 0
 
INT dsp_time = 0
 
INT dsp_fmt = 0
 
INT dsp_mode = 0
 
INT file_mode
 
INT bl = -1
 
INT consistency = 0
 
INT disp_bank_list = 0
 
BOOL via_callback
 
INT i
 
INT data_fmt
 
INT count
 
KEY key
 
HNDLE hSubkey
 
INT event_id
 
INT event_msk
 
FMT_ID eq [32]
 
static unsigned char * zbuf
 
static z_stream zstrm
 

Macro Definition Documentation

#define MD5_DIGEST_LEN   16

Definition at line 144 of file mzdump.c.

Referenced by decompress().

#define REP_BANKLIST   5

Definition at line 121 of file mzdump.c.

Referenced by main(), and replog().

#define REP_EVENT   4

Definition at line 120 of file mzdump.c.

Referenced by main(), and replog().

#define REP_HEADER   1

Definition at line 117 of file mzdump.c.

Referenced by main(), and replog().

#define REP_LENGTH   3

Definition at line 119 of file mzdump.c.

Referenced by main(), and replog().

#define REP_RECORD   2

Definition at line 118 of file mzdump.c.

Referenced by main(), and replog().

Function Documentation

DWORD data_format_check ( EVENT_HEADER *  pevent,
INT *  i 
)

Definition at line 293 of file mzdump.c.

References data_fmt, FALSE, FMT_ID::fmt, i, FMT_ID::id, printf(), and TRUE.

Referenced by process_event().

294 {
295 
296  INT jj, ii;
297  BOOL dupflag = FALSE;
298 
299  /* check in the active FE list for duplicate event ID */
300  ii = 0;
301  while (eq[ii].fmt) {
302  jj = ii + 1;
303  /* problem occur when duplicate ID with different data format */
304  while (eq[jj].fmt) {
305  if ((eq[jj].fmt != eq[ii].fmt)
306  && (eq[jj].id == eq[ii].id)
307  && (eq[jj].msk == eq[ii].msk)
308  && eq[ii].id != 0) {
309  printf("Duplicate eventID[%d] between Eq:%s & %s ", eq[jj].id, eq[jj].Eqname,
310  eq[ii].Eqname);
311  printf("Dumping event in raw format\n");
312  dupflag = TRUE;
313  }
314  jj++;
315  }
316  ii++;
317  }
318  if (data_fmt != 0) {
319  *i = 0;
320  strcpy(eq[*i].Fmt, "GIVEN");
321  return data_fmt;
322  } else {
323  *i = 0;
324  if (dupflag)
325  strcpy(eq[*i].Fmt, "DUPLICATE");
326  else {
327  do {
328  if (pevent->event_id == eq[*i].id)
329  return eq[*i].fmt;
330  (*i)++;
331  } while (eq[*i].fmt);
332  }
333  }
334  return 0;
335 }
void decompress ( void *  pmyevt)
static

Definition at line 149 of file mzdump.c.

References data_size, i, MD5_DIGEST_LEN, MD5Final(), MD5Init(), MD5Update(), printf(), sprintf(), zbuf, and zstrm.

Referenced by process_event(), and replog().

150 {
151  int i;
152  char bkName[8];
153  INT bank_size;
154  int zret;
155 
156  char md5_digest[MD5_DIGEST_LEN];
157 
158  unsigned int size_aux;
159 
160  unsigned char *zdata;
161  unsigned char *pdata;
162 
163  EVENT_HEADER *pheader = (EVENT_HEADER*) pmyevt;
164  unsigned char *pevent = (unsigned char*)(pheader+1);
165 
166  //if ( pheader->event_id < 1 )
167  if ( pheader->event_id != 1 )
168  {
169  printf("decompressor: skip event with id = %d\n",pheader->event_id);
170  return;
171  }
172 
173  printf("Event size: %d\n",pheader->data_size);
174 
175  for (i=1; i<=9; i++)
176  {
177  sprintf(bkName,"FE%1dZ",i);
178  bank_size = bk_locate(pevent, bkName, &zdata);
179 
180  if ( !bank_size ) continue;
181 
182  inflateReset(&zstrm);
183 
184  /*** MD5 digest ***/
185  memcpy(md5_digest,zdata,MD5_DIGEST_LEN);
186 
187  /*** decompress ***/
188  zstrm.avail_in = bank_size-MD5_DIGEST_LEN; /*** compressed banks are of BYTE type, therefore
189  the number of elements == bank_size ***/
190 
191  zstrm.next_in = zdata + MD5_DIGEST_LEN;
192  zstrm.next_out = zbuf;
193  zstrm.avail_out = MAX_EVENT_SIZE;
194  zstrm.avail_in = bank_size-MD5_DIGEST_LEN;
195 
196  zret = inflate(&zstrm, Z_NO_FLUSH);
197 
198  switch (zret)
199  {
200  case Z_NEED_DICT:
201  zret = Z_DATA_ERROR; /* and fall through */
202  case Z_DATA_ERROR:
203  case Z_MEM_ERROR:
204  printf("***ERROR! decompression fail!\n");
205  continue;
206  }
207 
208  if ( zstrm.avail_out == 0 )
209  {
210  printf("***ERROR! Decompressing fail!\n");
211  continue;
212  }
213 
214  BANK_HEADER *bank_header_aux = (BANK_HEADER*) zbuf;
215 
216 
217  /*** calculate MD5 sum of the decompressed event ***/
218  MD5_CTX mdContext;
219  char md5_digest_new[MD5_DIGEST_LEN];
220 
221  MD5Init ( &mdContext );
222  MD5Update( &mdContext, zbuf, bank_header_aux->data_size + sizeof(BANK_HEADER) );
223  MD5Final ( md5_digest_new, &mdContext);
224 
225  if ( strncmp(md5_digest,md5_digest_new,MD5_DIGEST_LEN) )
226  {
227  printf("MD5 checksums do not match: [%s] [%s]!\n", md5_digest,md5_digest_new);
228  continue;
229  }
230 
231  /*** print info about bank size ***/
232  int size_decomp = MAX_EVENT_SIZE - zstrm.avail_out;
233  float z = (float)(size_decomp-bank_size)/(float)(size_decomp)*100.0;
234  printf("bank [%s]: size: %d bytes -> %d bytes => compression: %0.1f\%\n",bkName,bank_size,size_decomp,z);
235 
236  /*** delete compressed bank from the event as we don't need it anymore ***/
237  bk_delete(pevent,bkName);
238 
239  /*** loop over decompressed event and add banks to the MIDAS event ***/
240  size_aux = 0;
241  while ( size_aux < bank_header_aux->data_size )
242  {
243 
244  BANK32 *bank = (BANK32*)( zbuf + sizeof(BANK_HEADER) + size_aux );
245  BYTE *bank_data = (BYTE*)(bank+1);
246 
247  //printf("uncompressed bank name: [%s], size: %d\n",bank->name,bank->data_size);
248 
249  bank_size = bk_locate(pevent, bank->name, &pdata);
250 
251  if ( bank_size == 0 )
252  {
253  bk_create(pevent, bank->name, bank->type, &pdata);
254  memcpy(pdata, bank_data, bank->data_size);
255  pdata += bank->data_size;
256  bk_close(pevent,pdata);
257  //printf("bank [%s] added to event\n",bank->name);
258  }
259 
260 
261  /* modified by VT on 17-Apr-2007:
262  it looks bank has to be align on WORD (or DWORD???)
263  this is work around to align the bank.
264  */
265 
266  //int size_i = sizeof(BANK32) + bank->data_size;
267  int size_i = bank->data_size;
268  if (size_i%8)
269  //size_i += (size_i/4+1)*4 - (size_i/4)*4 - size_i%4;
270  size_i += (size_i/8+1)*8 - (size_i/8)*8 - size_i%8;
271  //size_i += 4;
272  size_i += sizeof(BANK32);
273  //printf("size_i: %d\n", size_i);
274 
275  size_aux += size_i;
276  //size_aux += sizeof(BANK32) + bank->data_size;
277 
278  }
279 
280  }
281 
282  pheader->data_size = bk_size(pevent);
283 
284  //printf("new event size: %d\n",((BANK_HEADER*)pevent)->data_size);
285 
286  return;
287 
288 }
int main ( int  argc,
char **  argv 
)

Definition at line 606 of file mzdump.c.

References bl, cm_get_environment(), consistency, count, data_fmt, debug, disp_bank_list, dsp_fmt, dsp_mode, dsp_time, event_id, event_msk, evt_display, expt_name, FALSE, file_mode, FMT_ID::fmt, hBufEvent, hDB, hKey, host_name, hSubkey, i, key, printf(), process_event(), REP_BANKLIST, REP_EVENT, REP_HEADER, REP_LENGTH, REP_RECORD, replog(), save_dsp, sbank_name, size, speed, sprintf(), start_time, status, stop_time, svpath, TRUE, usage(), via_callback, zbuf, and zstrm.

607 {
608  HNDLE hDB, hKey;
609  char host_name[HOST_NAME_LENGTH], expt_name[NAME_LENGTH], str[80];
610  char buf_name[32] = EVENT_BUFFER_NAME, rep_file[128];
611  double rate;
612  unsigned int status, start_time, stop_time;
613  BOOL debug = FALSE, rep_flag;
614  INT ch, request_id, size, get_flag, action, i;
615  BUFFER_HEADER buffer_header;
616 
617  /* set default */
618  host_name[0] = 0;
619  expt_name[0] = 0;
620  sbank_name[0] = 0;
621  svpath[0] = 0;
622  rep_file[0] = 0;
623  event_id = EVENTID_ALL;
624  event_msk = TRIGGER_ALL;
625  evt_display = 1;
626  get_flag = GET_SOME;
627  dsp_fmt = DSP_UNK;
628  dsp_mode = DSP_BANK;
629  file_mode = YB_NO_RECOVER;
630  via_callback = TRUE;
631  rep_flag = FALSE;
632  dsp_time = 0;
633  speed = 0;
634  consistency = 0;
635  action = REP_EVENT;
636 
637  /* Get if existing the pre-defined experiment */
638  cm_get_environment(host_name, sizeof(host_name), expt_name, sizeof(expt_name));
639 
640  /* scan arg list for -x which specify the replog configuration */
641  for (i = 1; i < argc; i++) {
642  if (strncmp(argv[i], "-x", 2) == 0) {
643  if (i + 1 == argc)
644  goto repusage;
645  if (strncmp(argv[++i], "online", 6) != 0) {
646  rep_flag = TRUE;
647  break;
648  }
649  }
650  }
651  if (rep_flag) {
652  /* get Replay argument list */
653  data_fmt = 0;
654  for (i = 1; i < argc; i++) {
655  if (argv[i][0] == '-' && argv[i][1] == 'd')
656  debug = TRUE;
657  else if (argv[i][0] == '-') {
658  if (i + 1 >= argc || argv[i + 1][0] == '-')
659  goto repusage;
660  if (strncmp(argv[i], "-t", 2) == 0) {
661  sprintf(str, argv[++i]);
662  if (strncmp(str, "m", 1) == 0)
663  data_fmt = FORMAT_MIDAS;
664  if (strncmp(str, "y", 1) == 0)
665  data_fmt = FORMAT_YBOS;
666  } else if (strncmp(argv[i], "-b", 2) == 0)
667  strncpy(sbank_name, argv[++i], 4);
668  else if (strncmp(argv[i], "-i", 2) == 0)
669  event_id = atoi(argv[++i]);
670  else if (strncmp(argv[i], "-k", 2) == 0)
671  event_msk = atoi(argv[++i]);
672  else if (strncmp(argv[i], "-m", 2) == 0) {
673  sprintf(str, argv[++i]);
674  if (strncmp(str, "r", 1) == 0)
675  dsp_mode = DSP_RAW;
676  if (strncmp(str, "b", 1) == 0)
677  dsp_mode = DSP_BANK;
678  } else if (strncmp(argv[i], "-w", 2) == 0) {
679  sprintf(str, argv[++i]);
680  if (strncmp(str, "h", 1) == 0)
681  action = REP_HEADER;
682  else if (strncmp(str, "r", 1) == 0)
683  action = REP_RECORD;
684  else if (strncmp(str, "l", 1) == 0)
685  action = REP_LENGTH;
686  else if (strncmp(str, "e", 1) == 0)
687  action = REP_EVENT;
688  else if (strncmp(str, "j", 1) == 0)
689  action = REP_BANKLIST;
690  } else if (strncmp(argv[i], "-p", 2) == 0)
691  strcpy(svpath, argv[++i]);
692  else if (strncmp(argv[i], "-c", 2) == 0) {
693  strcpy(str, argv[++i]);
694  if (strncmp(str, "n", 1) == 0 || strncmp(str, "N", 1) == 0)
695  file_mode = YB_NO_RUN;
696  if (strncmp(str, "a", 1) == 0 || strncmp(str, "A", 1) == 0)
697  file_mode = YB_ADD_RUN;
698  } else if (strncmp(argv[i], "-f", 2) == 0) {
699  sprintf(str, argv[++i]);
700  if (strncmp(str, "d", 1) == 0)
701  dsp_fmt = DSP_DEC;
702  if (strncmp(str, "x", 1) == 0)
703  dsp_fmt = DSP_HEX;
704  if (strncmp(str, "a", 1) == 0)
705  dsp_fmt = DSP_ASC;
706  } else if (strncmp(argv[i], "-r", 2) == 0)
707  bl = atoi(argv[++i]);
708  else if (strncmp(argv[i], "-x", 2) == 0) {
709  if (i + 1 == argc)
710  goto repusage;
711  strcpy(rep_file, argv[++i]);
712  } else {
713  repusage:
714  printf("mdump for replay -x file name : file to inspect\n");
715  printf
716  (" -m mode : Display mode either Bank or raw\n");
717  printf
718  (" -b bank name : search for bank name (case sensitive)\n");
719  printf(" -i evt_id (any) : event id from the FE\n");
720  printf
721  (" -k mask (any) : trigger_mask from FE setting\n");
722  printf
723  (">>> -i and -k are valid for YBOS ONLY if EVID bank is present in the event\n");
724  printf
725  (" -w what : Header, Record, Length, Event, Jbank_list\n");
726  printf
727  (">>> Header & Record are not supported for MIDAS as no physical record structure\n");
728  printf
729  (" -f format (auto): data representation (x/d/ascii) def:bank header content\n");
730  printf
731  (" -p path (null) : path for file composition (see -c)\n");
732  printf(" -t type (auto) : Bank format (Midas/Ybos)\n");
733  printf(">>> if -x is a /dev/xxx, -t has to be specified\n");
734  printf
735  (" -c compose : retrieve file from event (Addrun#/Norun#)\n");
736  printf
737  (" -r # : skip record(YBOS) or event(MIDAS) to #\n");
738  return 0;
739  }
740  }
741  }
742  } else {
743  /* get parameters for online */
744  for (i = 1; i < argc; i++) {
745  if (argv[i][0] == '-' && argv[i][1] == 'd')
746  debug = TRUE;
747  else if (strncmp(argv[i], "-s", 2) == 0)
748  speed = 1;
749  else if (strncmp(argv[i], "-y", 2) == 0)
750  consistency = 1;
751  else if (strncmp(argv[i], "-j", 2) == 0)
752  disp_bank_list = 1;
753  else if (argv[i][0] == '-') {
754  if (i + 1 >= argc || argv[i + 1][0] == '-')
755  goto usage;
756  else if (strncmp(argv[i], "-x", 2) == 0)
757  strncpy(rep_file, argv[++i], 4);
758  else if (strncmp(argv[i], "-b", 2) == 0)
759  strncpy(sbank_name, argv[++i], 4);
760  else if (strncmp(argv[i], "-l", 2) == 0)
761  save_dsp = evt_display = atoi(argv[++i]);
762  else if (strncmp(argv[i], "-w", 2) == 0)
763  dsp_time = 1000 * (atoi(argv[++i]));
764  else if (strncmp(argv[i], "-m", 2) == 0) {
765  sprintf(str, argv[++i]);
766  if (strncmp(str, "r", 1) == 0)
767  dsp_mode = DSP_RAW;
768  if (strncmp(str, "y", 1) == 0)
769  dsp_mode = DSP_BANK;
770  } else if (strncmp(argv[i], "-g", 2) == 0) {
771  sprintf(str, argv[++i]);
772  if (strncmp(str, "s", 1) == 0)
773  get_flag = GET_SOME;
774  if (strncmp(str, "a", 1) == 0)
775  get_flag = GET_ALL;
776  } else if (strncmp(argv[i], "-f", 2) == 0) {
777  sprintf(str, argv[++i]);
778  if (strncmp(str, "d", 1) == 0)
779  dsp_fmt = DSP_DEC;
780  if (strncmp(str, "x", 1) == 0)
781  dsp_fmt = DSP_HEX;
782  if (strncmp(str, "a", 1) == 0)
783  dsp_fmt = DSP_ASC;
784  } else if (strncmp(argv[i], "-i", 2) == 0)
785  event_id = atoi(argv[++i]);
786  else if (strncmp(argv[i], "-k", 2) == 0)
787  event_msk = atoi(argv[++i]);
788  else if (strncmp(argv[i], "-p", 2) == 0)
789  strcpy(svpath, argv[++i]);
790  else if (strncmp(argv[i], "-z", 2) == 0)
791  strcpy(buf_name, argv[++i]);
792  else if (strncmp(argv[i], "-t", 2) == 0) {
793  sprintf(str, argv[++i]);
794  if (strncmp(str, "m", 1) == 0)
795  data_fmt = FORMAT_MIDAS;
796  if (strncmp(str, "y", 1) == 0)
797  data_fmt = FORMAT_YBOS;
798  } else if (strncmp(argv[i], "-c", 2) == 0) {
799  strcpy(str, argv[++i]);
800  if (strncmp(str, "n", 1) == 0 || strncmp(str, "N", 1) == 0)
801  file_mode = YB_NO_RUN;
802  if (strncmp(str, "a", 1) == 0 || strncmp(str, "A", 1) == 0)
803  file_mode = YB_ADD_RUN;
804  } else if (strncmp(argv[i], "-h", 2) == 0)
805  strcpy(host_name, argv[++i]);
806  else if (strncmp(argv[i], "-e", 2) == 0)
807  strcpy(expt_name, argv[++i]);
808  else {
809  usage:
810  printf("mdump for online -l # : display # events (look 1)\n");
811  printf
812  (" -f format (auto): data representation (x/d/ascii) def:bank header content\n");
813  printf
814  (" -p path (null) : path for file composition (see -c)\n");
815  printf(" -t type (auto) : Bank format (Midas/Ybos)\n");
816  printf
817  (" -c compose : retrieve file from event (Addrun#/Norun#)\n");
818  printf
819  (" -w time : insert wait in [sec] between each display\n");
820  printf
821  (" -m mode : Display mode either Bank or raw\n");
822  printf
823  (" -j : Display # of banks and bank name list only\n");
824  printf
825  (" -b bank name : search for bank name (case sensitive)\n");
826  printf(" -i evt_id (any) : event id from the FE\n");
827  printf
828  (" -k mask (any) : trigger_mask from FE setting\n");
829  printf
830  (">>> -i and -k are valid for YBOS ONLY if EVID bank is present in the event\n");
831  printf
832  (" -g type : sampling mode either SOME or all)\n");
833  printf(">>> in case of -c it is recommented to used -g all\n");
834  printf
835  (" -s : speed test for connection test\n");
836  printf
837  (" -x Source : Data source selection def:online (see -x -h)\n");
838  printf
839  (" -y : Serial number consistency check\n");
840  printf(">>> in case of -y it is recommented to used -g all\n");
841  printf(" -z buffer name : Midas buffer name(SYSTEM)\n");
842  printf(" [-h Hostname] [-e Experiment]\n\n");
843  return 0;
844  }
845  }
846  }
847  }
848 
849 
850  /*-- decompression initialization ----------------------------------------*/
851  zstrm.zalloc = Z_NULL;
852  zstrm.zfree = Z_NULL;
853  zstrm.opaque = Z_NULL;
854  zstrm.avail_in = 0;
855  zstrm.next_in = Z_NULL;
856 
857  if ( inflateInit(&zstrm) != Z_OK)
858  {
859  printf("***ERROR! decompressing initialization fail!\n");
860  return 1;
861  }
862 
863  zbuf = (unsigned char*) malloc( MAX_EVENT_SIZE );
864 
865  if ( !zbuf )
866  {
867  printf("***ERROR! Can't allocate memory for aux. decompression buffer!\n");
868  return 1;
869  }
870 
871 
872  if (rep_flag && data_fmt == 0) {
873  char *pext;
874  if ((pext = strrchr(rep_file, '.')) != 0) {
875  if (equal_ustring(pext + 1, "mid"))
876  data_fmt = FORMAT_MIDAS;
877  else if (equal_ustring(pext + 1, "ybs"))
878  data_fmt = FORMAT_YBOS;
879  else if (equal_ustring(pext + 1, "gz")) {
880  if ((pext = strchr(rep_file, '.')) != 0) {
881  if (strstr(pext + 1, "mid"))
882  data_fmt = FORMAT_MIDAS;
883  else if (strstr(pext + 1, "ybs"))
884  data_fmt = FORMAT_YBOS;
885  } else {
886  printf
887  ("\n>>> data type (-t) should be set by hand in -x mode for tape <<< \n\n");
888  goto usage;
889  }
890  } else {
891  printf
892  ("\n>>> data type (-t) should be set by hand in -x mode for tape <<< \n\n");
893  goto usage;
894  }
895  }
896  }
897  /* steer to replog function */
898  if (rep_flag) {
899  replog(data_fmt, rep_file, bl, action);
900  return 0;
901  } else
902  /* check parameters */
903  if (evt_display < 1 && evt_display > 1000) {
904  printf("mdump-F- <-display arg> out of range (1:1000)\n");
905  return -1;
906  }
907  if (dsp_time < 0 && dsp_time > 100) {
908  printf("mdump-F- <-delay arg> out of range (1:100)\n");
909  return -1;
910  }
911 
912  /* connect to experiment */
913 
914  status = cm_connect_experiment(host_name, expt_name, "mdump", 0);
915  if (status != CM_SUCCESS)
916  return 1;
917 
918 #ifdef _DEBUG
919  cm_set_watchdog_params(TRUE, 0);
920 #endif
921 
922  /* open the "system" buffer, 1M size */
923  status = bm_open_buffer(buf_name, EVENT_BUFFER_SIZE, &hBufEvent);
924  if (status != BM_SUCCESS && status != BM_CREATED) {
925  cm_msg(MERROR, "mdump", "bm_open_buffer, unknown buffer");
926  goto error;
927  }
928  /* set the buffer cache size if requested */
929  bm_set_cache_size(hBufEvent, 100000, 0);
930 
931  /* place a request for a specific event id */
932  bm_request_event(hBufEvent, (WORD) event_id, (WORD) event_msk,
933  get_flag, &request_id, process_event);
934 
935  start_time = 0;
936  if (speed == 1)
937  printf("-%s -- Enter <!> to Exit ------- Midas Dump in Speed test mode ---\n",
938  cm_get_version());
939  else
940  printf("-%s -- Enter <!> to Exit ------- Midas Dump ---\n", cm_get_version());
941 
942  /* connect to the database */
943  cm_get_experiment_database(&hDB, &hKey);
944 
945  { /* ID block */
946  INT l = 0;
947  memset((char *) eq, 0, 32 * sizeof(FMT_ID));
948  /* check if dir exists */
949  if (db_find_key(hDB, 0, "/equipment", &hKey) == DB_SUCCESS) {
950  char strtmp[256], equclient[32];
951  for (i = 0;; i++) {
952  db_enum_key(hDB, hKey, i, &hSubkey);
953  if (!hSubkey)
954  break;
955  db_get_key(hDB, hSubkey, &key);
956  sprintf(eq[l].Eqname, key.name);
957  /* check if client running this equipment is present */
958  /* extract client name from equipment */
959  size = sizeof(strtmp);
960  sprintf(strtmp, "/equipment/%s/common/Frontend name", key.name);
961  db_get_value(hDB, 0, strtmp, equclient, &size, TID_STRING, TRUE);
962 
963  /* search client name under /system/clients/xxx/name */
964  /* Outcommented 22 Dec 1997 SR because of problem when
965  mdump is started before frontend
966  if (status = cm_exist(equclient,FALSE) != CM_SUCCESS)
967  continue;
968  */
969  size = sizeof(WORD);
970  sprintf(strtmp, "/equipment/%s/common/event ID", key.name);
971  db_get_value(hDB, 0, strtmp, &(eq[l]).id, &size, TID_WORD, TRUE);
972 
973  size = sizeof(WORD);
974  sprintf(strtmp, "/equipment/%s/common/Trigger mask", key.name);
975  db_get_value(hDB, 0, strtmp, &(eq[l]).msk, &size, TID_WORD, TRUE);
976 
977  size = sizeof(str);
978  sprintf(strtmp, "/equipment/%s/common/Format", key.name);
979  db_get_value(hDB, 0, strtmp, str, &size, TID_STRING, TRUE);
980  if (equal_ustring(str, "YBOS")) {
981  eq[l].fmt = FORMAT_YBOS;
982  strcpy(eq[l].Fmt, "YBOS");
983  } else if (equal_ustring(str, "MIDAS")) {
984  eq[l].fmt = FORMAT_MIDAS;
985  strcpy(eq[l].Fmt, "MIDAS");
986  } else if (equal_ustring(str, "DUMP")) {
987  eq[l].fmt = FORMAT_MIDAS;
988  strcpy(eq[l].Fmt, "DUMP");
989  } else if (equal_ustring(str, "ASCII")) {
990  eq[l].fmt = FORMAT_MIDAS;
991  strcpy(eq[l].Fmt, "ASCII");
992  } else if (equal_ustring(str, "HBOOK")) {
993  eq[l].fmt = FORMAT_MIDAS;
994  strcpy(eq[l].Fmt, "HBOOK");
995  } else if (equal_ustring(str, "FIXED")) {
996  eq[l].fmt = FORMAT_MIDAS;
997  strcpy(eq[l].Fmt, "FIXED");
998  }
999  l++;
1000  }
1001  }
1002 
1003  /* for equipment */
1004  /* check for EBuilder */
1005  if (db_find_key(hDB, 0, "/EBuilder/Settings", &hKey) == DB_SUCCESS) {
1006  sprintf(eq[l].Eqname, "EBuilder");
1007  /* check if client running this equipment is present */
1008  /* search client name under /system/clients/xxx/name */
1009  /* Outcommented 22 Dec 1997 SR because of problem when
1010  mdump is started before frontend
1011  if (status = cm_exist(equclient,FALSE) != CM_SUCCESS)
1012  continue;
1013  */
1014  size = sizeof(WORD);
1015  db_get_value(hDB, hKey, "Event ID", &(eq[l]).id, &size, TID_WORD, TRUE);
1016 
1017  size = sizeof(WORD);
1018  db_get_value(hDB, hKey, "Trigger mask", &(eq[l]).msk, &size, TID_WORD, TRUE);
1019 
1020  size = sizeof(str);
1021  db_get_value(hDB, hKey, "Format", str, &size, TID_STRING, TRUE);
1022  if (equal_ustring(str, "YBOS")) {
1023  eq[l].fmt = FORMAT_YBOS;
1024  strcpy(eq[l].Fmt, "YBOS");
1025  } else if (equal_ustring(str, "MIDAS")) {
1026  eq[l].fmt = FORMAT_MIDAS;
1027  strcpy(eq[l].Fmt, "MIDAS");
1028  } else {
1029  printf("Format unknown for Event Builder (%s)\n", str);
1030  goto error;
1031  }
1032  l++;
1033  }
1034  /* Debug */
1035  if (debug) {
1036  i = 0;
1037  printf("ID\tMask\tFormat\tEq_name\n");
1038  while (eq[i].fmt) {
1039  printf("%d\t%d\t%s\t%s\n", eq[i].id, eq[i].msk, eq[i].Fmt, eq[i].Eqname);
1040  i++;
1041  }
1042  }
1043  } /* ID block */
1044 
1045  do {
1046  if (via_callback)
1047  status = cm_yield(1000);
1048  if (speed == 1) {
1049  /* calculate rates each second */
1050  if (ss_millitime() - start_time > 1000) {
1051  stop_time = ss_millitime();
1052  rate = count / 1024.0 / 1024.0 / ((stop_time - start_time) / 1000.0);
1053 
1054  /* get information about filling level of the buffer */
1055  bm_get_buffer_info(hBufEvent, &buffer_header);
1056  size = buffer_header.read_pointer - buffer_header.write_pointer;
1057  if (size <= 0)
1058  size += buffer_header.size;
1059  printf("Level: %4.3f %%, ", 100 - 100.0 * size / buffer_header.size);
1060  printf("Rate: %1.3f MB/sec\n", rate);
1061 
1062  start_time = stop_time;
1063  count = 0;
1064  }
1065  }
1066 
1067  /* speed */
1068  /* check keyboard */
1069  ch = 0;
1070  if (ss_kbhit()) {
1071  ch = ss_getchar(0);
1072  if (ch == -1)
1073  ch = getchar();
1074  if ((char) ch == '!')
1075  break;
1076  }
1077  } while (status != RPC_SHUTDOWN && status != SS_ABORT);
1078 
1079  error:
1080  cm_disconnect_experiment();
1081 
1082  free( zbuf );
1083  (void)inflateEnd(&zstrm);
1084 
1085  return 1;
1086 }
void process_event ( HNDLE  hBuf,
HNDLE  request_id,
EVENT_HEADER *  pheader,
void *  pevent 
)

Definition at line 484 of file mzdump.c.

References bars, consistency, count, data_format_check(), decompress(), disp_bank_list, dsp_fmt, dsp_mode, dsp_time, evt_display, file_mode, i_bar, printf(), save_dsp, sbank_name, size, speed, status, and svpath.

485 {
486  static char bars[] = "|/-\\";
487  static int i_bar;
488  static EVENT_HEADER pevh;
489  INT internal_data_fmt, status, index, size;
490  DWORD *plrl, *pybk, bklen, bktyp;
491  char banklist[YB_STRING_BANKLIST_MAX];
492  BANK *pmbk;
493  BANK_HEADER *pmbh;
494 
495  //if (pheader->serial_number > 0)
496  decompress(pheader);
497 
498  if (speed == 1) {
499  /* accumulate received event size */
500  size = pheader->data_size + sizeof(EVENT_HEADER);
501  count += size;
502  return;
503  }
504  if (consistency == 1) {
505  if (pheader->serial_number != pevh.serial_number + 1) {
506  /* event header */
507  printf
508  ("\nLast - Evid:%4.4hx- Mask:%4.4hx- Serial:%li- Time:0x%lx- Dsize:%li/0x%lx\n",
509  pevh.event_id, pevh.trigger_mask, pevh.serial_number, pevh.time_stamp,
510  pevh.data_size, pevh.data_size);
511  printf
512  ("Now - Evid:%4.4hx- Mask:%4.4hx- Serial:%li- Time:0x%lx- Dsize:%li/0x%lx\n",
513  pheader->event_id, pheader->trigger_mask, pheader->serial_number,
514  pheader->time_stamp, pheader->data_size, pheader->data_size);
515  } else {
516  printf("Consistency check: %c - %li\r", bars[i_bar++ % 4],
517  pheader->serial_number);
518  fflush(stdout);
519  }
520  memcpy((char *) &pevh, (char *) pheader, sizeof(EVENT_HEADER));
521  return;
522  }
523  if (evt_display > 0) {
524  evt_display--;
525 
526  internal_data_fmt = data_format_check(pheader, &index);
527 
528  /* pointer to data section */
529  plrl = (DWORD *) pevent;
530  pmbh = (BANK_HEADER *) pevent;
531 
532  /* display header comes ALWAYS from MIDAS header */
533  printf("------------------------ Event# %i ------------------------\n",
535  /* selection based on data format */
536  if ((internal_data_fmt == FORMAT_YBOS) && (yb_any_event_swap(FORMAT_YBOS, plrl) >= YB_SUCCESS)) { /* ---- YBOS FMT ---- */
537  if (file_mode != YB_NO_RECOVER)
538  if ((status =
539  yb_file_recompose(pevent, internal_data_fmt, svpath,
540  file_mode)) != YB_SUCCESS)
541  printf("mdump recompose error %i\n", status);
542  if (sbank_name[0] != 0) { /* bank name given through argument list */
543  if ((status = ybk_find(plrl, sbank_name, &bklen, &bktyp, (void *) &pybk)) == YB_SUCCESS) { /* given bank found in list */
544  status = ybk_list(plrl, banklist);
545  printf("#banks:%i Bank list:-%s-\n", status, banklist);
546  printf("Bank:%s - Length (I*4):%li - Type:%li - pBk:%p\n", sbank_name,
547  bklen, bktyp, pybk);
548  yb_any_bank_display(NULL, pybk, FORMAT_YBOS, dsp_mode, dsp_fmt);
549  } else {
550  status = ybk_list(plrl, banklist);
551  printf("Bank -%s- not found (%i) in ", sbank_name, status);
552  printf("#banks:%i Bank list:-%s-\n", status, banklist);
553  }
554  } else { /* Full event */
555  /* event header */
556  printf("Evid:%4.4hx- Mask:%4.4hx- Serial:%ld- Time:0x%lx- Dsize:%ld/0x%lx\n",
557  pheader->event_id, pheader->trigger_mask, pheader->serial_number,
558  pheader->time_stamp, pheader->data_size, pheader->data_size);
559 
560  if (disp_bank_list) {
561  status = ybk_list(plrl, banklist);
562  printf("#banks:%i Bank list:-%s-\n", status, banklist);
563  } else
564  yb_any_event_display(plrl, FORMAT_YBOS, dsp_mode, dsp_fmt);
565  }
566  } else if ((internal_data_fmt == FORMAT_MIDAS) && (yb_any_event_swap(FORMAT_MIDAS, pheader) >= YB_SUCCESS)) { /* ---- MIDAS FMT ---- */
567  if (file_mode != YB_NO_RECOVER)
568  status = yb_file_recompose(pheader, internal_data_fmt, svpath, file_mode);
569  if (sbank_name[0] != 0) {
570  if (bk_find(pmbh, sbank_name, &bklen, &bktyp, (void *) &pmbk) == SS_SUCCESS) { /* bank name given through argument list */
571  status = bk_list(pmbh, banklist);
572  printf("#banks:%i Bank list:-%s-", status, banklist);
573  yb_any_bank_display(pmbh, pmbk, FORMAT_MIDAS, dsp_mode, dsp_fmt);
574  } else {
575  status = bk_list(pmbh, banklist);
576  printf("Bank -%s- not found (%i) in ", sbank_name, status);
577  printf("#banks:%i Bank list:-%s-\n", status, banklist);
578  }
579  } else { /* Full event or bank list only */
580  if (disp_bank_list) {
581  /* event header */
582  printf
583  ("Evid:%4.4hx- Mask:%4.4hx- Serial:%ld- Time:0x%lx- Dsize:%ld/0x%lx\n",
584  pheader->event_id, pheader->trigger_mask, pheader->serial_number,
585  pheader->time_stamp, pheader->data_size, pheader->data_size);
586  status = bk_list(pmbh, banklist);
587  printf("#banks:%i Bank list:-%s-\n", status, banklist);
588  } else
589  yb_any_event_display(pheader, FORMAT_MIDAS, dsp_mode, dsp_fmt);
590  }
591  } else { /* unknown format just dump midas event */
592  printf("Data format not supported: %s\n", eq[index].Fmt);
593  yb_any_event_display(pheader, FORMAT_MIDAS, DSP_RAW, dsp_fmt);
594  }
595  if (evt_display == 0) {
596  cm_disconnect_experiment();
597  exit(0);
598  }
599  if (dsp_time != 0)
600  ss_sleep(dsp_time);
601  }
602  return;
603 }
int replog ( int  data_fmt,
char *  rep_file,
int  bl,
int  action 
)

Definition at line 338 of file mzdump.c.

References decompress(), dsp_fmt, dsp_mode, event_id, event_msk, FALSE, file_mode, i, printf(), REP_BANKLIST, REP_EVENT, REP_HEADER, REP_LENGTH, REP_RECORD, sbank_name, status, svpath, and TRUE.

Referenced by main().

339 {
340  char banklist[YB_STRING_BANKLIST_MAX];
341  short int msk, id;
342  BOOL bank_found = FALSE;
343  INT status = 0, i;
344  DWORD physize, evtlen;
345  void *physrec;
346  char *pmyevt;
347  EVENT_HEADER *pme;
348  BANK_HEADER *pmbkh;
349  YBOS_BANK_HEADER *pybk;
350  DWORD *pdata;
351  DWORD bklen, bktyp;
352 
353  /* open data file */
354  if (yb_any_file_ropen(rep_file, data_fmt) != SS_SUCCESS)
355  return (-1);
356 
357  switch (action) {
358  case REP_HEADER:
359  case REP_RECORD:
360  /* get only physical record header */
361  if (yb_any_physrec_skip(data_fmt, bl) != YB_SUCCESS)
362  return (-1);
363  do {
364  if (action == REP_HEADER)
365  status = yb_any_all_info_display(D_HEADER);
366  else if (action == REP_RECORD)
367  status = yb_any_physrec_display(data_fmt);
368  if ((status == YB_DONE) || (bl != -1))
369  break;
370  }
371  while (yb_any_physrec_get(data_fmt, &physrec, &physize) == YB_SUCCESS);
372  break;
373 
374  case REP_LENGTH:
375  case REP_EVENT:
376  case REP_BANKLIST:
377  /* skip will read atleast on record */
378  if (yb_any_physrec_skip(data_fmt, bl) != YB_SUCCESS)
379  return (-1);
380  i = 0;
381  while (yb_any_event_get(data_fmt, (void **) &pmyevt, &evtlen) == YB_SUCCESS) {
382  status = yb_any_event_swap(data_fmt, pmyevt);
383  if (file_mode != YB_NO_RECOVER)
384  if ((status =
385  yb_file_recompose(pmyevt, data_fmt, svpath, file_mode)) != YB_SUCCESS)
386  printf("mdump recompose error %i\n", status);
387 
388  /*** decompress events from WFD frontends ***/
389  if (data_fmt == FORMAT_MIDAS)
390  {
391  //if (i>0)
392  decompress(pmyevt);
393  }
394 
395  if (action == REP_LENGTH)
396  status = yb_any_all_info_display(D_EVTLEN);
397  if (action == REP_BANKLIST) {
398  if (data_fmt == FORMAT_YBOS)
399  status = ybk_list((DWORD *) pmyevt, banklist);
400  else if (data_fmt == FORMAT_MIDAS) {
401  pme = (EVENT_HEADER *) pmyevt;
402  if (pme->event_id == EVENTID_BOR ||
403  pme->event_id == EVENTID_EOR || pme->event_id == EVENTID_MESSAGE)
404  continue;
405  printf
406  ("Evid:%4.4hx- Mask:%4.4hx- Serial:%ld- Time:0x%lx- Dsize:%ld/0x%lx\n",
407  pme->event_id, pme->trigger_mask, pme->serial_number, pme->time_stamp,
408  pme->data_size, pme->data_size);
409  pmbkh = (BANK_HEADER *) (((EVENT_HEADER *) pmyevt) + 1);
410  status = bk_list(pmbkh, banklist);
411  }
412  printf("#banks:%i Bank list:-%s-\n", status, banklist);
413  } else if ((action == REP_EVENT) && (event_id == EVENTID_ALL) && (event_msk == TRIGGER_ALL) && (sbank_name[0] == 0)) { /* a quick by-pass to prevent bank search if not necessary */
414  printf
415  ("------------------------ Event# %i --------------------------------\n",
416  i++);
417  yb_any_event_display(pmyevt, data_fmt, dsp_mode, dsp_fmt);
418  } else if (action == REP_EVENT) {
419  id = EVENTID_ALL;
420  msk = TRIGGER_ALL;
421  if (data_fmt == FORMAT_MIDAS) {
422  pme = (EVENT_HEADER *) pmyevt;
423  id = pme->event_id;
424  msk = pme->trigger_mask;
425  /* Search bank if necessary */
426  if (sbank_name[0] != 0) { /* bank name given through argument list */
427  bank_found = FALSE;
428  pmbkh = (BANK_HEADER *) (((EVENT_HEADER *) pmyevt) + 1);
429  if ((pmbkh->data_size + 8) == ((EVENT_HEADER *) pmyevt)->data_size) {
430  if ((status = bk_find(pmbkh, sbank_name, &bklen, &bktyp, (void *) &pybk)) == SS_SUCCESS) { /* given bank found in list */
431  status = bk_list(pmbkh, banklist);
432  bank_found = TRUE;
433  }
434  }
435  }
436  } else if (data_fmt == FORMAT_YBOS) {
437  /* check id EVID found in event for id and msk selection */
438  if ((status =
439  ybk_find((DWORD *) pmyevt, "EVID", &bklen, &bktyp,
440  (void *) &pybk)) == YB_SUCCESS) {
441  pdata = (DWORD *) ((YBOS_BANK_HEADER *) pybk + 1);
442  id = (short int) (YBOS_EVID_EVENT_ID(pdata));
443  msk = (short int) (YBOS_EVID_TRIGGER_MASK(pdata));
444  }
445  /* Search bank if necessary */
446  if (sbank_name[0] != 0) { /* bank name given through argument list */
447  bank_found = FALSE;
448  if ((status = ybk_find((DWORD *) pmyevt, sbank_name, &bklen, &bktyp, (void *) &pybk)) == YB_SUCCESS) { /* given bank found in list */
449  status = ybk_list((DWORD *) pmyevt, banklist);
450  bank_found = TRUE;
451  }
452  }
453  }
454  /* check user request through switch setting (id, msk ,bank) */
455  if ((event_msk != TRIGGER_ALL) || (event_id != EVENTID_ALL) || (sbank_name[0] != 0)) { /* check request or skip event if not satisfied */
456  if (((event_id != EVENTID_ALL) && (id != event_id)) || /* id check ==> skip */
457  ((event_msk != TRIGGER_ALL) && (msk != event_msk)) || /* msk check ==> skip */
458  ((sbank_name[0] != 0) && !bank_found)) { /* bk check ==> skip *//* skip event */
459  printf("Searching for Bank -%s- Skiping event...%i\r", sbank_name, i++);
460  fflush(stdout);
461  } else { /* request match ==> display any event */
462  printf
463  ("------------------------ Event# %i --------------------------------\n",
464  i++);
465  yb_any_event_display(pmyevt, data_fmt, dsp_mode, dsp_fmt);
466  }
467  } else { /* no user request ==> display any event */
468  printf
469  ("------------------------ Event# %i --------------------------------\n",
470  i++);
471  yb_any_event_display(pmyevt, data_fmt, dsp_mode, dsp_fmt);
472  }
473  }
474  }
475  break;
476  } /* switch */
477 
478  /* close data file */
479  yb_any_file_rclose(data_fmt);
480  return 0;
481 }

Variable Documentation

char bank_name[4]
INT bl = -1

Definition at line 126 of file mzdump.c.

Referenced by main().

INT consistency = 0

Definition at line 127 of file mzdump.c.

Referenced by main(), and process_event().

INT count
INT data_fmt

Definition at line 129 of file mzdump.c.

Referenced by data_format_check(), and main().

INT disp_bank_list = 0

Definition at line 127 of file mzdump.c.

Referenced by main(), and process_event().

INT dsp_fmt = 0

Definition at line 126 of file mzdump.c.

Referenced by main(), process_event(), and replog().

INT dsp_mode = 0

Definition at line 126 of file mzdump.c.

Referenced by main(), process_event(), and replog().

INT dsp_time = 0

Definition at line 126 of file mzdump.c.

Referenced by main(), and process_event().

FMT_ID eq[32]

Definition at line 141 of file mzdump.c.

Referenced by close_buffers(), scan_fragment(), scheduler(), and tr_stop().

INT event_id
INT event_msk

Definition at line 132 of file mzdump.c.

Referenced by main(), and replog().

INT evt_display = 0

Definition at line 125 of file mzdump.c.

Referenced by main(), and process_event().

INT file_mode

Definition at line 126 of file mzdump.c.

Referenced by main(), process_event(), and replog().

INT hBufEvent

Definition at line 124 of file mzdump.c.

Referenced by main().

HNDLE hSubkey

Definition at line 131 of file mzdump.c.

INT i

Definition at line 129 of file mzdump.c.

Referenced by A3818UpgradeFromFile(), A3818UpgradeFromMem(), WireMap::Add(), modules::reader::AddModule(), PulseTemplate::AddPulse(), allocate_windows(), allPacketsReceived(), analyze_command_line(), ApplyDataCorrection(), WireMap::AreThereDuplicates(), MakeDetectorPulses::BeforeFirstEntry(), MakeAnalysedPulses::BeforeFirstEntry(), begin_of_run(), binary_print(), caenV767_eor(), caenV767_fifo_read(), caenV767_poll_live(), caenV767_read(), CaenVmeRead(), CaenVmeReadBlt(), CaenVmeWrite(), CaenVmeWriteBlt(), cam16i_r(), cam16i_rq(), cam16i_sa(), cam16i_sn(), cam16o_r(), cam24i_r(), cam24i_rq(), cam24i_sa(), cam24i_sn(), cam24o_r(), cam8o_r(), cam_exit(), cam_init(), camc_sa(), camc_sn(), ODBCheck::Check(), MqlArray< T >::checkSort(), PulseTemplate::Chi2Fit(), ClassImp(), WireMap::ClearDisabledDuplicateDetectors(), TOctalFADCBankReader::ClearEvent(), ClearGlobalData(), cnaf_callback(), con_getch(), con_kbhit(), con_printf(), con_printf_xy(), con_scanf(), consider_start(), cvUpgrade(), data_format_check(), DataConsistencyCheck(), Decode(), decode_bits(), decode_caen(), decode_cmp_bits(), decode_cmp_times(), decode_fadc(), decode_hits(), decode_times(), decompress(), deleteSegment(), display(), dl401_read(), dl401_setPedestals(), eb_user(), Encode(), encode_bits(), encode_caen(), encode_cmp_bits(), encode_cmp_times(), encode_fadc(), encode_hits(), encode_times(), end_of_run(), epics_ca_callback(), epics_ca_connection_handler(), epics_ca_event_handler(), epics_ca_exit(), epics_ca_get(), epics_ca_get_all(), epics_ca_init(), epics_ca_set(), epics_ca_set_all(), eraseFirmware(), PulseEstimate::Estimate(), event_display(), FillCoincidenceTimeHistogram(), PrePulse::FindPrePulses(), findPulse(), TOctalFADCIsland::FitGauss(), for(), forgetPackets(), free_event_buffer(), free_windows(), frontend_early_init(), frontend_exit(), frontend_init(), frontend_loop(), G__AlcapDict_504_0_41(), G__AlcapDict_512_0_31(), G__AlcapDict_516_0_16(), G__DataLibraryDict_168_0_23(), G__DataLibraryDict_409_0_21(), G__DataLibraryDict_410_0_15(), G__DataLibraryDict_412_0_32(), G__DataLibraryDict_413_0_17(), G__DataLibraryDict_417_0_27(), G__DataLibraryDict_418_0_5(), G__DataLibraryDict_419_0_12(), G__DataLibraryDict_504_0_41(), G__DataLibraryDict_504_0_46(), G__DataLibraryDict_507_0_27(), G__DataLibraryDict_508_0_5(), G__DataLibraryDict_509_0_12(), G__DataLibraryDict_512_0_31(), G__DataLibraryDict_516_0_16(), G__DataLibraryDict_518_0_32(), G__DataLibraryDict_519_0_17(), G__DataLibraryDict_522_0_31(), G__DataLibraryDict_523_0_27(), G__DataLibraryDict_524_0_5(), G__DataLibraryDict_525_0_12(), G__DataLibraryDict_526_0_16(), G__DataLibraryDict_528_0_22(), G__DataLibraryDict_528_0_32(), G__DataLibraryDict_529_0_17(), G__DataLibraryDict_529_0_24(), G__DataLibraryDict_530_0_18(), G__DataLibraryDict_532_0_32(), G__DataLibraryDict_533_0_17(), G__DataLibraryDict_533_0_27(), G__DataLibraryDict_534_0_5(), G__DataLibraryDict_535_0_12(), G__DataLibraryDict_537_0_27(), G__DataLibraryDict_538_0_18(), G__DataLibraryDict_538_0_5(), G__DataLibraryDict_539_0_12(), G__Dict_504_0_41(), G__Dict_512_0_31(), G__Dict_516_0_16(), G__RootanaDataClasses_404_0_27(), G__RootanaDataClasses_407_0_23(), G__RootanaDataClasses_408_0_28(), G__RootanaDataClasses_430_0_24(), G__RootanaDataClasses_432_0_32(), G__RootanaDataClasses_433_0_17(), G__RootanaDataClasses_446_0_27(), G__RootanaDataClasses_447_0_5(), G__RootanaDataClasses_448_0_12(), G__RootanaDataClasses_451_0_30(), G__RootanaDataClasses_591_0_32(), G__RootanaDataClasses_594_0_20(), G__RootanaDataClasses_597_0_27(), G__RootanaDataClasses_606_0_27(), TOctalFADCIsland::GetAverage(), TOctalFADCIsland::GetAverageMax(), IDs::channel::GetDetectorEnum(), GetEventPtr(), GetFWRel(), TOnlineFrame::GetHistTitles(), TOctalFADCIsland::GetIntegral(), modules::reader::GetModule(), getNumberOfBits(), GetNumEvents(), TMuonEvent::GetNumPulses(), modules::reader::GetOptions(), TOctalFADCIsland::GetSample(), handFlush(), huffman_build_tree(), huffman_init_default(), huffman_optimize_tree(), huffman_precompute_decode(), isNumber(), IsPileupProtected(), KeyInfo(), License(), WireMap::Load(), load_config_file(), load_fragment(), load_huffman(), modules::navigator::LoadConfigFile(), LoadCorrectionTables(), logger_root(), lrs2249_read(), lrs2249_read1(), main(), make_comp(), ExportPulse::MakePlot(), manual_trigger(), map_dma_windows(), map_windows(), MD5_memcpy(), MD5_memset(), MD5Update(), MDPrint(), MDQ_DigitizerOverflow_eor(), MDQ_FADCBufferOverflow(), MDQ_FADCPacketLoss(), MDQ_TDCCheck(), MDTimeTrial(), merge_hits(), MFastSlowCorrelator(), MFastSlowCorrelator_init(), MMuPC1AnalysisC(), MMuSCAnalysisC(), MMuSCTimeDifferences(), MMuSCTimeDifferences_init(), MOctalFADCBufferOverflow(), MOctalFADCPacketLoss(), MOctalFADCProcessRaw(), MyModule::MyModule(), myprint_TPCstack_interval(), n2fadc_ndet_dump(), n2fadc_tpc_dump(), new_fadc_read(), newSegment(), nfadc_dump(), num_leading_bits(), HistogramFitFCN::operator()(), MqlNtupleColumn< T >::operator[](), MqlArray< T >::operator[](), parse_args(), PeakCorrection(), poll_event(), pre_begin_of_run(), WireMap::Print(), print_diag_output(), process_event(), SimpleHistograms::ProcessEntry(), MyModule::ProcessEntry(), DeadTimeGe::ProcessEntry(), MakeTemplate::ProcessEntry(), TOctalFADCBankReader::ProcessEvent(), processIsland(), ProgramDigitizer(), pulse_islands_stitch(), read_flash_page(), read_periodic_event(), read_separator_event(), read_trigger_event(), readFlash(), ReadFlashPage16(), ReadFlashPage32(), ReadFlashSecurityReg16(), ReadFlashSecurityReg32(), receivePackets(), register_equipment(), replog(), TMuonEvent::ResetDetectors(), rle_bits_setup(), rpc_master_bor(), rpc_master_eor(), rpc_master_poll_dead(), rpc_master_pre_bor(), rpc_master_read(), rpc_slave_bor(), s500_bor1(), s500_read(), SaveDigitalProbe(), SaveHistogram(), SaveWaveform(), scheduler(), send_all_periodic_events(), send_event(), TUsrSevtData1::SetEvent(), TUsrSevtData2::SetEvent(), setupRegs(), SimpleHistograms::SimpleHistograms(), sis3600_eor(), sis3600_poll_live(), sis3600_read(), source_booking(), source_scan(), source_unbooking(), start_cycle(), TOctalFADCBankReader::StitchIslands(), stop_cycle(), SumPulses(), tdc400_byte(), TMuonEvent::TMuonEvent(), TOnlineFrame::TOnlineFrame(), tr_prestop(), tr_start(), tr_stop(), WireMap::UniqueFixes(), update_odb(), UpdateDetectorBankNameMap(), v1290_MicroRead(), v1290_MicroWrite(), v1290_TriggerConfRead(), v1718_delete(), V1742UnpackEventGroup(), vacuum_gauge_read(), validateModel(), verifyFlash(), ViewReadBltData(), vme_init(), vme_open(), writeFlashPage(), WriteFlashPage16(), and WriteFlashPage32().

KEY key
INT save_dsp = 1

Definition at line 125 of file mzdump.c.

Referenced by main(), and process_event().

char sbank_name[4]

Definition at line 123 of file mzdump.c.

Referenced by main(), process_event(), and replog().

INT speed = 0

Definition at line 126 of file mzdump.c.

Referenced by main(), and process_event().

char svpath[128]

Definition at line 123 of file mzdump.c.

Referenced by main(), process_event(), and replog().

BOOL via_callback

Definition at line 128 of file mzdump.c.

Referenced by main().

unsigned char* zbuf
static

Definition at line 145 of file mzdump.c.

Referenced by decompress(), and main().

z_stream zstrm
static

Definition at line 146 of file mzdump.c.

Referenced by decompress(), and main().