/*************************************************************************** * * * To read out all information of a SY127 crate * * * ***************************************************************************/ #include #include #include #include #include #include "a200.h" main(argc, argv) int argc; char *argv[]; { short crate = 0; /* crate 0 used */ short d_crate = 1; /* crate 1 is a distributor */ short i, ndata, data[1000], map[40], value; short ndatv, datv[40]; short ndati, dati[40]; int code, codv, codi; int not_on, not_off; int j, nch, inch; if ( argc > 1 ) crate = (short)atoi(argv[1]); printf(" crate nr = %d\n", crate); A200_init(); /* initialization */ printf(" A200 initialized\n"); HV_Map(crate); /* read channel_to_group association */ printf(" read map\n"); /* clear alarm and disable keyboard */ if ((code = HV_Set(DUMMY, crate, PROT_WORD, 8)) !=0) printf(" HV_Set returned code %d : %s\n", code, A200_Error(code)); if ((code = HV_Read_Group(ALL_PAR, crate, ALL, data, &ndata, map)) != 0) printf(" HV_Read_Group returned code %d : %s\n", code, A200_Error(code)); printf(" map read \n"); nch = 0; for ( i = 0; i < 40; i++){ printf(" i = %d, map[] = %d\n", i, map[i]); if (map[i]) nch++; } printf("CH V0 V1 I0 I1 R-UP R-DW TRIP Vmon Imon\n"); inch = -1; for ( i = 0; i < 40; i++){ printf("%2d", i); if (map[i]){ inch++; for ( j = 0; j < 7; j++){ printf("%5d", data[inch + nch * j]); } printf("%5d", data[inch + nch * 9]); printf("%5d", data[inch + nch * 10]); } printf("\n"); } /* inch = -1; for ( i = 0; i < 13; i++){ for ( j = 0; j < 40; j++){ if (map[j]){ inch++; if ( i == 0 ) printf("i=%d ", i); printf("%5d", data[inch + nch * i]); if ( i == 12 ) printf("\n"); } else printf(" i = %d ------------------------ \n", i); } } ????????? */ /* for ( i = 0; i < ndata; i++) printf(" i = %d, data[] = %d\n", i, data[i]); */ /* for ( i = 0; i < 40; i++ ){ printf(" CH = %2d\n", i); if (map[i]) { printf(" %d\n", data[3 + (i * 13) + 0]); printf(" %d\n", data[3 + (i * 13) + 1]); printf(" %d\n", data[3 + (i * 13) + 2]); printf(" %d\n", data[3 + (i * 13) + 3]); printf(" %d\n", data[3 + (i * 13) + 4]); printf(" %d\n", data[3 + (i * 13) + 5]); printf(" %d\n", data[3 + (i * 13) + 6]); printf(" %d\n", data[3 + (i * 13) + 7]); printf(" %d\n", data[3 + (i * 13) + 8]); printf(" %d\n", data[3 + (i * 13) + 9]); printf(" %d\n", data[3 + (i * 13) +10]); printf(" %d\n", data[3 + (i * 13) +11]); printf(" %d\n", data[3 + (i * 13) +12]); } else { printf(" EMPTY CHANNEL \n"); } } */ /* to be called before exiting the task */ A200_end(); }