/*************************************** * e' una modifica di read227.c * * per legger solo le tensioni e * * stamparle in modo compatto * * (4/8/94) * ***************************************/ #include #include #include #include #include #include #include "../lib/mylib1.h" #include "../dbase/hv_dbase.h" main(argc, argv) int argc; char *argv[]; { hv_mod_struct *mid; int tcp_ip_nr, cpu_nr; char *hv_config[3]; short i, j, k, chan, value, code; int dis, sl; char *par_code, *crate_code, *chan_code, *set_code, *chamber_code; short par_val, crate_val, chan_val, set_val; int is_a_cable; char cline[80], str0[20]; int n_ch_switched = 0; if (argc < 2 || *argv[1] =='-') usage(); chamber_code = argv[1]; if ( strcmp("all", chamber_code) == 0 || strcmp("ALL", chamber_code) == 0) chamber_code = "0"; is_a_cable = 0; if (*(chamber_code + 2) == '/') is_a_cable = 1; get_config(&tcp_ip_nr, &cpu_nr, hv_config); if ((mid = (hv_mod_struct *)modlink(hv_config[cpu_nr], 0)) == (hv_mod_struct *)-1) if ((mid = (hv_mod_struct *)modload(hv_config[cpu_nr], 0)) == (hv_mod_struct *)-1) exit(_errmsg(errno, " %s: error loading/linking module %s\n", argv[0], hv_config[cpu_nr])); printf(" \n"); for(dis = 0; dis < mid->n_crates; dis++) for(sl = 0; sl < 4; sl++) if(strcmp(chamber_code, mid->distr[dis].slot[sl].chamber) == 0 || strcmp(chamber_code, mid->distr[dis].slot[sl].cable_name) == 0) { /* || ( strcmp("0", chamber_code) == 0 && mid->distr[dis].slot[sl].hv_ch_Ref >= 0 ) ){ /* printf(" d_crate %d, slot %d, hv_ch_A %d, hv_ch_Ref %d :\n", mid->distr[dis].crate_nr , sl, mid->distr[dis].slot[sl].hv_ch_A, mid->distr[dis].slot[sl].hv_ch_Ref); printf(" cable %s\n", mid->distr[dis].slot[sl].cable_name); */ if ( mid->distr[dis].slot[sl].d_used_ch ){ cline[0] = '\0'; strncat(cline, "sy227_dbg_i ^255 " , strlen("sy227_dbg_i ^255 ")); itoa(dis + 1, str0); strncat(cline, str0, strlen(str0)); strncat(cline, " ", strlen(" ")); itoa(sl, str0); strncat(cline, str0, strlen(str0)); n_ch_switched++; /* printf(" '%s' : \n", cline); */ system( cline ); } } munlink(mid); sleep(1); if (!n_ch_switched) printf(" Unkown ( or not used ) chamber name \n"); } usage() { printf(" read227 : read distribution slot(s) connected to a Chamber\n"); printf("\n usage : read227 Chamber_name \n"); printf("\n The Chamber_name : is interpreted as \n"); printf(" Cable_name if the format \n"); printf(" XX/Y is used ( e.g. : 52/2 )\n"); exit(0); }