IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 26, 2010, 6:58:24 AM (15 years ago)
Author:
eugene
Message:

burntool_state is now an int16, check for INT16_MAX not NAN

File:
1 edited

Legend:

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

    r30060 r30179  
    7474        // imfile
    7575        MODECASE(REGTOOL_MODE_PENDINGIMFILE,         pendingimfileMode);
    76         MODECASE(REGTOOL_MODE_CHECKBURNTOOLIMFILE,   checkburntoolimfileMode);
    77         MODECASE(REGTOOL_MODE_PENDINGBURNTOOLIMFILE, pendingburntoolimfileMode);
     76        MODECASE(REGTOOL_MODE_CHECKBURNTOOLIMFILE,   checkburntoolimfileMode);
     77        MODECASE(REGTOOL_MODE_PENDINGBURNTOOLIMFILE, pendingburntoolimfileMode);
    7878        MODECASE(REGTOOL_MODE_ADDPROCESSEDIMFILE,    addprocessedimfileMode);
    7979        MODECASE(REGTOOL_MODE_PROCESSEDIMFILE,       processedimfileMode);
     
    201201  psFree(query);
    202202  query = rep;
    203  
     203
    204204  psStringSubstitute(&query,exp_name,"@EXP_NAME@");
    205205  psStringSubstitute(&query,class_id,"@CLASS_ID@");
     
    215215  }
    216216  psFree(query);
    217  
     217
    218218  psArray *output = p_psDBFetchResult(config->dbh);
    219219  if (!output) {
     
    227227      psError(PXTOOLS_ERR_PROG, false, "unknown error");
    228228    }
    229    
     229
    230230    return false;
    231231  }
     
    243243
    244244    if ((psMetadataLookupS32(NULL,row,"is_downloaded") != 1)||
    245         (psMetadataLookupS32(NULL,row,"is_registered") != 1)) {
     245        (psMetadataLookupS32(NULL,row,"is_registered") != 1)) {
    246246      ok_to_burn = false;
    247247    }
     
    255255      already_burned = false;
    256256    }
    257    
     257
    258258    if (previous_uri) {
    259259      psMetadataAddStr(row,PS_LIST_TAIL,"previous_uri",PS_META_REPLACE,"",previous_uri);
     
    264264    previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri"));
    265265  }
    266  
     266
    267267  // negate simple so the default is true
    268268  if (!ippdbPrintMetadatas(stdout, output, "regBurntoolImfile", !simple)) {
     
    271271    return false;
    272272  }
    273  
     273
    274274  psFree(output);
    275  
     275
    276276
    277277  return(true);
    278  
     278
    279279}
    280280
     
    297297  psFree(query);
    298298  query = rep;
    299  
     299
    300300  psStringSubstitute(&query,date,"@DATE@");
    301301
    302   //  fprintf(stderr,"%s",query);
     302  // fprintf(stderr,"%s",query);
    303303
    304304  if (!p_psDBRunQuery(config->dbh, query)) {
     
    309309  }
    310310  psFree(query);
    311  
     311
    312312  psArray *output = p_psDBFetchResult(config->dbh);
    313313  if (!output) {
     
    321321      psError(PXTOOLS_ERR_PROG, false, "unknown error");
    322322    }
    323    
     323
    324324    return false;
    325325  }
     326
     327  // fprintf (stderr, "found %ld rows\n", output->n);
    326328  if (!psArrayLength(output)) {
    327329    psTrace("regtool", PS_LOG_INFO, "no rows found");
     
    337339  psString this_class_id = NULL;
    338340  psArray *results = psArrayAllocEmpty(60); // List of suggested imfiles to burntool.
    339  
     341
    340342  for (long i = 0; i < output->n; i++) {
    341343    psMetadata *row = output->data[i];
     
    356358    if (previous_class_id) {
    357359      if (strcmp(this_class_id,previous_class_id) != 0) {
    358         ok_to_burn = true;
    359         already_burned = true;
    360         previous_uri = NULL;
     360        ok_to_burn = true;
     361        already_burned = true;
     362        previous_uri = NULL;
    361363      }
    362364    }
     
    364366    // Write the URIs as well.
    365367    this_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Duplicate, but helpful for my debugging.
    366     psMetadataAddStr(row,PS_LIST_TAIL,"this_uri",PS_META_REPLACE,"",this_uri); 
     368    psMetadataAddStr(row,PS_LIST_TAIL,"this_uri",PS_META_REPLACE,"",this_uri);
    367369    if (previous_uri) {
    368370      psMetadataAddStr(row,PS_LIST_TAIL,"previous_uri",PS_META_REPLACE,"",previous_uri);
     
    372374    // Convert bits of the SQL query into booleans describing the data state
    373375    if ((psMetadataLookupS32(NULL,row,"is_downloaded") != 1)||
    374         (psMetadataLookupS32(NULL,row,"is_registered") != 1)) {
    375       //      printf("I claim this isn't downloaded or registered? %s %s\n",this_uri,this_class_id);
    376       ok_to_burn = false;
     376        (psMetadataLookupS32(NULL,row,"is_registered") != 1)) {
     377        // printf("I claim this isn't downloaded or registered? %s %s\n",this_uri,this_class_id);
     378        ok_to_burn = false;
    377379    }
    378380    if (already_burned == false) {
    379       //      printf("already_burned looks false %s %s\n",this_uri,this_class_id);
    380       ok_to_burn = false;
     381        // printf("already_burned looks false %s %s\n",this_uri,this_class_id);
     382        ok_to_burn = false;
    381383    }
    382384    if (abs(psMetadataLookupS32(NULL,row,"burntool_state")) == valid_burntool) {
     
    391393    // Check the uri for this exposure
    392394    if (!this_uri) {
    393         ok_to_burn = false;
    394         already_burned = false;
    395 
    396         // Save this round for next round.
    397         psFree(previous_class_id);
    398         psFree(previous_uri);
    399         previous_class_id = psStringCopy(psMetadataLookupStr(NULL,row,"tmp_class_id"));
    400         psStringSubstitute(&previous_class_id,"XY","ota");
    401         previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.       
    402         continue;
    403     }     
    404 
    405     //    printf("STATUS: %s %s %s %s (%d %d) %d %d %d\n",this_uri,previous_uri,this_class_id,previous_class_id,ok_to_burn,already_burned,psMetadataLookupS32(NULL,row,"burntool_state"),psMetadataLookupS32(NULL,row,"is_registered"),psMetadataLookupS32(NULL,row,"is_downloaded"));
    406 
    407     // If the state of this imfile is not "pending_burntool" then we can't burn it. 
     395        ok_to_burn = false;
     396        already_burned = false;
     397
     398        // Save this round for next round.
     399        psFree(previous_class_id);
     400        psFree(previous_uri);
     401        previous_class_id = psStringCopy(psMetadataLookupStr(NULL,row,"tmp_class_id"));
     402        psStringSubstitute(&previous_class_id,"XY","ota");
     403        previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.
     404        continue;
     405    }
     406
     407    // printf("STATUS: %s %s %s %s (%d %d) %d %d %d\n",this_uri,previous_uri,this_class_id,previous_class_id,ok_to_burn,already_burned,psMetadataLookupS32(NULL,row,"burntool_state"),psMetadataLookupS32(NULL,row,"is_registered"),psMetadataLookupS32(NULL,row,"is_downloaded"));
     408
     409    // If the state of this imfile is not "pending_burntool" then we can't burn it.
    408410    if (!ignore_state) {
    409411      psString imfile_state = psMetadataLookupStr(NULL,row,"imfile_state");
    410412
    411413      if (!imfile_state) { // imfile state is NULL, so we probably aren't registered.
    412         ok_to_burn = false;
    413 
    414         // Save this round for next round.
    415         psFree(previous_class_id);
    416         psFree(previous_uri);
    417         previous_class_id = psStringCopy(psMetadataLookupStr(NULL,row,"tmp_class_id"));
    418         psStringSubstitute(&previous_class_id,"XY","ota");
    419         previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.       
    420         continue;
     414        ok_to_burn = false;
     415
     416        // Save this round for next round.
     417        psFree(previous_class_id);
     418        psFree(previous_uri);
     419        previous_class_id = psStringCopy(psMetadataLookupStr(NULL,row,"tmp_class_id"));
     420        psStringSubstitute(&previous_class_id,"XY","ota");
     421        previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.
     422        continue;
    421423      }
    422       if (strcmp("pending_burntool",imfile_state) != 0) { // Probably the state is full, do not twiddle states 
    423         // Save this round for next round.
    424         psFree(previous_class_id);
    425         psFree(previous_uri);
    426         previous_class_id = psStringCopy(psMetadataLookupStr(NULL,row,"tmp_class_id"));
    427         psStringSubstitute(&previous_class_id,"XY","ota");
    428         previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.       
    429         continue;
     424      if (strcmp("pending_burntool",imfile_state) != 0) { // Probably the state is full, do not twiddle states
     425        // Save this round for next round.
     426        psFree(previous_class_id);
     427        psFree(previous_uri);
     428        previous_class_id = psStringCopy(psMetadataLookupStr(NULL,row,"tmp_class_id"));
     429        psStringSubstitute(&previous_class_id,"XY","ota");
     430        previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.
     431        continue;
    430432      }
    431433    }
    432    
     434
    433435    // Determine if we've already suggested an entry for this ota, and if not, copy this
    434436    // suggestion into our output result list.
     
    439441      previous_class_id = psStringCopy(psMetadataLookupStr(NULL,row,"tmp_class_id"));
    440442      psStringSubstitute(&previous_class_id,"XY","ota");
    441       previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.       
     443      previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.
    442444      continue;
    443445    }
     
    450452    previous_class_id = psStringCopy(psMetadataLookupStr(NULL,row,"tmp_class_id"));
    451453    psStringSubstitute(&previous_class_id,"XY","ota");
    452     previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.         
    453   }
    454  
     454    previous_uri = psStringCopy(psMetadataLookupStr(NULL,row,"uri")); // Save for next round.
     455  }
     456
    455457  // negate simple so the default is true
    456458  if (!ippdbPrintMetadatas(stdout, results, "regPendingBurntoolImfile", !simple)) {
     
    460462    return false;
    461463  }
    462  
     464
    463465  psFree(output);
    464466  psFree(results);
    465  
     467
    466468
    467469  return(true);
    468  
    469 }
    470 
    471      
     470
     471}
     472
     473
    472474
    473475static bool addprocessedimfileMode(pxConfig *config)
     
    545547    PXOPT_LOOKUP_STR(md5sum, config->args, "-md5sum", false, false);
    546548    PXOPT_LOOKUP_BOOL(video_cells, config->args, "-video_cells", false);
    547    
     549
    548550    PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
    549551    PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false);
     
    618620        bytes,
    619621        md5sum,
    620         video_cells,
     622        video_cells,
    621623        0   // burntool_state
    622624    )) {
     
    806808    PXOPT_LOOKUP_STR(set_state, config->args, "-set_state", false, false);
    807809
    808     if ((fault == INT16_MAX) && !isfinite(burntool_state) && !(set_state)) {
     810    if ((fault == INT16_MAX) && (burntool_state == INT16_MAX) && !set_state) {
    809811        psError(PS_ERR_UNKNOWN, false, "one of -fault or -burntool_state or -set_state must be selected");
    810812        return false;
    811813    }
    812     if ((fault != INT16_MAX) && isfinite(burntool_state)) {
     814    if ((fault != INT16_MAX) && (burntool_state != INT16_MAX)) {
    813815        psError(PS_ERR_UNKNOWN, false, "only one of -fault or -burntool_state must be selected");
    814816        return false;
     
    13121314    if (!pxchipQueueByExpTag(config,
    13131315                exp_id,
    1314                              chip_workdir,
     1316                             chip_workdir,
    13151317                label,
    1316                              data_group,
    1317                              dist_group,
     1318                             data_group,
     1319                             dist_group,
    13181320                reduction,
    13191321                NULL,       // expgroup
Note: See TracChangeset for help on using the changeset viewer.