IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 27982


Ignore:
Timestamp:
May 17, 2010, 3:53:40 PM (16 years ago)
Author:
Paul Price
Message:

Adding magictool -exposure to get camProcessedExp.path_base from magic_id.

Location:
trunk/ippTools
Files:
1 added
5 edited

Legend:

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

    r27975 r27982  
    198198     magictool_rawimfile.sql \
    199199     magictool_revertnode.sql \
     200     magictool_exposure.sql \
    200201     magicdstool_clearstatefaults.sql \
    201202     magicdstool_completed_runs.sql \
  • trunk/ippTools/share/magictool_inputs.sql

    r24213 r27982  
    22SELECT
    33    magicRun.magic_id,
     4    magicRun.exp_id,
    45    magicRun.inverse, -- Using the inverse subtraction?
    56    magicRun.diff_id,
     
    1011    magicInputs.warp_path_base, -- path_base for the template warp (if any)
    1112    magicInputs.stack_path_base, -- path_base for the template stack (if any)
    12     magicInputs.magic_path_base -- path_base for child nodes (if any)
     13    magicInputs.magic_path_base, -- path_base for child nodes (if any)
     14    magicInputs.cam_path_base -- path_base for the input camera
    1315FROM magicRun
    1416JOIN (
  • trunk/ippTools/src/magictool.c

    r27274 r27982  
    4848static bool maskMode(pxConfig *config);
    4949static bool censorrunMode(pxConfig *config);
     50static bool exposureMode(pxConfig *config);
    5051
    5152static bool setmagicRunState(pxConfig *config, psS64 magic_id, const char *state);
     
    8788        MODECASE(MAGICTOOL_MODE_MASK,                maskMode);
    8889        MODECASE(MAGICTOOL_MODE_CENSORRUN,           censorrunMode);
     90        MODECASE(MAGICTOOL_MODE_EXPOSURE,            exposureMode);
    8991        default:
    9092            psAbort("invalid option (this should not happen)");
     
    15141516    return true;
    15151517}
     1518
     1519
     1520static bool exposureMode(pxConfig *config)
     1521{
     1522    PS_ASSERT_PTR_NON_NULL(config, false);
     1523
     1524    psMetadata *where = psMetadataAlloc();
     1525    PXOPT_COPY_S64(config->args, where, "-magic_id", "magicRun.magic_id", "==");
     1526    PXOPT_COPY_BOOL(config->args, where, "-inverse", "magicRun.inverse", "==");
     1527
     1528    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1529
     1530    psString query = pxDataGet("magictool_exposure.sql");
     1531    if (!query) {
     1532        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1533        return false;
     1534    }
     1535
     1536    psString whereClause = psStringCopy(""); // WHERE restrictions
     1537    if (psListLength(where->list)) {
     1538        psString clause = psDBGenerateWhereConditionSQL(where, NULL);
     1539        psStringAppend(&whereClause, " AND %s", clause);
     1540        psFree(clause);
     1541    }
     1542    psFree(where);
     1543
     1544    if (!p_psDBRunQueryF(config->dbh, query, whereClause, whereClause)) {
     1545        psError(PS_ERR_UNKNOWN, false, "database error");
     1546        psFree(query);
     1547        return false;
     1548    }
     1549    psFree(query);
     1550
     1551    psArray *output = p_psDBFetchResult(config->dbh);
     1552    if (!output) {
     1553        psErrorCode err = psErrorCodeLast();
     1554        switch (err) {
     1555            case PS_ERR_DB_CLIENT:
     1556                psError(PXTOOLS_ERR_SYS, false, "database error");
     1557                break;
     1558            case PS_ERR_DB_SERVER:
     1559                psError(PXTOOLS_ERR_PROG, false, "database error");
     1560                break;
     1561            default:
     1562                psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1563                break;
     1564        }
     1565        return false;
     1566    }
     1567    if (!psArrayLength(output)) {
     1568        psTrace("magictool", PS_LOG_INFO, "no rows found");
     1569        psFree(output);
     1570        return true;
     1571    }
     1572
     1573    if (!ippdbPrintMetadatas(stdout, output, "magicMask", !simple)) {
     1574        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1575        psFree(output);
     1576        return false;
     1577    }
     1578    psFree(output);
     1579
     1580    return true;
     1581}
  • trunk/ippTools/src/magictool.h

    r24883 r27982  
    4242    MAGICTOOL_MODE_MASK,
    4343    MAGICTOOL_MODE_CENSORRUN,
     44    MAGICTOOL_MODE_EXPOSURE,
    4445} MAGICtoolMode;
    4546
  • trunk/ippTools/src/magictoolConfig.c

    r27274 r27982  
    168168    psMetadataAddS64(censorrunArgs, PS_LIST_TAIL, "-exp_id", 0, "define exposure ID", 0);
    169169    psMetadataAddStr(censorrunArgs, PS_LIST_TAIL, "-label",       0, "define label", NULL);
     170
     171    // -exposure
     172    psMetadata *exposureArgs = psMetadataAlloc();
     173    psMetadataAddS64(exposureArgs, PS_LIST_TAIL, "-magic_id", 0, "define magictool ID", 0);
     174    psMetadataAddBool(exposureArgs, PS_LIST_TAIL, "-inverse", 0, "select the inverse subtraction?", false);
     175    psMetadataAddBool(exposureArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
    170176
    171177    psFree(now);
     
    191197    PXOPT_ADD_MODE("-mask",                "", MAGICTOOL_MODE_MASK,                maskArgs);
    192198    PXOPT_ADD_MODE("-censorrun",           "", MAGICTOOL_MODE_CENSORRUN,           censorrunArgs);
     199    PXOPT_ADD_MODE("-exposure",            "", MAGICTOOL_MODE_EXPOSURE,            exposureArgs);
    193200
    194201    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note: See TracChangeset for help on using the changeset viewer.