IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 27, 2006, 2:50:53 PM (20 years ago)
Author:
magnier
Message:

added pmFPA/Chip/CellWrite when opening a new file.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/camera/pmFPAfileIO.c

    r7632 r7710  
    112112        // this is never true for the output images, which are constructed later
    113113
    114         if (file->mode != PM_FPA_MODE_READ) {
    115             break;
    116         }
    117 
    118         pmChip *chip;
    119         pmCell *cell;
    120         bool addSource = false;
    121         switch (file->fileLevel) {
    122         case PM_FPA_LEVEL_FPA:
    123             addSource = !file->fpa->hdu;
    124             break;
    125         case PM_FPA_LEVEL_CHIP:
    126             chip = pmFPAviewThisChip(view, file->fpa);
    127             if (!chip) {
    128                 psError (PS_ERR_IO, true, "inconsistent file/fpa: fileLevel is CHIP, view is FPA");
    129                 return false;
    130             }
    131             addSource = !chip->hdu;
    132             break;
    133         case PM_FPA_LEVEL_CELL:
    134             cell = pmFPAviewThisCell(view, file->fpa);
    135             if (!cell) {
    136                 psError (PS_ERR_IO, true, "inconsistent file/fpa: fileLevel is CELL, view is FPA");
    137                 return false;
    138             }
    139             addSource = !cell->hdu;
    140             break;
    141         default:
    142             psAbort ("pmFPAfileIO", "fileLevel not correctly set");
    143             break;
    144         }
    145 
    146         if (addSource) {
    147             psMetadata *phu = psFitsReadHeader (NULL, file->fits);
    148             if (!file->format) {
    149                 file->format = pmConfigCameraFormatFromHeader (config, phu);
     114        if (file->mode == PM_FPA_MODE_READ) {
     115            pmChip *chip;
     116            pmCell *cell;
     117            bool addSource = false;
     118            switch (file->fileLevel) {
     119            case PM_FPA_LEVEL_FPA:
     120                addSource = !file->fpa->hdu;
     121                break;
     122            case PM_FPA_LEVEL_CHIP:
     123                chip = pmFPAviewThisChip(view, file->fpa);
     124                if (!chip) {
     125                    psError (PS_ERR_IO, true, "inconsistent file/fpa: fileLevel is CHIP, view is FPA");
     126                    return false;
     127                }
     128                addSource = !chip->hdu;
     129                break;
     130            case PM_FPA_LEVEL_CELL:
     131                cell = pmFPAviewThisCell(view, file->fpa);
     132                if (!cell) {
     133                    psError (PS_ERR_IO, true, "inconsistent file/fpa: fileLevel is CELL, view is FPA");
     134                    return false;
     135                }
     136                addSource = !cell->hdu;
     137                break;
     138            default:
     139                psAbort ("pmFPAfileIO", "fileLevel not correctly set");
     140                break;
     141            }
     142
     143            if (addSource) {
     144                psMetadata *phu = psFitsReadHeader (NULL, file->fits);
    150145                if (!file->format) {
    151                     psError(PS_ERR_IO, false, "Failed to read CCD format from %s\n", file->filename);
    152                     psFree(phu);
    153                     return NULL;
     146                    file->format = pmConfigCameraFormatFromHeader (config, phu);
     147                    if (!file->format) {
     148                        psError(PS_ERR_IO, false, "Failed to read CCD format from %s\n", file->filename);
     149                        psFree(phu);
     150                        return NULL;
     151                    }
     152                } else {
     153                    pmConfigValidateCameraFormat (file->format, phu);
    154154                }
    155             } else {
    156                 pmConfigValidateCameraFormat (file->format, phu);
    157             }
    158             pmFPAview *thisView = pmFPAAddSourceFromHeader (file->fpa, phu, file->format);
    159             psFree (thisView);
    160             psFree (phu);
    161             // XXX we can check the output view to be sure it corresponds to our current view
     155                pmFPAview *thisView = pmFPAAddSourceFromHeader (file->fpa, phu, file->format);
     156                psFree (thisView);
     157                psFree (phu);
     158                // XXX we can check the output view to be sure it corresponds to our current view
     159            }
     160        }
     161        if (file->mode == PM_FPA_MODE_WRITE) {
     162            pmChip *chip;
     163            pmCell *cell;
     164            switch (file->fileLevel) {
     165            case PM_FPA_LEVEL_FPA:
     166                pmFPAWrite (file->fpa, file->fits, NULL, false, false);
     167                break;
     168            case PM_FPA_LEVEL_CHIP:
     169                chip = pmFPAviewThisChip(view, file->fpa);
     170                pmChipWrite (chip, file->fits, NULL, false, false);
     171                break;
     172            case PM_FPA_LEVEL_CELL:
     173                cell = pmFPAviewThisCell(view, file->fpa);
     174                pmCellWrite (cell, file->fits, NULL, false, false);
     175                break;
     176            default:
     177                psAbort ("pmFPAfileIO", "fileLevel not correctly set");
     178                break;
     179            }
    162180        }
    163181        break;
     
    410428    case PM_FPA_FILE_IMAGE:
    411429
    412         /* create a PHU for thie file, if it does not exist */
    413         pmFPAfileCopyStructureView (file->fpa, file->src, file->format, file->xBin, file->yBin, view);
    414         // psTrace ("pmFPAfile", 5, "created fpa data elements for %s (fpa: %p)\n", file->name, file->fpa);
     430        // create FPA structure component based on view
     431        pmFPAAddSourceFromView (file->fpa, view, file->format);
     432        psTrace ("pmFPAfile", 5, "created fpa data elements for %s (fpa: %p)\n", file->name, file->fpa);
    415433        break;
    416434
Note: See TracChangeset for help on using the changeset viewer.