/*************************************** * sy227_st_mon * * * * Monitor prot_status and * * channel_status of each of the 40 ch * * * ***************************************/ #include #include #include "../lib/mylib1.h" #include "a200.h" /* definitions relative to the CAEN system */ #include "hv_dbase.c" #define NMAX 45 #define NOK 40 #define SECONDS #define MINUTES * 60 #define STOP 1001 #define CONTINUE 1002 SY227_MBOX *hv_mod; PROCS_INFO *hv_procs_mod; int mev_id, evpro_id; char *caller; sighand(signal) register int signal; { printf(" sy227_st_mon : signal %d received \n", signal); if ( signal == STOP || signal == 2 || signal == 3) { /* ^C ^E */ A200_end(); exit(0); } else if ( signal == CONTINUE ) ; /* do nothing , used to awaike the process */ } main(argc, argv) int argc; char *argv[]; { short ndatas, datas[40], pats, prot_word; short ndatav, datav[40], patv; short ndatai, datai[40], pati; short ndataix, dataix[40], patix; short ndata, data[40], pat; int hra[6]; short i, j, chan, value, code; short cr, sl; int ntry, rok; int maxtry = 1; int tcycle, once; intercept(sighand); if (argc < 2) usage(); caller = argv[0]; tcycle = atoi(argv[1]); /* sleep time in seconds if tcycle > 0 in 1/256 s if tcycle < 0 ( read once if tcycle = 0 ) */ deblev[0] = 0; deblev[1] = 0; A200_Par(deblev); A200_init(); for (cr = 1; cr < 8; cr ++) for ( sl = 0; sl < 4; sl++){ code = D_Read(D_ONOFF, cr, sl, ALL, data, &ndata, &pat); printf("D_ONOFF : code = %d, ndata %d : %d %d\n", code, ndata, data[0], data[1] ); code = D_Read(D_STATUS, cr, sl, ALL, datas, &ndatas, &pats); printf(" status : code = %d, ndata %d\n", code, ndatas); code = D_Read(D_VMON, cr, sl, ALL, datav, &ndatav, &patv); printf(" vmon : code = %d, ndata %d\n", code, ndatav); code = D_Read(D_IMON, cr, sl, ALL, datai, &ndatai, &pati); printf(" imon : code = %d, ndata %d\n", code, ndatai); code = D_Read(D_IMAX, cr, sl, ALL, datai, &ndataix, &patix); printf(" imax : code = %d, ndata %d\n", code, ndataix); for (i = 0; i < 33 ; i++) printf("i = %d St = %d, V = %d, I = %d, Imax = %d\n", i, datas[i], datav[i], datai[i], dataix[i]); } A200_end(); exit(0); } usage() { printf(" usage : sy227_st_mon \n"); printf(" |-> == 0 : read once \n"); printf(" >= 0 : cycle in s\n"); printf(" <= 0 : cycle in 1/256 s \n"); exit(0); }