IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14108


Ignore:
Timestamp:
Jul 10, 2007, 2:18:03 PM (19 years ago)
Author:
jhoblitt
Message:

add difftool -revertdiffskyfile

Location:
trunk/ippTools
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/share/Makefile.am

    r14102 r14108  
    2727        difftool_skyfile.sql \
    2828        difftool_todiffskyfile.sql \
     29        difftool_revertdiffskyfile.sql \
    2930        regtool_pendingexp.sql \
    3031        regtool_pendingimfile.sql \
  • trunk/ippTools/src/difftool.c

    r13691 r14108  
    3838static bool adddiffskyfileMode(pxConfig *config);
    3939static bool diffskyfileMode(pxConfig *config);
     40static bool revertdiffskyfileMode(pxConfig *config);
    4041
    4142static bool setdiffRunState(pxConfig *config, const char *warp_id, const char *state);
     
    6667        MODECASE(DIFFTOOL_MODE_ADDDIFFSKYFILE,     adddiffskyfileMode);
    6768        MODECASE(DIFFTOOL_MODE_DIFFSKYFILE,        diffskyfileMode);
     69        MODECASE(DIFFTOOL_MODE_REVERTDIFFSKYFILE,  revertdiffskyfileMode);
    6870        default:
    6971            psAbort("invalid option (this should not happen)");
     
    521523    }
    522524
     525    // default values
     526    psS16 code = psMetadataLookupS16(&status, config->args, "-code");
     527    if (!status) {
     528        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -code");
     529        return false;
     530    }
     531
    523532    if (!psDBTransaction(config->dbh)) {
    524533        psError(PS_ERR_UNKNOWN, false, "database error");
     
    531540            path_base,
    532541            bg,
    533             bg_stdev
     542            bg_stdev,
     543            code
    534544        )) {
    535545        if (!psDBRollback(config->dbh)) {
     
    645655}
    646656
     657
     658static bool revertdiffskyfileMode(pxConfig *config)
     659{
     660    PS_ASSERT_PTR_NON_NULL(config, false);
     661
     662    psString query = pxDataGet("difftool_revertdiffskyfile.sql");
     663    if (!query) {
     664        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     665        return false;
     666    }
     667
     668    if (config->where) {
     669        psString whereClause = psDBGenerateWhereConditionSQL(config->where, "diffSkyfile");
     670        psStringAppend(&query, " AND %s", whereClause);
     671        psFree(whereClause);
     672    }
     673
     674    if (!p_psDBRunQuery(config->dbh, query)) {
     675        psError(PS_ERR_UNKNOWN, false, "database error");
     676        psFree(query);
     677        return false;
     678    }
     679    psFree(query);
     680
     681    if (psDBAffectedRows(config->dbh) < 1) {
     682        psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row");
     683        return false;
     684    }
     685
     686    return true;
     687}
     688
     689
    647690static bool setdiffRunState(pxConfig *config, const char *diff_id, const char *state)
    648691{
  • trunk/ippTools/src/difftool.h

    r12025 r14108  
    3232    DIFFTOOL_MODE_ADDDIFFSKYFILE,
    3333    DIFFTOOL_MODE_DIFFSKYFILE,
     34    DIFFTOOL_MODE_REVERTDIFFSKYFILE,
    3435} difftoolMode;
    3536
  • trunk/ippTools/src/difftoolConfig.c

    r13691 r14108  
    128128    psMetadataAddF64(adddiffskyfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,
    129129            "define exposure background mean stdev", NAN);
     130    psMetadataAddS16(adddiffskyfileArgs, PS_LIST_TAIL, "-code",  0,
     131            "set fault code", 0);
    130132
    131133    // -diffskyfile
     
    142144            "use the simple output format", false);
    143145
     146    // -revertdiffskyfile
     147    psMetadata *revertdiffskyfileArgs = psMetadataAlloc();
     148    psMetadataAddStr(revertdiffskyfileArgs, PS_LIST_TAIL, "-diff_id", 0,
     149            "define warp ID (required)", NULL);
     150    psMetadataAddS16(revertdiffskyfileArgs, PS_LIST_TAIL, "-code",  0,
     151            "search by fault code", 0);
     152
    144153    psFree(now);
    145154
     
    147156    psMetadata *modes = psMetadataAlloc();
    148157
    149     PXTOOL_ADD_MODE("-definerun",       "", DIFFTOOL_MODE_DEFINERUN,      definerunArgs);
    150     PXTOOL_ADD_MODE("-updaterun",       "",       DIFFTOOL_MODE_UPDATERUN,      updaterunArgs);
    151     PXTOOL_ADD_MODE("-addinputskyfile", "",  DIFFTOOL_MODE_ADDINPUTSKYFILE, addinputskyfileArgs);
     158    PXTOOL_ADD_MODE("-definerun",       "",     DIFFTOOL_MODE_DEFINERUN,      definerunArgs);
     159    PXTOOL_ADD_MODE("-updaterun",       "",     DIFFTOOL_MODE_UPDATERUN,      updaterunArgs);
     160    PXTOOL_ADD_MODE("-addinputskyfile", "",     DIFFTOOL_MODE_ADDINPUTSKYFILE, addinputskyfileArgs);
    152161    PXTOOL_ADD_MODE("-inputskyfile",    "",     DIFFTOOL_MODE_INPUTSKYFILE,    inputskyfileArgs);
    153     PXTOOL_ADD_MODE("-todiffskyfile",   "",    DIFFTOOL_MODE_TODIFFSKYFILE,   todiffskyfileArgs);
    154     PXTOOL_ADD_MODE("-adddiffskyfile",  "",   DIFFTOOL_MODE_ADDDIFFSKYFILE,  adddiffskyfileArgs);
    155     PXTOOL_ADD_MODE("-diffskyfile",     "",      DIFFTOOL_MODE_DIFFSKYFILE,     diffskyfileArgs);
     162    PXTOOL_ADD_MODE("-todiffskyfile",   "",     DIFFTOOL_MODE_TODIFFSKYFILE,   todiffskyfileArgs);
     163    PXTOOL_ADD_MODE("-adddiffskyfile",  "",     DIFFTOOL_MODE_ADDDIFFSKYFILE,  adddiffskyfileArgs);
     164    PXTOOL_ADD_MODE("-diffskyfile",     "",     DIFFTOOL_MODE_DIFFSKYFILE,     diffskyfileArgs);
     165    PXTOOL_ADD_MODE("-revertdiffskyfile","",    DIFFTOOL_MODE_REVERTDIFFSKYFILE,     revertdiffskyfileArgs);
    156166
    157167    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
     
    222232    addWhereStr(tess_id);
    223233
     234    // convert '-code' to 'fault'
     235    {
     236        psS16 fault = 0;
     237        bool status = false;
     238        if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) {
     239            if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) {
     240                psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
     241                psFree(config);
     242                return NULL;
     243            }
     244        }
     245    }
     246
    224247    if (config->where->list->n < 1) {
    225248        psFree(config->where);
Note: See TracChangeset for help on using the changeset viewer.