IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 7433


Ignore:
Timestamp:
Jun 8, 2006, 10:42:42 AM (20 years ago)
Author:
magnier
Message:

more strict errors for missing pmFPAfile elements, traces on state tests in pmFPAfileOpen, etc

File:
1 edited

Legend:

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

    r7408 r7433  
    2121#include "pmPSF_IO.h"
    2222#include "pmFPA_JPEG.h"
    23 #define WERROR 0                        // if true, warnings in this file are treated as errors
    2423
    2524static void pmFPAfileFree(pmFPAfile *file)
     
    2928    }
    3029
     30    psTrace ("pmFPAfileFree", 5, "freeing %s\n", file->name);
    3131    psFree (file->fpa);
    3232    psFree (file->readout);
     
    178178    file->fileDepth = depthNameToEnum(psMetadataLookupStr(&status, data, "FILE.DEPTH"));
    179179    if (file->fileDepth == PM_FPA_DEPTH_NONE) {
    180         psLogMsg (__func__, 3, "warning: FILE.DEPTH is not set for %s\n", name);
     180        psError(PS_ERR_IO, true, "FILE.DEPTH is not set for %s\n", name);
     181        return NULL;
    181182    }
    182183
    183184    file->dataDepth = depthNameToEnum(psMetadataLookupStr (&status, data, "DATA.DEPTH"));
    184185    if (file->dataDepth == PM_FPA_DEPTH_NONE) {
    185         psLogMsg (__func__, 3, "warning: DATA.DEPTH is not set for %s\n", name);
     186        psError(PS_ERR_IO, true, "DATA.DEPTH is not set for %s\n", name);
     187        return NULL;
    186188    }
    187189
     
    215217    }
    216218    if (file->type == PM_FPA_FILE_NONE) {
    217         psLogMsg (__func__, 3, "warning: FILE.TYPE is not defined for %s\n", name);
     219        psError(PS_ERR_IO, true, "FILE.TYPE is not defined for %s\n", name);
     220        return NULL;
    218221    }
    219222
     
    229232    }
    230233    if (file->mode == PM_FPA_MODE_NONE) {
    231         psLogMsg (__func__, 3, "warning: FILE.MODE is not defined for %s\n", name);
     234        psError(PS_ERR_IO, true, "FILE.MODE is not defined for %s\n", name);
     235        return NULL;
    232236    }
    233237
     
    242246        psMetadata *formats = psMetadataLookupMD(&status, camera, "FORMATS"); // List of formats
    243247        char *formatFile = psMetadataLookupStr (&status, formats, formatName);
     248        if (!formatFile) {
     249            psError(PS_ERR_IO, false, "format %s for %s not defined", formatName, name);
     250            psFree (file);
     251            return NULL;
     252        }
    244253        readConfig (&file->format, formatFile, formatName);
    245254    }
     
    281290
    282291    if (file->state & PM_FPA_STATE_INACTIVE) {
    283         psError(PS_ERR_IO, true, "Atempted to read an inactive file");
    284         return false;
     292        psTrace("pmFPAfile", 5, "skip open for %s, files is inactive", file->name);
     293        return true;
    285294    }
    286295
     
    372381
    373382    if (file->state & PM_FPA_STATE_INACTIVE) {
    374         psError(PS_ERR_IO, true, "Atempted to read an inactive file");
    375         return false;
     383        psTrace("pmFPAfile", 5, "skip read for %s, files is inactive", file->name);
     384        return true;
    376385    }
    377386
    378387    if (file->mode != PM_FPA_MODE_READ) {
    379         psError(PS_ERR_IO, true, "File isn't mode PM_FPA_MODE_READ");
    380         return false;
     388        psTrace("pmFPAfile", 5, "skip read for %s, mode is not READ", file->name);
     389        return true;
    381390    }
    382391
     
    387396    if (depth == file->fileDepth) {
    388397        if (!pmFPAfileOpen (file, view)) {
    389             psError(PS_ERR_IO, false, "Opening file");
     398            psError(PS_ERR_IO, false, "failed to open file %s", file->name);
    390399            return false;
    391400        }
     
    394403    // do we need to read this file?
    395404    if (depth != file->dataDepth) {
    396         #if WERROR
    397         psError(PS_ERR_IO, true, "Desired depth %s doesn't match dataDepth %s",
    398                 depthEnumToName(depth), depthEnumToName(file->dataDepth));
    399         return false;
    400         #else
    401 
    402         return true;
    403         #endif
    404 
     405        psTrace("pmFPAfile", 5, "skip reading of %s at this depth %s: dataDepth is %s",
     406                file->name, depthEnumToName(depth), depthEnumToName(file->dataDepth));
     407        return true;
    405408    }
    406409
     
    445448
    446449    if (file->state & PM_FPA_STATE_INACTIVE) {
    447         psError(PS_ERR_IO, true, "Atempted to write an inactive file");
    448         return false;
     450        psTrace("pmFPAfile", 5, "skip write for %s, files is inactive", file->name);
     451        return true;
    449452    }
    450453
    451454    if (file->mode != PM_FPA_MODE_WRITE) {
    452         psError(PS_ERR_IO, true, "File isn't mode PM_FPA_MODE_WRITE");
    453         return false;
     455        psTrace("pmFPAfile", 5, "skip write for %s, mode is not WRITE", file->name);
     456        return true;
    454457    }
    455458
     
    459462    // do we need to write this file?
    460463    if (depth != file->dataDepth) {
    461         #if WERROR
    462         psError(PS_ERR_IO, true, "Desired depth %s doesn't match dataDepth %s",
    463                 depthEnumToName(depth), depthEnumToName(file->dataDepth));
    464         return false;
    465         #else
    466 
    467         return true;
    468         #endif
    469 
     464        psTrace("pmFPAfile", 5, "skip writing of %s at this depth %s: dataDepth is %s",
     465                file->name, depthEnumToName(depth), depthEnumToName(file->dataDepth));
     466        return true;
    470467    }
    471468
     
    520517    PS_ASSERT_PTR_NON_NULL(view, false);
    521518
     519    // these are not error conditions; these are state tests
    522520    if (file->state & PM_FPA_STATE_INACTIVE) {
    523         psError(PS_ERR_IO, true, "Atempted to create an inactive file");
    524         return false;
     521        psTrace("pmFPAfile", 5, "skip create for inactive file %s", file->name);
     522        return true;
    525523    }
    526524    if (file->mode != PM_FPA_MODE_WRITE) {
    527         psError(PS_ERR_IO, true, "File isn't mode PM_FPA_MODE_WRITE");
    528         return false;
     525        psTrace("pmFPAfile", 5, "skip create for non-write file %s", file->name);
     526        return true;
    529527    }
    530528
     
    532530    pmFPAdepth depth = pmFPAviewDepth (view);
    533531
    534     // XXX is this a sufficient check to avoid creating elements?
     532    // don't create the file if the src FPA is not defined
    535533    if (file->src == NULL) {
    536         #if WERROR
    537         psError(PS_ERR_IO, true, "file->src is NULL");
    538         return false;
    539         #else
    540 
    541         return true;
    542         #endif
    543 
     534        psTrace("pmFPAfile", 5, "skip create for FPA without src FPA for %s", file->name);
     535        return true;
    544536    }
    545537
    546538    // do we need to write this file?
    547539    if (depth != file->dataDepth) {
    548         psError(PS_ERR_IO, true, "Desired depth %s doesn't match dataDepth %s",
    549                 depthEnumToName(depth), depthEnumToName(file->dataDepth));
    550         return false;
     540        psTrace("pmFPAfile", 5, "skip creation of %s at this depth %s: dataDepth is %s",
     541                file->name, depthEnumToName(depth), depthEnumToName(file->dataDepth));
     542        return true;
    551543    }
    552544
     
    555547        /* create a PHU for thie file, if it does not exist */
    556548        pmFPAfileCopyStructureView (file->fpa, file->src, file->format, file->xBin, file->yBin, view);
    557         psTrace ("pmFPAfile", 5, "created fpa data elements for %s (fpa: %p)\n", file->filename, file->fpa);
     549        psTrace ("pmFPAfile", 5, "created fpa data elements for %s (fpa: %p)\n", file->name, file->fpa);
    558550        break;
    559551
     
    568560
    569561    default:
    570         psError(PS_ERR_IO, true, "Unsupported type: %d", file->type);
     562        psError(PS_ERR_IO, true, "Unsupported type for %s: %d", file->name, file->type);
    571563        return false;
    572564    }
     
    580572
    581573    if (file->state & PM_FPA_STATE_INACTIVE) {
    582         psError(PS_ERR_IO, true, "Atempted to close an inactive file");
    583         return false;
     574        psTrace("pmFPAfile", 5, "skip close for %s, files is inactive", file->name);
     575        return true;
    584576    }
    585577    if (file->state == PM_FPA_STATE_CLOSED) {
     
    590582    pmFPAdepth depth = pmFPAviewDepth (view);
    591583    if (file->fileDepth != depth) {
    592         #if WERROR
    593         psError(PS_ERR_IO, true, "Desired depth %s doesn't match fileDepth %s",
    594                 depthEnumToName(depth), depthEnumToName(file->fileDepth));
    595         return false;
    596         #else
    597 
    598         return true;
    599         #endif
    600 
     584        psTrace("pmFPAfile", 5, "skip closing of %s at this depth %s: dataDepth is %s",
     585                file->name, depthEnumToName(depth), depthEnumToName(file->dataDepth));
     586        return true;
    601587    }
    602588
     
    683669        switch (place) {
    684670        case PM_FPA_BEFORE:
    685             if (file->mode == PM_FPA_MODE_READ && !pmFPAfileRead (file, view)) {
    686                 psError(PS_ERR_IO, false, "failed in FPA_BEFORE block for %s", file->name);
     671            if (!pmFPAfileRead (file, view)) {
     672                psError(PS_ERR_IO, false, "failed READ in FPA_BEFORE block for %s", file->name);
    687673                psFree(iter);
    688674                return false;
    689675            }
    690             if (file->mode == PM_FPA_MODE_WRITE && !pmFPAfileCreate(file, view)) {
    691                 psError(PS_ERR_IO, false, "failed in FPA_BEFORE block for %s", file->name);
     676            if (!pmFPAfileCreate(file, view)) {
     677                psError(PS_ERR_IO, false, "failed CREATE in FPA_BEFORE block for %s", file->name);
    692678                psFree(iter);
    693679                return false;
     
    695681            break;
    696682        case PM_FPA_AFTER:
    697             if (file->mode == PM_FPA_MODE_WRITE && !pmFPAfileWrite (file, view)) {
    698                 psError(PS_ERR_IO, false, "failed in FPA_AFTER block for %s", file->name);
     683            if (!pmFPAfileWrite (file, view)) {
     684                psError(PS_ERR_IO, false, "failed WRITE in FPA_AFTER block for %s", file->name);
    699685                psFree(iter);
    700686                return false;
    701687            }
    702688            if (!pmFPAfileClose(file, view)) {
    703                 psError(PS_ERR_IO, false, "failed in FPA_AFTER block for %s", file->name);
     689                psError(PS_ERR_IO, false, "failed CLOSE in FPA_AFTER block for %s", file->name);
    704690                psFree(iter);
    705691                return false;
Note: See TracChangeset for help on using the changeset viewer.