IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 30206


Ignore:
Timestamp:
Jan 6, 2011, 11:32:32 AM (15 years ago)
Author:
bills
Message:

added mode pztool -updatenewexp

pztool -updatenewexp -set_state drop -exp_id 688

Location:
trunk/ippTools/src
Files:
3 edited

Legend:

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

    r30049 r30206  
    4747static bool advanceMode(pxConfig *config);
    4848
     49static bool updatenewexpMode(pxConfig *config);
     50
    4951// static bool copydoneCompleteExp(pxConfig *config);
    5052static psArray *pzGetPendingCameras(pxConfig *config);
     
    8385        MODECASE(PZTOOL_MODE_TOADVANCE, toadvanceMode);
    8486        MODECASE(PZTOOL_MODE_ADVANCE, advanceMode);
     87        MODECASE(PZTOOL_MODE_UPDATENEWEXP, updatenewexpMode);
    8588        default:
    8689            psAbort("invalid option (this should not happen)");
     
    905908}
    906909
     910static bool updatenewexpMode(pxConfig *config)
     911{
     912    PS_ASSERT_PTR_NON_NULL(config, false);
     913
     914    psMetadata *where = psMetadataAlloc();
     915    PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "==");
     916    PXOPT_COPY_STR(config->args, where,  "-exp_name", "tmp_exp_name", "==");
     917
     918    PXOPT_LOOKUP_STR(new_state, config->args, "-set_state", true, false);
     919
     920    if (strcmp(new_state, "drop") && strcmp(new_state, "run") && strcmp(new_state, "wait")) {
     921        psError(PXTOOLS_ERR_ARGUMENTS, true, "%s is not a valid value for -set_state", new_state);
     922        psFree(where);
     923        return false;
     924    }
     925
     926    if (psListLength(where->list) < 1) {
     927        psFree(where);
     928        psError(PXTOOLS_ERR_CONFIG, false, "-exp_name or -exp_id is required");
     929        return false;
     930    }
     931
     932    psString query = NULL;
     933    psStringAppend(&query, "UPDATE newExp SET state = '%s'", new_state);
     934
     935    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     936    psStringAppend(&query, "\nWHERE %s", whereClause);
     937
     938    psFree(whereClause);
     939    psFree(where);
     940
     941    if (!p_psDBRunQuery(config->dbh, query)) {
     942        psError(PS_ERR_UNKNOWN, false, "database error");
     943        psFree(query);
     944        return false;
     945    }
     946    psFree(query);
     947
     948    return true;
     949}
     950
    907951
    908952#if 0
  • trunk/ippTools/src/pztool.h

    r23497 r30206  
    3636    PZTOOL_MODE_CLEARCOMMONFAULTS,
    3737    PZTOOL_MODE_TOADVANCE,
    38     PZTOOL_MODE_ADVANCE
     38    PZTOOL_MODE_ADVANCE,
     39    PZTOOL_MODE_UPDATENEWEXP,
    3940} pztoolMode;
    4041
  • trunk/ippTools/src/pztoolConfig.c

    r27082 r30206  
    154154    psMetadataAddStr(advanceArgs, PS_LIST_TAIL, "-label",  0,     "define the label for the chip stage", NULL);
    155155
     156    // -updatenewexp
     157    psMetadata *updatenewexpArgs = psMetadataAlloc();
     158    psMetadataAddS64(updatenewexpArgs, PS_LIST_TAIL, "-exp_id",   0,            "search by exposure ID", 0);
     159
     160    psMetadataAddStr(updatenewexpArgs, PS_LIST_TAIL, "-exp_name", 0,            "define exposure ID", NULL);
     161    psMetadataAddStr(updatenewexpArgs, PS_LIST_TAIL, "-set_state", 0,            "define new state (required)", NULL);
     162
    156163    psMetadata *argSets = psMetadataAlloc();
    157164    psMetadata *modes = psMetadataAlloc();
     
    169176    PXOPT_ADD_MODE("-toadvance",          "", PZTOOL_MODE_TOADVANCE,    toadvanceArgs);
    170177    PXOPT_ADD_MODE("-advance",          "", PZTOOL_MODE_ADVANCE,    advanceArgs);
     178    PXOPT_ADD_MODE("-updatenewexp",    "", PZTOOL_MODE_UPDATENEWEXP,updatenewexpArgs);
    171179
    172180    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note: See TracChangeset for help on using the changeset viewer.