IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 7247


Ignore:
Timestamp:
May 30, 2006, 3:59:22 PM (20 years ago)
Author:
jhoblitt
Message:

impliment -runs

Location:
trunk/ippTools/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/dettool.c

    r7243 r7247  
    44
    55#include <stdlib.h>
     6#include <metadatadb.h>
    67
    78#include "pxtools.h"
     
    910
    1011static bool defineMode(pxConfig *config);
     12static bool runsMode(pxConfig *config);
    1113static bool rawMode(pxConfig *config);
    1214static bool addprocMode(pxConfig *config);
     
    3133        case DETTOOL_MODE_DEFINE:
    3234            if (!defineMode(config)) {
     35                goto FAIL;
     36            }
     37            break;
     38        case DETTOOL_MODE_RUNS:
     39            if (!runsMode(config)) {
    3340                goto FAIL;
    3441            }
     
    163170    // print the new det_id
    164171    printf("%ld\n", det_id);
     172
     173    return true;
     174}
     175
     176static bool runsMode(pxConfig *config)
     177{
     178    PS_ASSERT_PTR_NON_NULL(config, false);
     179
     180//    psArray *runs = detRunSelectRowObjects(config->dbh, config->where, 0);
     181    // XXX fix the hard coding of the table name
     182    psArray *runs = psDBSelectRows(config->dbh, "detRun", config->where, 0);
     183    if (!runs) {
     184        psError(PS_ERR_UNKNOWN, false, "no detRun rows found");
     185        return false;
     186    }
     187
     188    // print imfile list
     189    psMetadata *output = psMetadataAlloc();
     190    for (long i = 0; i < psArrayLength(runs); i++) {
     191        psMetadata *run = runs->data[i];
     192        psMetadata *md = psMetadataAlloc();
     193        bool status = false;
     194        // we need to change "position" to "det_id"
     195        // lookup values
     196        psS32 det_id = psMetadataLookupS32(&status, run, "position");
     197        if (!status) {
     198            psError(PS_ERR_UNKNOWN, false,
     199                    "failed to lookup value for position");
     200            psFree(output);
     201            psFree(md);
     202            psFree(runs);
     203            return false;
     204        }
     205        psString det_type = psMetadataLookupStr(&status, run, "det_type");
     206        if (!status) {
     207            psError(PS_ERR_UNKNOWN, false,
     208                    "failed to lookup value for det_type");
     209            psFree(output);
     210            psFree(md);
     211            psFree(runs);
     212            return false;
     213        }
     214        // add values
     215        if (!psMetadataAddS32(md, PS_LIST_TAIL, "det_id", PS_META_DUPLICATE_OK,
     216                NULL, det_id)) {
     217            psError(PS_ERR_UNKNOWN, false, "failed to add item det_id");
     218            psFree(output);
     219            psFree(md);
     220            psFree(runs);
     221            return false;
     222        }
     223        if (!psMetadataAddStr(md, PS_LIST_TAIL, "det_type",
     224                    PS_META_DUPLICATE_OK, NULL, det_type)) {
     225            psError(PS_ERR_UNKNOWN, false, "failed to add item det_type");
     226            psFree(output);
     227            psFree(md);
     228            psFree(runs);
     229            return false;
     230        }
     231        psMetadataAddMetadata(
     232            output, PS_LIST_TAIL, "detRun", PS_META_DUPLICATE_OK, NULL, md
     233        );
     234    }
     235
     236    psString str = psMetadataConfigFormat(output);
     237    psFree(output);
     238    fprintf(stdout, "%s\n", str);
     239    psFree(str);
     240
     241    psFree(runs);
    165242
    166243    return true;
  • trunk/ippTools/src/dettool.h

    r7196 r7247  
    77    DETTOOL_MODE_NONE           = 0x0,
    88    DETTOOL_MODE_DEFINE,
     9    DETTOOL_MODE_RUNS,
    910    DETTOOL_MODE_RAW,
    1011    DETTOOL_MODE_ADDPROCESSED,
  • trunk/ippTools/src/dettoolConfig.c

    r7242 r7247  
    2121        exit(EXIT_FAILURE);
    2222    }
    23 
    24     // CLI options
    25     // modes
    26     psMetadata *modes = psMetadataAlloc();
    27     psMetadataAddStr(modes , PS_LIST_TAIL, "-define",  0,
    28         "create a new detrend run", NULL);
    29     psMetadataAddStr(modes , PS_LIST_TAIL, "-raw",  0,
    30         "list raw imfiles pending processing", NULL);
    31     psMetadataAddStr(modes , PS_LIST_TAIL, "-addprocessed",  0,
    32         "add a processed imfile", NULL);
    33     psMetadataAddStr(modes , PS_LIST_TAIL, "-processed",  0,
    34         "list processed imfiles", NULL);
    35     psMetadataAddStr(modes , PS_LIST_TAIL, "-addstacked",  0,
    36         "add a stacked imfile", NULL);
    37     psMetadataAddStr(modes , PS_LIST_TAIL, "-stacked",  0,
    38         "list stacked imfiles", NULL);
    3923
    4024    // -define
     
    4428    psMetadataAddStr(defineArgs, PS_LIST_TAIL, "-det_type",  0,
    4529        "define the type of detrend run", NULL);
     30
     31    // -runs
     32    psMetadata *runsArgs = psMetadataAlloc();
     33    psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-det_type",  0,
     34        "search for type of detrend run", NULL);
    4635
    4736    // -raw
     
    194183    }
    195184    PXTOOL_MODE("-raw",             DETTOOL_MODE_RAW,           rawArgs);
     185    PXTOOL_MODE("-runs",            DETTOOL_MODE_RUNS,          runsArgs);
    196186    PXTOOL_MODE("-addprocessed",    DETTOOL_MODE_ADDPROCESSED,  addprocArgs);
    197187    PXTOOL_MODE("-processed",       DETTOOL_MODE_PROCESSED,     procArgs);
     
    219209        psArgumentHelp(defineArgs);
    220210        psFree(defineArgs);
     211        fprintf (stdout, "-runs ");
     212        psArgumentHelp(runsArgs);
     213        psFree(runsArgs);
    221214        fprintf (stdout, "-raw ");
    222215        psArgumentHelp(rawArgs);
     
    247240        psFree(normalizedframeArgs);
    248241
    249         psFree(modes);
    250242        exit(EXIT_FAILURE);
    251243    }
    252244
    253     psFree(modes);
    254245    psFree(defineArgs);
     246    psFree(runsArgs);
    255247    psFree(rawArgs);
    256248    psFree(addprocArgs);
     
    279271
    280272    addWhereStr(det_id);
     273    addWhereStr(det_type);
    281274    addWhereStr(exp_id);
    282275    addWhereStr(class_id);
Note: See TracChangeset for help on using the changeset viewer.