Changeset 14206
- Timestamp:
- Jul 13, 2007, 5:20:00 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/camera/pmFPAfileIO.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/camera/pmFPAfileIO.c
r13894 r14206 465 465 status = psFitsClose (file->fits); 466 466 file->fits = NULL; 467 file->phu = NULL;468 467 file->header = NULL; 469 468 file->state = PM_FPA_STATE_CLOSED; 469 file->wrote_phu = false; 470 470 break; 471 471 … … 664 664 case PM_FPA_FILE_HEADER: 665 665 case PM_FPA_FILE_FRINGE: 666 // XXX note that for CMF and PSF, we do not know yet if there is actually any data to667 // write out. this is because these types of output files have their data stored on the668 // readout->analysis metadata structure of another (existing) fpa669 666 case PM_FPA_FILE_CMF: 670 667 case PM_FPA_FILE_PSF: … … 691 688 692 689 // In some cases, we need to read the PHU after we've opened the file. This happens for 693 // the images supplied by the detrend database, which are only identified here ( above).690 // the images supplied by the detrend database, which are only identified here (pmConfigConvertFilename). 694 691 if (!pmFPAfileReadPHU (file, view, config)) { 695 692 psError (PS_ERR_IO, true, "error reading PHU for %s (%s) (%d:%d:%d)\n", file->filename, file->name, view->chip, view->cell, view->readout); … … 787 784 PS_ASSERT_PTR_NON_NULL(view, false); 788 785 786 if (file->wrote_phu) return true; 787 789 788 bool status = true; 790 789 switch (file->type) { … … 793 792 case PM_FPA_FILE_WEIGHT: 794 793 case PM_FPA_FILE_FRINGE: 795 if (file->mode == PM_FPA_MODE_WRITE) { 796 // Want to write out any potential blank 797 // XXX why do we need to construct a new fpa?? 798 pmFPA *fpa = pmFPAfileSuitableFPA(file, view, config); // FPA, ensuring it's ready to write a blank 799 800 switch (file->fileLevel) { 801 case PM_FPA_LEVEL_FPA: 802 if (file->fpa->wrote_phu) break; 803 status = pmFPAWrite(fpa, file->fits, NULL, true, false); 804 file->fpa->wrote_phu = true; 805 break; 806 case PM_FPA_LEVEL_CHIP: { 807 pmChip *chip = pmFPAviewThisChip(view, fpa); 808 if (chip->wrote_phu) break; 809 status = pmChipWrite(chip, file->fits, NULL, true, false); 810 chip->wrote_phu = true; 811 break; 812 } 813 case PM_FPA_LEVEL_CELL: { 814 pmCell *cell = pmFPAviewThisCell(view, fpa); 815 if (cell->wrote_phu) break; 816 status = pmCellWrite(cell, file->fits, NULL, true); 817 cell->wrote_phu = true; 818 break; 819 } 820 default: 821 psAbort("fileLevel not correctly set"); 822 break; 823 } 824 825 psFree(fpa); 826 } 794 status = pmFPAviewFitsWritePHU (view, file, config); 795 break; 796 case PM_FPA_FILE_CMF: 797 status = pmSource_CMF_WritePHU (view, file, config); 798 break; 799 case PM_FPA_FILE_PSF: 800 status = pmPSF_WritePHU (view, file, config); 801 break; 827 802 case PM_FPA_FILE_SX: 828 803 case PM_FPA_FILE_RAW: 829 804 case PM_FPA_FILE_OBJ: 830 805 case PM_FPA_FILE_CMP: 831 case PM_FPA_FILE_CMF:832 case PM_FPA_FILE_PSF:833 806 case PM_FPA_FILE_JPEG: 834 807 case PM_FPA_FILE_KAPA: … … 842 815 return false; 843 816 } 817 // XXX this is also being set in the individual functions. choose one or the other 818 file->wrote_phu = true; 844 819 return true; 845 820 }
Note:
See TracChangeset
for help on using the changeset viewer.
