/* filename: rd_test * usage: rd_test hdf_filename * purpose: Reads data from an HDF file (hdf_filename). * perl generated code: init_acc_test_func - initialize for accessing * read_test_func - read from hdf_filename * close_rd_test_func - Close access to Vdata and SDdata * HDF calls: Hopen - Opens the HDF file for reading * Vstart - Allows reading of Vdata * SDstart - Allows reading of SDdata * Vend - End Vdata attachment * SDend - End SDdata attachment * Hclose - Close the HDF file **************************************************************************/ #include <stdio.h> #include <string.h> #include "structure.h" /* user created file that includes the data structure */ /* HDF include files */ #include "df.h" #include "mfhdf.h" void main(argc, argv) int argc; char *argv[]; { int32 hdf_fp, sd_id; /* HDF file pointer & scientific data ID */ struct TestSet testdata; /* TestSet structure defined in structure.h file */ int ii,jj,kk,cc=0,retval; /*------------------------------------------------------------------*/ if (argc!=2) /* Must have: executable + 1 argument */ { printf("Usage: rd_test hdf_file\n"); exit(1); } /* **READ** hdf file using Hopen */ if ((hdf_fp=Hopen(argv[1], DFACC_READ, 0))==FAIL) { fprintf(stderr, "Hopen: could not open hdf file\n"); exit(-1); } /* allow reading of V data using Vstart */ Vstart(hdf_fp); /* allow reading of SD data using SDstart */ if ((sd_id=SDstart(argv[1], DFACC_RDONLY))==FAIL) { fprintf(stderr, "SDstart: could not open hdf file\n"); exit(-1); } /* initialize for read "r" using perl generated code */ init_acc_test_func(hdf_fp, sd_id, "r"); ii=0; /* start at first record */ /* Read data out of HDF file using perl generated code */ while((retval= read_test_func(&testdata,ii))!=-1) { printf("sc clock readout = %d\n", testdata.sctime_readout); printf("QAC = %d\n", testdata.QAC); printf("test1[%d] = %d\ntest_array:\n", cc, testdata.test1[cc++]); for (jj=0; jj < NUM1; jj++){ for (kk=0; kk < NUM2; kk++){ printf(" %d ", testdata.test_array[jj][kk]); } printf("\n"); } printf("\n"); ii++; } /*--- all done, close HDF file ---*/ /*--------------------------------*/ /* Close access to Vdata and SDdata using perl generated code */ close_rd_test_func(); Vend(hdf_fp); /* End Vdata attachment */ fprintf(stdout,"Vdata connection ended \n"); if (SDend(sd_id)==FAIL) /* End SDdata attachment */ { fprintf(stderr, "SDend: could not close hdf file\n"); exit(-1); } fprintf(stdout,"SD connection ended\n"); if (Hclose(hdf_fp)==FAIL) { fprintf(stderr, "Hclose: could not close hdf file\n"); exit(-1); } fprintf(stderr,"file closed \n"); /* exit program normally */ exit(0); }
Back to ASC Home Page