/*************************************** * dbase_test.c * * * ***************************************/ #include #include #include #include #include #include #include "../lib/mylib1.h" #include "a200.h" #include "hv_dbase.h" main(argc, argv) int argc; char *argv[]; { hv_mod_struct *mid; char *mod_name = "/h0/cmds/hwc/hv_config"; 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; if (argc < 2 || *argv[1] =='-'){ printf(" dbase_test : to test hv data base\n"); printf("\n usage : bm_set Chamber_name \n"); printf(" The Chamber_name is interpreted as CABLE_name\n"); printf(" if the format XX/Y is used ( e.g. : 52/2 ) \n"); exit(0); } 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; if ((mid = (hv_mod_struct *)modlink(mod_name, 0)) == (hv_mod_struct *)-1) if ((mid = (hv_mod_struct *)modload(mod_name, 0)) == (hv_mod_struct *)-1) exit(_errmsg(errno, "dbase_test1.c: error linking module %s\n", mod_name)); printf(" connessions to %s :\n", chamber_code); for(dis = 0; dis < mid->n_crates; dis++) for(sl = 0; sl < 4; sl++) for(k = 0; k < 2; k++) if(strcmp(chamber_code, mid->distr[dis].slot[sl].cable[k].chamber) == 0 || strcmp(chamber_code, mid->distr[dis].slot[sl].cable[k].cable_name) == 0 || ( strcmp("0", chamber_code) == 0 && mid->distr[dis].slot[sl].hv_ch >= 0 && mid->distr[dis].slot[sl].cable[k].first_ch >= 0) ){ printf(" d_crate %d, slot %d, hv_ch %d :\n", mid->distr[dis].crate_nr , sl, mid->distr[dis].slot[sl].hv_ch); printf(" cable %s: ch %d-%d\n", mid->distr[dis].slot[sl].cable[k].cable_name, mid->distr[dis].slot[sl].cable[k].first_ch, mid->distr[dis].slot[sl].cable[k].last_ch); } munlink(mid); }