Changeset 14287
- Timestamp:
- Jul 18, 2007, 8:46:45 AM (19 years ago)
- Location:
- trunk/Ohana/src/opihi/dvo
- Files:
-
- 4 edited
-
avextract.c (modified) (5 diffs)
-
dbCheckStack.c (modified) (4 diffs)
-
dbFields.c (modified) (2 diffs)
-
mextract.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/dvo/avextract.c
r14191 r14287 3 3 int avextract (int argc, char **argv) { 4 4 5 int i, j, n, m, N pts, NPTS, last, Nfields, Nreturn, Ncstack, Nstack;6 int Nsecfilt, mode ;5 int i, j, n, m, N, Npts, NPTS, last, Nfields, Nreturn, Ncstack, Nstack; 6 int Nsecfilt, mode, VERBOSE; 7 7 char *RegionName, *RegionList, *p; 8 8 char **cstack, name[1024]; 9 9 float *values; 10 void *Signal; 10 11 11 12 Catalog catalog; … … 24 25 fields = NULL; 25 26 stack = NULL; 27 28 VERBOSE = FALSE; 29 if ((N = get_argument (argc, argv, "-v"))) { 30 remove_argument (N, &argc, argv); 31 VERBOSE = TRUE; 32 } 26 33 27 34 dvo_catalog_init (&catalog, TRUE); … … 69 76 NPTS = 1; 70 77 71 // XXX need to add interrupt test to this loop 72 for (i = 0; i < skylist[0].Nregions; i++) { 78 // grab data from all selected sky regions 79 Signal = signal (SIGINT, handle_interrupt); 80 interrupt = FALSE; 81 for (i = 0; (i < skylist[0].Nregions) && !interrupt; i++) { 73 82 /* lock, load, unlock catalog */ 74 83 catalog.filename = skylist[0].filename[i]; … … 76 85 catalog.Nsecfilt = 0; 77 86 87 if (VERBOSE) gprint (GP_ERR, "trying %s (%d of %d)\n", catalog.filename, i, skylist[0].Nregions); 88 78 89 // an error exit status here is a significant error 79 90 if (!dvo_catalog_open (&catalog, NULL, FALSE, "r")) { 80 fprintf (stderr, "ERROR: failure to open catalog file %s\n", catalog.filename);91 gprint (GP_ERR, "ERROR: failure to open catalog file %s\n", catalog.filename); 81 92 exit (2); 82 93 } 83 94 dvo_catalog_unlock (&catalog); 84 95 85 for (j = 0; j < catalog.Naverage; j++) {96 for (j = 0; (j < catalog.Naverage) && !interrupt; j++) { 86 97 m = catalog.average[j].offset; 87 98 // extract the relevant values … … 105 116 dvo_catalog_free (&catalog); 106 117 } 118 signal (SIGINT, Signal); 119 interrupt = FALSE; 107 120 for (n = 0; n < Nreturn; n++) { 108 121 vec[n][0].Nelements = Npts; -
trunk/Ohana/src/opihi/dvo/dbCheckStack.c
r13479 r14287 1 1 # include "dvoshell.h" 2 2 3 int dbCheckStack (dbStack *stack, int Nstack, int table, dbField **inFields, int * Nfields) {3 int dbCheckStack (dbStack *stack, int Nstack, int table, dbField **inFields, int *inNfields) { 4 4 5 int i, j, status, NFIELDS ;5 int i, j, status, NFIELDS, Nfields; 6 6 char *c; 7 7 dbField *fields; 8 8 9 NFIELDS = *Nfields + 10;10 REALLOCATE (*inFields, dbField, NFIELDS);11 9 fields = *inFields; 10 Nfields = *inNfields; 11 12 NFIELDS = Nfields + 10; 13 REALLOCATE (fields, dbField, NFIELDS); 12 14 13 15 for (i = 0; i < Nstack; i++) { … … 22 24 23 25 // this must be a field : is it already in the list? 24 for (j = 0; (j < *Nfields) && strcasecmp (stack[i].name, fields[j].name); j++);25 if (j < *Nfields) {26 for (j = 0; (j < Nfields) && strcasecmp (stack[i].name, fields[j].name); j++); 27 if (j < Nfields) { 26 28 stack[i].field = j; 27 29 stack[i].type = 'F'; 30 stack[i].name = NULL; 31 stack[i].Float = 0.0; 28 32 continue; 29 33 } … … 31 35 // this must be a field : is it a valid name? 32 36 if (table == DVO_TABLE_MEASURE) { 33 status = ParseMeasureField (&fields[ *Nfields], stack[i].name);37 status = ParseMeasureField (&fields[Nfields], stack[i].name); 34 38 } 35 39 if (table == DVO_TABLE_AVERAGE) { 36 status = ParseAverageField (&fields[ *Nfields], stack[i].name);40 status = ParseAverageField (&fields[Nfields], stack[i].name); 37 41 } 38 42 if (!status) { … … 40 44 return (FALSE); 41 45 } 42 stack[i].field = *Nfields;46 stack[i].field = Nfields; 43 47 stack[i].type = 'F'; 48 stack[i].name = NULL; 49 stack[i].Float = 0.0; 44 50 45 *Nfields ++; 46 CHECK_REALLOCATE (*inFields, dbField, NFIELDS, *Nfields, 10); 47 fields = *inFields; 51 Nfields ++; 52 CHECK_REALLOCATE (fields, dbField, NFIELDS, Nfields, 10); 48 53 } 49 54 } 55 56 *inNfields = Nfields; 57 *inFields = fields; 58 50 59 return (TRUE); 51 60 } -
trunk/Ohana/src/opihi/dvo/dbFields.c
r14191 r14287 7 7 if (fields == NULL) return; 8 8 9 for (i = 0; i < =Nfields; i++) {9 for (i = 0; i < Nfields; i++) { 10 10 if (fields[i].name != NULL) free (fields[i].name); 11 11 if (fields[i].photcode != NULL) { … … 68 68 } 69 69 code = GetPhotcodebyName (tmpstring); 70 if (!code) { 71 return NULL; 72 } 73 70 74 71 75 // enforce compatibility -
trunk/Ohana/src/opihi/dvo/mextract.c
r14191 r14287 4 4 5 5 int i, j, k, m, n, N, N1, Npts, NPTS, last, Nfields, Nreturn, Ncstack, Nstack; 6 int param, mode, Nsecfilt;6 int Nsecfilt, VERBOSE, loadImages, mosaicMode; 7 7 char *RegionName, *RegionList, *p; 8 8 double *M1; 9 9 char **cstack, name[1024]; 10 10 float *values; 11 void *Signal; 11 12 12 13 Catalog catalog; … … 22 23 RegionList = NULL; 23 24 code = NULL; 24 mode = MAG_REL;25 25 fields = NULL; 26 26 stack = NULL; 27 28 VERBOSE = FALSE; 29 if ((N = get_argument (argc, argv, "-v"))) { 30 remove_argument (N, &argc, argv); 31 VERBOSE = TRUE; 32 } 27 33 28 34 dvo_catalog_init (&catalog, TRUE); … … 50 56 // construct the db Boolean math stack (frees cstack) 51 57 stack = dbRPN (Ncstack, cstack, &Nstack); 58 if ((Ncstack > 0) && (Nstack < 1)) { 59 print_error (); 60 goto escape; 61 } 52 62 53 63 Nreturn = Nfields; … … 59 69 60 70 // XXX is this still needed? 61 // if (!SetImageSelection (param, ((RegionName == NULL) && (RegionList == NULL)))) goto escape; 71 loadImages = FALSE; 72 mosaicMode = FALSE; 73 for (i = 0; !loadImages && (i < Nfields); i++) { 74 if (fields[i].ID == MEAS_XCCD) loadImages = TRUE; 75 if (fields[i].ID == MEAS_YCCD) loadImages = TRUE; 76 if (fields[i].ID == MEAS_XMOSAIC) loadImages = mosaicMode = TRUE; 77 if (fields[i].ID == MEAS_YMOSAIC) loadImages = mosaicMode = TRUE; 78 } 79 if (loadImages && !SetImageSelection (mosaicMode, ((RegionName == NULL) && (RegionList == NULL)))) goto escape; 62 80 63 81 /* create storage vector */ … … 76 94 NPTS = 1; 77 95 78 // XXX need to add interrupt test to this loop 79 for (i = 0; i < skylist[0].Nregions; i++) { 96 // grab data from all selected sky regions 97 Signal = signal (SIGINT, handle_interrupt); 98 interrupt = FALSE; 99 for (i = 0; (i < skylist[0].Nregions) && !interrupt; i++) { 80 100 /* lock, load, unlock catalog */ 81 101 catalog.filename = skylist[0].filename[i]; … … 83 103 catalog.Nsecfilt = Nsecfilt; 84 104 105 if (VERBOSE) gprint (GP_ERR, "trying %s (%d of %d)\n", catalog.filename, i, skylist[0].Nregions); 106 85 107 // an error exit status here is a significant error 86 108 if (!dvo_catalog_open (&catalog, NULL, FALSE, "r")) { 87 fprintf (stderr, "ERROR: failure to open catalog file %s\n", catalog.filename);109 gprint (GP_ERR, "ERROR: failure to open catalog file %s\n", catalog.filename); 88 110 exit (2); 89 111 } … … 92 114 /* XXX need to call dvo_catalog_chipcoords here passing the loaded images */ 93 115 94 for (j = 0; j < catalog.Naverage; j++) {116 for (j = 0; (j < catalog.Naverage) && !interrupt; j++) { 95 117 m = catalog.average[j].offset; 96 118 for (k = 0; k < catalog.average[j].Nm; k++, m++) { … … 117 139 dvo_catalog_free (&catalog); 118 140 } 141 signal (SIGINT, Signal); 142 interrupt = FALSE; 143 119 144 for (n = 0; n < Nreturn; n++) { 120 145 vec[n][0].Nelements = Npts; 121 146 REALLOCATE (vec[n][0].elements, float, MAX(1,Npts)); 122 147 } 123 124 148 dbFreeFields (fields, Nfields); 125 149 dbFreeStack (stack, Nstack); 150 126 151 FreeImageSelection (); 127 152 SkyListFree (skylist, ((RegionName != NULL) || (RegionList != NULL))); 153 128 154 if (RegionName != NULL) free (RegionName); 129 155 if (RegionList != NULL) free (RegionList);
Note:
See TracChangeset
for help on using the changeset viewer.
