#include <stdio.h> #include <Error.h> #include <GeoVme.h> #include <dmap.h> int main(int argc, char *argv[]) { int res; DMAP_CHAN_EL data; if (argc!=7) { printf("Use: dmapgetone GeoVmeMap dmap chain crate slot channel\n"); return 1; } GeoVmeLoadMap(argv[1]); if (dmap_load(argv[2])!=DMAP_ERROR_OK) { printf("Error in dmap_load\n"); return 2; } res = dmap_get(atoi(argv[3]),atoi(argv[4]),atoi(argv[5]),atoi(argv[6]),&data); if (res==DMAP_ERROR_EMPTY) printf("Channel empty!"); else if (res!=DMAP_ERROR_OK) printf("Error in dmap_get.\n"); else { printf("Board type: %i\n",data.btype); switch (data.btype) { case DMAP_BTYPE_CALTDC: case DMAP_BTYPE_CALADC: printf("Detector: %i\nModule: %i\nPlane: %i\nColumn: %i\nSide: %i\n", data.data.cal.detector, data.data.cal.module, data.data.cal.plane, data.data.cal.column, data.data.cal.side); break;\ case DMAP_BTYPE_CHATDC: printf("Layer: %i\nWire: %i\n", data.data.chamber.layer, data.data.chamber.wire); break; case DMAP_BTYPE_QCALTDC: case DMAP_BTYPE_QCALADC: printf("Detector: %i\nModule: %i\n", data.data.qcal.detector, data.data.qcal.module); break; } } dmap_dispose(); GeoVmeUnloadMap(); return 0; }