IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20639


Ignore:
Timestamp:
Nov 10, 2008, 2:04:47 PM (17 years ago)
Author:
eugene
Message:

pmConfigCameraFrmatFromHeader returns camera name as well as format name

Location:
trunk/psModules/src
Files:
3 edited

Legend:

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

    r20400 r20639  
    783783          psMetadata *camera = NULL;
    784784          psString formatName = NULL;
    785           file->format = pmConfigCameraFormatFromHeader (&camera, &formatName, config, phu, true);
     785          psString cameraName = NULL;
     786          file->format = pmConfigCameraFormatFromHeader (&camera, &cameraName, &formatName, config, phu, true);
    786787          if (!file->format) {
    787788            psError(PS_ERR_IO, false, "Failed to read CCD format from %s\n", file->filename);
     
    800801          psFree(camera);
    801802          psFree(formatName);
     803          psFree(cameraName);
    802804
    803805          // XXX this is really dangerous...
     
    894896    if (!file->format) {
    895897        // determine the format (camera is already known); do not load the recipe
    896         file->format = pmConfigCameraFormatFromHeader (NULL, &file->formatName, config, phu, false);
     898        file->format = pmConfigCameraFormatFromHeader (NULL, NULL, &file->formatName, config, phu, false);
    897899        if (!file->format) {
    898900            psError(PS_ERR_IO, false, "Failed to read CCD format from %s\n", file->filename);
  • trunk/psModules/src/config/pmConfig.c

    r20552 r20639  
    10811081// camera.  If we are discovering the camera (config->camera == NULL), then we also load the
    10821082// recipe files for the camera.
    1083 psMetadata *pmConfigCameraFormatFromHeader(psMetadata **camera, psString *formatName, pmConfig *config,
    1084                                           const psMetadata *header, bool readRecipes)
     1083psMetadata *pmConfigCameraFormatFromHeader(psMetadata **camera, psString *cameraName, psString *formatName,
     1084                                           pmConfig *config, const psMetadata *header, bool readRecipes)
    10851085{
    10861086    PS_ASSERT_PTR_NON_NULL(config, NULL);
     
    10891089    bool status = false;                // error status
    10901090    psMetadata *format = NULL;          // The winning format
    1091     psString name = NULL;               // Name of the winning format
     1091    psString testFormatName = NULL;         // Name of the winning format
    10921092
    10931093    // If we don't know what sort of camera we have, we try all that we know
     
    11181118            assert(camerasItem->type == PS_DATA_METADATA); // It should be because we've read it in or deleted
    11191119            psMetadata *testCamera = camerasItem->data.md; // Camera to test against what we've got:
    1120             if (formatFromHeader(&status, &format, &name, testCamera, header, camerasItem->name)) {
     1120            if (formatFromHeader(&status, &format, &testFormatName, testCamera, header, camerasItem->name)) {
    11211121                config->camera = psMemIncrRefCounter(testCamera);
    11221122                config->cameraName = psStringCopy(camerasItem->name);
    1123                 config->formatName = name;
     1123                config->formatName = testFormatName;
    11241124                config->format = format;
    11251125                if (camera) {
     
    11271127                }
    11281128                if (formatName) {
    1129                     *formatName = psMemIncrRefCounter(name);    // view on value saved on config
     1129                    *formatName = psMemIncrRefCounter(testFormatName);    // view on value saved on config
     1130                }
     1131                if (cameraName) {
     1132                    *cameraName = psMemIncrRefCounter(config->cameraName);    // view on value saved on config
    11301133                }
    11311134            } else {
     
    11661169
    11671170    psMetadata *testCamera = NULL;
    1168     char *testName = NULL;
     1171    char *testCameraName = NULL;
    11691172
    11701173    psMetadata *cameras = psMetadataLookupMetadata (NULL, config->system, "CAMERAS");
     
    11731176    // try the FPA metaCamera
    11741177    if (!found) {
    1175         testName = NULL;
    1176         psStringAppend (&testName, "_%s-FPA", baseName);
    1177 
    1178         testCamera = psMetadataLookupMetadata (NULL, cameras, testName);
    1179         psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testName);
     1178        testCameraName = NULL;
     1179        psStringAppend (&testCameraName, "_%s-FPA", baseName);
     1180
     1181        testCamera = psMetadataLookupMetadata (NULL, cameras, testCameraName);
     1182        psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testCameraName);
    11801183
    11811184        bool status;
    1182         found = formatFromHeader(&status, &format, &name, testCamera, header, testName);
    1183         if (!found) psFree (testName);
     1185        found = formatFromHeader(&status, &format, &testFormatName, testCamera, header, testCameraName);
     1186        if (!found) psFree (testCameraName);
    11841187    }
    11851188
    11861189    // try the CHIP metaCamera
    11871190    if (!found) {
    1188         testName = NULL;
    1189         psStringAppend (&testName, "_%s-CHIP", baseName);
    1190 
    1191         testCamera = psMetadataLookupMetadata (NULL, cameras, testName);
    1192         psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testName);
     1191        testCameraName = NULL;
     1192        psStringAppend (&testCameraName, "_%s-CHIP", baseName);
     1193
     1194        testCamera = psMetadataLookupMetadata (NULL, cameras, testCameraName);
     1195        psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testCameraName);
    11931196
    11941197        bool status;
    1195         found = formatFromHeader(&status, &format, &name, testCamera, header, testName);
    1196         if (!found) psFree (testName);
     1198        found = formatFromHeader(&status, &format, &testFormatName, testCamera, header, testCameraName);
     1199        if (!found) psFree (testCameraName);
    11971200    }
    11981201
    11991202    // try the SKYCELL metaCamera
    12001203    if (!found) {
    1201         testName = NULL;
    1202         psStringAppend (&testName, "_%s-SKYCELL", baseName);
    1203 
    1204         testCamera = psMetadataLookupMetadata (NULL, cameras, testName);
    1205         psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testName);
     1204        testCameraName = NULL;
     1205        psStringAppend (&testCameraName, "_%s-SKYCELL", baseName);
     1206
     1207        testCamera = psMetadataLookupMetadata (NULL, cameras, testCameraName);
     1208        psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testCameraName);
    12061209
    12071210        bool status;
    1208         found = formatFromHeader(&status, &format, &name, testCamera, header, testName);
    1209         if (!found) psFree (testName);
     1211        found = formatFromHeader(&status, &format, &testFormatName, testCamera, header, testCameraName);
     1212        if (!found) psFree (testCameraName);
    12101213    }
    12111214
    12121215    // try the base name
    12131216    if (!found) {
    1214         testName = psMemIncrRefCounter (baseName);
    1215 
    1216         testCamera = psMetadataLookupMetadata (NULL, cameras, testName);
    1217         psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testName);
     1217        testCameraName = psMemIncrRefCounter (baseName);
     1218
     1219        testCamera = psMetadataLookupMetadata (NULL, cameras, testCameraName);
     1220        psAssert (testCamera, "missing %s in CAMERAS in complete metadata", testCameraName);
    12181221
    12191222        bool status;
    1220         found = formatFromHeader(&status, &format, &name, testCamera, header, testName);
     1223        found = formatFromHeader(&status, &format, &testFormatName, testCamera, header, testCameraName);
    12211224    }
    12221225
     
    12281231    }
    12291232
    1230     psFree (name); // winning format name (for metaCamera) returned by formatFromHeader
    1231 
    12321233    psFree (baseName);
    12331234    if (formatName) {
    1234         *formatName = testName;
     1235        *formatName = testFormatName;
    12351236    } else {
    1236         psFree (testName);
    1237     }
     1237        psFree (testFormatName);
     1238    }
     1239    if (cameraName) {
     1240        *cameraName = testCameraName;
     1241    } else {
     1242        psFree (testCameraName);
     1243    }
     1244
    12381245    if (camera) {
    12391246        *camera = psMemIncrRefCounter(testCamera);
  • trunk/psModules/src/config/pmConfig.h

    r18926 r20639  
    55 *  @author Eugene Magnier, IfA
    66 *
    7  *  @version $Revision: 1.41 $ $Name: not supported by cvs2svn $
    8  *  @date $Date: 2008-08-06 01:13:14 $
     7 *  @version $Revision: 1.42 $ $Name: not supported by cvs2svn $
     8 *  @date $Date: 2008-11-11 00:04:47 $
    99 *  Copyright 2005-2006 Institute for Astronomy, University of Hawaii
    1010 */
     
    117117psMetadata *pmConfigCameraFormatFromHeader(psMetadata **camera, // selected camera (or meta-camera)
    118118                                           psString *formatName, // selected format name
     119                                           psString *cameraName, // selected camera name
    119120                                           pmConfig *config, ///< The configuration
    120121                                           const psMetadata *header, ///< The FITS header
Note: See TracChangeset for help on using the changeset viewer.