Changeset 6573 for branches/rel10_ifa/psModules/src/astrom/pmFPAview.c
- Timestamp:
- Mar 13, 2006, 4:21:07 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/rel10_ifa/psModules/src/astrom/pmFPAview.c
r6568 r6573 3 3 * @author EAM, IfA 4 4 * 5 * @version $Revision: 1.1.2. 3$ $Name: not supported by cvs2svn $6 * @date $Date: 2006-03- 09 20:56:39$5 * @version $Revision: 1.1.2.4 $ $Name: not supported by cvs2svn $ 6 * @date $Date: 2006-03-14 02:21:07 $ 7 7 * 8 8 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 17 17 #include "pmFPA.h" 18 18 #include "pmFPAview.h" 19 #include "pmFPARead.h"20 #include "pmFPAWrite.h"21 19 22 20 static void pmFPAviewFree (pmFPAview *view) 23 21 { 24 25 22 if (view == NULL) 26 23 return; 27 28 psFree (view->IO);29 24 return; 30 25 } 31 26 32 pmFPAview *pmFPAviewAlloc (pmFPA *fpa, psMetadata *camera, int nRows) 33 { 34 27 pmFPAview *pmFPAviewAlloc (int nRows) 28 { 35 29 pmFPAview *view = psAlloc (sizeof(pmFPAview)); 36 30 psMemSetDeallocator (view, (psFreeFunc) pmFPAviewFree); 37 38 view->fpa = fpa;39 view->nRows = nRows;40 view->camera = camera;41 31 42 32 view->chip = -1; 43 33 view->cell = -1; 44 34 view->readout = -1; 45 view->iRows = 0; 46 47 view->IO = psMetadataAlloc (); 35 view->iRows = 0; 36 view->nRows = nRows; 48 37 return (view); 49 38 } … … 64 53 } 65 54 66 pmChip *pmFPAviewThisChip (pmFPAview *view )55 pmChip *pmFPAviewThisChip (pmFPAview *view, pmFPA *fpa) 67 56 { 68 57 … … 71 60 } 72 61 73 if (view->chip >= view->fpa->chips->n) {74 return NULL; 75 } 76 77 pmChip *chip = view->fpa->chips->data[view->chip];62 if (view->chip >= fpa->chips->n) { 63 return NULL; 64 } 65 66 pmChip *chip = fpa->chips->data[view->chip]; 78 67 return chip; 79 68 } 80 69 81 pmChip *pmFPAviewNextChip (pmFPAview *view, int nStep) 82 { 83 70 pmChip *pmFPAviewNextChip (pmFPAview *view, pmFPA *fpa, int nStep) 71 { 84 72 view->cell = -1; 85 73 view->readout = -1; … … 87 75 88 76 // if there are no available chips, return NULL 89 if ( view->fpa->chips->n <= 0) {77 if (fpa->chips->n <= 0) { 90 78 view->chip = -1; 91 79 return NULL; … … 101 89 102 90 // if we are at the end of the stack, return NULL 103 if (view->chip >= view->fpa->chips->n) {91 if (view->chip >= fpa->chips->n) { 104 92 view->chip = -1; 105 93 return NULL; … … 107 95 108 96 // get the correct chip pointer 109 pmChip *chip = view->fpa->chips->data[view->chip];97 pmChip *chip = fpa->chips->data[view->chip]; 110 98 return (chip); 111 99 } 112 100 113 pmCell *pmFPAviewThisCell (pmFPAview *view )101 pmCell *pmFPAviewThisCell (pmFPAview *view, pmFPA *fpa) 114 102 { 115 103 … … 118 106 } 119 107 120 pmChip *chip = pmFPAviewThisChip (view );108 pmChip *chip = pmFPAviewThisChip (view, fpa); 121 109 if (chip == NULL) { 122 110 return NULL; … … 131 119 } 132 120 133 pmCell *pmFPAviewNextCell (pmFPAview *view, int nStep)134 { 135 136 pmChip *chip = pmFPAviewThisChip (view );121 pmCell *pmFPAviewNextCell (pmFPAview *view, pmFPA *fpa, int nStep) 122 { 123 124 pmChip *chip = pmFPAviewThisChip (view, fpa); 137 125 if (chip == NULL) { 138 126 return NULL; … … 167 155 } 168 156 169 pmReadout *pmFPAviewThisReadout (pmFPAview *view )157 pmReadout *pmFPAviewThisReadout (pmFPAview *view, pmFPA *fpa) 170 158 { 171 159 … … 174 162 } 175 163 176 pmCell *cell = pmFPAviewThisCell (view );164 pmCell *cell = pmFPAviewThisCell (view, fpa); 177 165 if (cell == NULL) { 178 166 return NULL; … … 187 175 } 188 176 189 pmReadout *pmFPAviewNextReadout (pmFPAview *view, int nStep)190 { 191 192 pmCell *cell = pmFPAviewThisCell (view );177 pmReadout *pmFPAviewNextReadout (pmFPAview *view, pmFPA *fpa, int nStep) 178 { 179 180 pmCell *cell = pmFPAviewThisCell (view, fpa); 193 181 if (cell == NULL) { 194 182 return NULL; … … 222 210 } 223 211 224 pmHDU *pmFPAviewThisHDU (pmFPAview *view )212 pmHDU *pmFPAviewThisHDU (pmFPAview *view, pmFPA *fpa) 225 213 { 226 214 … … 230 218 231 219 if (view->chip < 0) { 232 return pmHDUFromFPA ( view->fpa);220 return pmHDUFromFPA (fpa); 233 221 } 234 222 if (view->cell < 0) { 235 return pmHDUFromChip (pmFPAviewThisChip (view ));223 return pmHDUFromChip (pmFPAviewThisChip (view, fpa)); 236 224 } 237 225 if (view->readout < 0) { 238 return pmHDUFromCell (pmFPAviewThisCell (view ));226 return pmHDUFromCell (pmFPAviewThisCell (view, fpa)); 239 227 } 240 228 return NULL; … … 242 230 243 231 // select the rule from the camera configuration, perform substitutions as needed 244 char *pmFPAviewNameFromRule (char *rule, pmFPAview *view )232 char *pmFPAviewNameFromRule (char *rule, pmFPAview *view, pmFPA *fpa) 245 233 { 246 234 … … 250 238 251 239 if (strstr (newName, "{CHIP.NAME}") != NULL) { 252 pmChip *chip = pmFPAviewThisChip (view );240 pmChip *chip = pmFPAviewThisChip (view, fpa); 253 241 if (chip != NULL) { 254 242 char *name = psMetadataLookupStr (NULL, chip->concepts, "CHIP.NAME"); … … 259 247 } 260 248 if (strstr (newName, "{CELL.NAME}") != NULL) { 261 pmCell *cell = pmFPAviewThisCell (view );249 pmCell *cell = pmFPAviewThisCell (view, fpa); 262 250 if (cell != NULL) { 263 251 char *name = psMetadataLookupStr (NULL, cell->concepts, "CELL.NAME"); … … 268 256 } 269 257 if (strstr (newName, "{EXTNAME}") != NULL) { 270 pmHDU *hdu = pmFPAviewThisHDU (view );258 pmHDU *hdu = pmFPAviewThisHDU (view, fpa); 271 259 if (hdu->extname != NULL) { 272 260 newName = psStringSubstitute (newName, hdu->extname, "{EXTNAME}"); … … 275 263 return newName; 276 264 } 277 278 // given an already-opened fits file, read the components corresponding279 // to the specified view280 bool pmFPAviewReadFitsImage (pmFPAview *view, psFits *fits)281 {282 283 pmFPA *fpa = view->fpa;284 285 if (view->chip == -1) {286 pmFPARead (fpa, fits, NULL);287 return true;288 }289 290 if (view->chip >= fpa->chips->n) {291 return false;292 }293 pmChip *chip = fpa->chips->data[view->chip];294 295 if (view->cell == -1) {296 pmChipRead (chip, fits, NULL);297 return true;298 }299 300 if (view->cell >= chip->cells->n) {301 return false;302 }303 pmCell *cell = chip->cells->data[view->cell];304 305 if (view->readout == -1) {306 pmCellRead (cell, fits, NULL);307 return true;308 }309 310 // XXX pmReadoutRead, pmReadoutReadSegement disabled for now311 return false;312 313 # if (0)314 315 if (view->readout >= cell->readouts->n) {316 return false;317 }318 pmReadout *readout = cell->readouts->data[view->readout];319 320 if (view->nRows == 0) {321 pmReadoutRead (readout, fits, NULL);322 } else {323 pmReadoutReadSegment (readout, fits, view->nRows, view->iRows, NULL, NULL);324 }325 return true;326 # endif327 }328 329 // XXX image writes disabled for now330 # if (0)331 // given an already-opened fits file, write the components corresponding332 // to the specified view333 bool pmFPAviewWriteFitsImage (pmFPAview *view, psFits *fits)334 {335 336 pmFPA *fpa = view->fpa;337 338 if (view->chip == -1) {339 pmFPAWrite (fpa, fits, NULL, NULL);340 return true;341 }342 343 if (view->chip >= fpa->chips->n) {344 return false;345 }346 pmChip *chip = fpa->chips->data[view->chip];347 348 if (view->cell == -1) {349 pmChipWrite (chip, fits, NULL, NULL);350 return true;351 }352 353 if (view->cell >= chip->cells->n) {354 return false;355 }356 pmCell *cell = chip->cells->data[view->cell];357 358 if (view->readout == -1) {359 pmCellWrite (cell, fits, NULL, NULL);360 return true;361 }362 363 if (view->readout >= cell->readouts->n) {364 return false;365 }366 pmReadout *readout = cell->readouts->data[view->readout];367 368 if (view->nRows == 0) {369 pmReadoutWrite (readout, fits, NULL, NULL);370 } else {371 pmReadoutWriteSegment (readout, fits, view->nRows, view->iRows, NULL, NULL);372 }373 return true;374 }375 # endif
Note:
See TracChangeset
for help on using the changeset viewer.
