/****************************************** * sy227_dbg.c * * * * Performs basic operation on the sy227 * * * ******************************************/ #include #include #include #include "../lib/mylib1.h" #include "a200.h" /* definitions relative to the CAEN system */ /* #include "../dbase/hv_dbase.h" */ #define NMAX 45 #define NOK 40 #define SECONDS #define MINUTES * 60 #define PAUSE 1001 #define CONTINUE 1002 #define STOP 1003 char *caller; int tcycle, command; sighand(signal) register int signal; { printf(" sy227_dbg : signal %d received \n", signal); if ( signal == STOP || signal == 2 || signal == 3) { /* ^C ^E */ A200_end(); /* unlink dbase module */ exit(0); } else if ( signal == PAUSE ) sleep(0); else if ( signal == CONTINUE ) ; /* do nothing , used to awaike the process */ } main(argc, argv) int argc; char *argv[]; { short ndata, data[33]; short ndatav, datav[33]; short ndatai, datai[33]; short ndataix, dataix[33]; short ndatas, datas[33]; int hra[6]; short i, j, chan, value, code, code1, code2, code3, code4, code5, code6; short on_off, hv_in; short dis, cr, sl; short i_res; short ifirst = 1; short n_to_be_read; short n_good_read; intercept(sighand); if (argc < 3) usage(); cr = (short ) atoi(argv[1]); sl = (short) atoi(argv[2]); if ( cr < 1 || cr > 9 || sl < 0 || sl > 3 ) usage(); A200_init(); ndata = 1; if (code = D_Read(D_IRESOL, cr, sl, ALL, data, &ndata)){ printf("%s: error %d reading current resolution\n", argv[0], code); i_res = 5; /* printf(" : i_res = %d assumed \n", i_res); */ } else i_res = data[0]; /* printf(" i_res = %d \n", i_res); */ /* the Voltage is read only on channel 0 */ ndatav = 1; if (code1 = D_Read(D_VMON, cr, sl, 0, datav, &ndatav)) printf(" %s: error %d reading V monitor\n", argv[0], code1); if ( ndatav != 1) printf(" %d channels of VMON read !!\n", ndatav); ndatai = 32; if (code2 = D_Read(D_IMON, cr, sl, ALL, datai, &ndatai)) printf(" %s: error %d reading I monitor\n", argv[0], code2); if ( ndatai != 32) printf(" ONLY %d channels of IMON read !!\n", ndatai); A200_end(); printf(" %4d\n", datav[0]); printf(" %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d\n", datai[0]*i_res, datai[1]*i_res, datai[2]*i_res, datai[3]*i_res, datai[4]*i_res, datai[5]*i_res, datai[6]*i_res, datai[7]*i_res, datai[8]*i_res, datai[9]*i_res, datai[10]*i_res, datai[11]*i_res, datai[12]*i_res, datai[13]*i_res, datai[14]*i_res, datai[15]*i_res); printf(" %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d\n", datai[16+0]*i_res, datai[16+1]*i_res, datai[16+2]*i_res, datai[16+3]*i_res, datai[16+4]*i_res, datai[16+5]*i_res, datai[16+6]*i_res, datai[16+7]*i_res, datai[16+8]*i_res, datai[16+9]*i_res, datai[16+10]*i_res, datai[16+11]*i_res, datai[16+12]*i_res, datai[16+13]*i_res, datai[16+14]*i_res, datai[16+15]*i_res); exit(0); } usage() { printf(" usage : sy227_dbg crate slot \n"); printf(" | |-> 0 - 3 \n"); printf(" ----- > 1 - 9 \n"); exit(0); }