IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 5, 2010, 9:33:17 PM (16 years ago)
Author:
eugene
Message:

support for compressed metadata config files; removed commented-out code in pmNonLinear.c; add functions to set file and data status in pmFPAfiles; do not fail in pmFPAfileIO on inactive internal files; S/N for low-sig sources is always positive; do not copy NULL pixels in pmSourceCopy

Location:
trunk/psModules/src/camera
Files:
3 edited

Legend:

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

    r15477 r29935  
    4949}
    5050
     51bool pmReadoutSetFileStatus(pmReadout *readout, bool status)
     52{
     53    PS_ASSERT_PTR_NON_NULL(readout, false);
     54
     55    readout->file_exists = status;
     56    return true;
     57}
     58
     59bool pmFPAviewSetFileStatus (pmFPA *fpa, const pmFPAview *view, bool status) {
     60
     61    PS_ASSERT_PTR_NON_NULL(fpa, false);
     62    PS_ASSERT_PTR_NON_NULL(view, false);
     63
     64    if (view->chip == -1) {
     65        bool set = pmFPASetFileStatus (fpa, status);
     66        return set;
     67    }
     68
     69    if (view->chip >= fpa->chips->n) {
     70        psError(PS_ERR_IO, true, "Requested chip == %d >= fpa->chips->n == %ld", view->chip, fpa->chips->n);
     71        return false;
     72    }
     73    pmChip *chip = fpa->chips->data[view->chip];
     74
     75    if (view->cell == -1) {
     76        bool set = pmChipSetFileStatus (chip, status);
     77        return set;
     78    }
     79
     80    if (view->cell >= chip->cells->n) {
     81        psError(PS_ERR_IO, true, "Requested cell == %d >= chip->cells->n == %ld", view->cell, chip->cells->n);
     82        return false;
     83    }
     84    pmCell *cell = chip->cells->data[view->cell];
     85
     86    if (view->readout == -1) {
     87        bool set = pmCellSetFileStatus (cell, status);
     88        return set;
     89    }
     90
     91    if (view->readout >= cell->readouts->n) {
     92        psError(PS_ERR_IO, true, "Requested readout == %d >= cell->readouds->n == %ld", view->readout, cell->readouts->n);
     93        return false;
     94    }
     95    pmReadout *readout = cell->readouts->data[view->readout];
     96
     97    bool set = pmReadoutSetFileStatus (readout, status);
     98    return set;
     99}
     100
    51101bool pmFPACheckFileStatus(const pmFPA *fpa)
    52102{
     
    125175    for (int i = 0; i < cell->readouts->n; i++) {
    126176        pmReadout *readout = cell->readouts->data[i];
    127         readout->data_exists = status;
    128     }
    129     return true;
     177        pmReadoutSetDataStatus(readout, status);
     178    }
     179    return true;
     180}
     181
     182bool pmReadoutSetDataStatus (pmReadout *readout, bool status)
     183{
     184    PS_ASSERT_PTR_NON_NULL(readout, false);
     185
     186    readout->data_exists = status;
     187    return true;
     188}
     189
     190bool pmFPAviewSetDataStatus (pmFPA *fpa, const pmFPAview *view, bool status) {
     191
     192    PS_ASSERT_PTR_NON_NULL(fpa, false);
     193    PS_ASSERT_PTR_NON_NULL(view, false);
     194
     195    if (view->chip == -1) {
     196        bool set = pmFPASetDataStatus (fpa, status);
     197        return set;
     198    }
     199
     200    if (view->chip >= fpa->chips->n) {
     201        psError(PS_ERR_IO, true, "Requested chip == %d >= fpa->chips->n == %ld", view->chip, fpa->chips->n);
     202        return false;
     203    }
     204    pmChip *chip = fpa->chips->data[view->chip];
     205
     206    if (view->cell == -1) {
     207        bool set = pmChipSetDataStatus (chip, status);
     208        return set;
     209    }
     210
     211    if (view->cell >= chip->cells->n) {
     212        psError(PS_ERR_IO, true, "Requested cell == %d >= chip->cells->n == %ld", view->cell, chip->cells->n);
     213        return false;
     214    }
     215    pmCell *cell = chip->cells->data[view->cell];
     216
     217    if (view->readout == -1) {
     218        bool set = pmCellSetDataStatus (cell, status);
     219        return set;
     220    }
     221
     222    if (view->readout >= cell->readouts->n) {
     223        psError(PS_ERR_IO, true, "Requested readout == %d >= cell->readouds->n == %ld", view->readout, cell->readouts->n);
     224        return false;
     225    }
     226    pmReadout *readout = cell->readouts->data[view->readout];
     227
     228    bool set = pmReadoutSetDataStatus (readout, status);
     229    return set;
    130230}
    131231
  • trunk/psModules/src/camera/pmFPAFlags.h

    r13190 r29935  
    3434                        );
    3535
     36bool pmReadoutSetFileStatus(pmReadout *readout, bool status);
     37
     38bool pmFPAviewSetFileStatus (pmFPA *fpa, const pmFPAview *view, bool status);
     39
    3640// Functions to check the file_exists flags
    3741
     
    6569                        );
    6670
     71bool pmReadoutSetDataStatus (pmReadout *readout, bool status);
     72
     73bool pmFPAviewSetDataStatus (pmFPA *fpa, const pmFPAview *view, bool status);
    6774
    6875// Functions the check the data_exists flags
  • trunk/psModules/src/camera/pmFPAfileIO.c

    r29833 r29935  
    135135    PS_ASSERT_PTR_NON_NULL(view, false);
    136136
    137     // an internal file should not be sent here (should not be left on config->files)
    138     PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
    139 
    140137    // skip the following states
    141138    if (file->state & PM_FPA_STATE_INACTIVE) {
     
    143140        return true;
    144141    }
     142
     143    // an active internal file should not be sent here (should not be left on config->files)
     144    PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
     145
    145146    if (file->mode != PM_FPA_MODE_READ) {
    146147        psTrace("psModules.camera", 6, "skip read for %s, mode is not READ", file->name);
     
    258259        return true;
    259260    }
     261
     262    // an active internal file should not be returned to here
     263    PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
     264
    260265    if (file->mode != PM_FPA_MODE_WRITE) {
    261266        psTrace("psModules.camera", 6, "skip create for non-write file %s", file->name);
    262267        return true;
    263268    }
    264 
    265     // an internal file should not be returned to here
    266     PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
    267269
    268270    // get the current level
     
    335337    }
    336338
     339    // an ACTIVE internal file should not be sent here
     340    PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
     341
    337342    if (file->mode != PM_FPA_MODE_WRITE) {
    338343        psTrace("psModules.camera", 6, "skip write for %s, mode is not WRITE", file->name);
    339344        return true;
    340     }
    341 
    342     // an internal file should not be returned to here
    343     if (file->mode == PM_FPA_MODE_INTERNAL) {
    344         psError(PS_ERR_IO, true, "File is mode PM_FPA_MODE_INTERNAL");
    345         return false;
    346345    }
    347346
     
    523522    PS_ASSERT_PTR_NON_NULL(view, false);
    524523
    525     // an internal file should not be sent here (should not be left on config->files)
    526     PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
    527 
    528524    // skip the following states
    529525    if (file->state & PM_FPA_STATE_INACTIVE) {
     
    531527        return true;
    532528    }
     529
    533530    if (file->state == PM_FPA_STATE_CLOSED) {
    534531        psTrace("psModules.camera", 6, "skip close for %s, files is closed", file->name);
    535532        return true;
    536533    }
     534
     535    // an active internal file should not be sent here (should not be left on config->files)
     536    PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
    537537
    538538    // is current level == open level?
     
    596596    PS_ASSERT_PTR_NON_NULL(view, false);
    597597
    598     // an internal file should not be sent here (should not be left on config->files)
    599     PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
    600 
    601598    if (file->state & PM_FPA_STATE_INACTIVE) {
    602599        psTrace("psModules.camera", 6, "skip free for %s, files is inactive", file->name);
    603600        return true;
    604601    }
     602
     603    // an active internal file should not be sent here (should not be left on config->files)
     604    PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
    605605
    606606    // get the current level
     
    746746    }
    747747
    748     // these are programming errors
     748    // an ACTIVE internal file should not be sent here
    749749    PS_ASSERT(file->mode != PM_FPA_MODE_NONE, false);
    750750    PS_ASSERT(file->mode != PM_FPA_MODE_INTERNAL, false);
Note: See TracChangeset for help on using the changeset viewer.