Changeset 17171
- Timestamp:
- Mar 28, 2008, 11:17:03 AM (18 years ago)
- Location:
- trunk/ippTools/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/camtool.c
r17142 r17171 28 28 #include "pxtools.h" 29 29 #include "pxwarp.h" 30 #include "pxcam.h" 30 31 #include "camtool.h" 31 32 32 33 static bool queueMode(pxConfig *config); 34 static bool updaterunMode(pxConfig *config); 33 35 static bool pendingexpMode(pxConfig *config); 34 36 static bool pendingimfileMode(pxConfig *config); … … 60 62 switch (config->mode) { 61 63 MODECASE(CAMTOOL_MODE_QUEUE, queueMode); 64 MODECASE(CAMTOOL_MODE_UPDATERUN, updaterunMode); 62 65 MODECASE(CAMTOOL_MODE_PENDINGEXP, pendingexpMode); 63 66 MODECASE(CAMTOOL_MODE_PENDINGIMFILE, pendingimfileMode); … … 156 159 PXOPT_COPY_F32(config->args, where, "-solang_max", "solang", "<"); 157 160 158 if ( where->list->n < 1) {161 if (!psListLength(where->list)) { 159 162 psFree(where); 160 where = NULL; 163 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 164 return false; 161 165 } 162 166 … … 256 260 return true; 257 261 } 262 263 264 static bool updaterunMode(pxConfig *config) 265 { 266 PS_ASSERT_PTR_NON_NULL(config, false); 267 268 PXOPT_LOOKUP_STR(cam_id, config->args, "-cam_id", false, false); 269 PXOPT_LOOKUP_STR(chip_id, config->args, "-chip_id", false, false); 270 PXOPT_LOOKUP_STR(exp_id, config->args, "-exp_id", false, false); 271 272 psMetadata *where = psMetadataAlloc(); 273 // convert cam_id into a psS64 274 if (cam_id) { 275 if (!psMetadataAddS64(where, PS_LIST_TAIL, "cam_id", 0, "==", (psS64)atoll(cam_id))) { 276 psError(PS_ERR_UNKNOWN, false, "failed to add item cam_id"); 277 psFree(where); 278 return false; 279 } 280 } 281 282 // convert chip_id into a psS64 283 if (chip_id) { 284 if (!psMetadataAddS64(where, PS_LIST_TAIL, "chip_id", 0, "==", (psS64)atoll(chip_id))) { 285 psError(PS_ERR_UNKNOWN, false, "failed to add item chip_id"); 286 psFree(where); 287 return false; 288 } 289 } 290 291 // convert exp_id into a psS64 292 if (exp_id) { 293 if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", 0, "==", (psS64)atoll(exp_id))) { 294 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id"); 295 psFree(where); 296 return false; 297 } 298 } 299 300 PXOPT_COPY_STR(config->args, where, "-exp_name", "exp_name", "=="); 301 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 302 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 303 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "dateobs", ">="); 304 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "dateobs", "<="); 305 PXOPT_COPY_STR(config->args, where, "-exp_tag", "exp_tag", "=="); 306 PXOPT_COPY_STR(config->args, where, "-exp_type", "exp_type", "=="); 307 PXOPT_COPY_STR(config->args, where, "-filelevel", "filelevel", "=="); 308 PXOPT_COPY_STR(config->args, where, "-reduction", "reduction", "=="); 309 PXOPT_COPY_STR(config->args, where, "-filter", "filter", "=="); 310 311 PXOPT_COPY_F64(config->args, where, "-airmass_min", "airmass", ">="); 312 PXOPT_COPY_F64(config->args, where, "-airmass_max", "airmass", "<"); 313 PXOPT_COPY_F64(config->args, where, "-ra_min", "ra", ">="); 314 PXOPT_COPY_F64(config->args, where, "-ra_max", "ra", "<"); 315 PXOPT_COPY_F64(config->args, where, "-decl_min", "decl", ">="); 316 PXOPT_COPY_F64(config->args, where, "-decl_max", "decl", "<"); 317 PXOPT_COPY_F32(config->args, where, "-exp_time_min", "exp_time", ">="); 318 PXOPT_COPY_F32(config->args, where, "-exp_time_max", "exp_time", "<"); 319 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "sat_pixel_frac", ">="); 320 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "sat_pixel_frac", "<"); 321 PXOPT_COPY_F64(config->args, where, "-bg_min", "bt", ">="); 322 PXOPT_COPY_F64(config->args, where, "-bg_max", "bt", "<"); 323 PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "bg_stdev", ">="); 324 PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "bg_stdev", "<"); 325 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "bg_mean_stdev", ">="); 326 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "bg_mean_stdev", "<"); 327 PXOPT_COPY_F64(config->args, where, "-alt_min", "alt", ">="); 328 PXOPT_COPY_F64(config->args, where, "-alt_max", "alt", "<"); 329 PXOPT_COPY_F64(config->args, where, "-az_min", "az", ">="); 330 PXOPT_COPY_F64(config->args, where, "-az_max", "az", "<"); 331 PXOPT_COPY_F32(config->args, where, "-ccd_temp_min", "ccd_temp", ">="); 332 PXOPT_COPY_F32(config->args, where, "-ccd_temp_max", "ccd_temp", "<"); 333 PXOPT_COPY_F64(config->args, where, "-posang_min", "posang", ">="); 334 PXOPT_COPY_F64(config->args, where, "-posang_max", "posang", "<"); 335 PXOPT_COPY_STR(config->args, where, "-object", "object", "=="); 336 PXOPT_COPY_F32(config->args, where, "-solang_min", "solang", ">="); 337 PXOPT_COPY_F32(config->args, where, "-solang_max", "solang", "<"); 338 339 if (!psListLength(where->list)) { 340 psFree(where); 341 psError(PXTOOLS_ERR_DATA, false, "search parameters are required"); 342 return false; 343 } 344 345 PXOPT_LOOKUP_STR(state, config->args, "-state", false, false); 346 PXOPT_LOOKUP_STR(label, config->args, "-label", false, false); 347 348 if ((!state) && (!label)) { 349 psError(PXTOOLS_ERR_DATA, false, "parameters are required"); 350 return false; 351 } 352 353 if (state) { 354 // set chipRun.state to state 355 if (!pxcamRunSetStateByQuery(config, where, state)) { 356 return false; 357 } 358 } 359 360 if (label) { 361 // set chipRun.label to label 362 if (!pxcamRunSetLabelByQuery(config, where, label)) { 363 return false; 364 } 365 } 366 367 return true; 368 } 369 258 370 259 371 static bool pendingexpMode(pxConfig *config) -
trunk/ippTools/src/camtool.h
r14100 r17171 26 26 CAMTOOL_MODE_NONE = 0x0, 27 27 CAMTOOL_MODE_QUEUE, 28 CAMTOOL_MODE_UPDATERUN, 28 29 CAMTOOL_MODE_PENDINGEXP, 29 30 CAMTOOL_MODE_PENDINGIMFILE, -
trunk/ippTools/src/camtoolConfig.c
r16253 r17171 142 142 psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_end_stage", 0, 143 143 "define end stage", NULL); 144 145 // -updaterun 146 psMetadata *updaterunArgs = psMetadataAlloc(); 147 // XXX need to allow multiple cam_ids 148 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-cam_id", 0, 149 "search by cam_id", NULL); 150 // XXX need to allow multiple chip_ids 151 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-chip_id", 0, 152 "search by chip_id", NULL); 153 // XXX need to allow multiple exp_ids 154 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_id", 0, 155 "search by exp_id", NULL); 156 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_name", 0, 157 "search by exp_name", NULL); 158 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-inst", 0, 159 "search for camera", NULL); 160 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-telescope", 0, 161 "search for telescope", NULL); 162 psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_begin", 0, 163 "search for exposures by time (>=)", NULL); 164 psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_end", 0, 165 "search for exposures by time (<)", NULL); 166 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_tag", 0, 167 "search by exp_tag", NULL); 168 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_type", 0, 169 "search by exp_type", NULL); 170 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filelevel", 0, 171 "search by filelevel", NULL); 172 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-reduction", 0, 173 "search by reduction class", NULL); 174 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filter", 0, 175 "search for filter", NULL); 176 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-airmass_min", 0, 177 "define min airmass", NAN); 178 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-airmass_max", 0, 179 "define max airmass", NAN); 180 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_min", 0, 181 "define min", NAN); 182 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_max", 0, 183 "define max", NAN); 184 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_min", 0, 185 "define min", NAN); 186 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_max", 0, 187 "define max", NAN); 188 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_min", 0, 189 "define min", NAN); 190 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_max", 0, 191 "define max", NAN); 192 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_min", 0, 193 "define max fraction of saturated pixels", NAN); 194 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_max", 0, 195 "define min fraction of saturated pixels", NAN); 196 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_min", 0, 197 "define max", NAN); 198 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_max", 0, 199 "define max", NAN); 200 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_min", 0, 201 "define max", NAN); 202 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_max", 0, 203 "define max", NAN); 204 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_min", 0, 205 "define max", NAN); 206 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_max", 0, 207 "define max", NAN); 208 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_min", 0, 209 "define min", NAN); 210 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_max", 0, 211 "define max", NAN); 212 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_min", 0, 213 "define min", NAN); 214 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_max", 0, 215 "define max", NAN); 216 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_min", 0, 217 "define min ccd tempature", NAN); 218 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_max", 0, 219 "define max ccd tempature", NAN); 220 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_min", 0, 221 "define min rotator position angle", NAN); 222 psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_max", 0, 223 "define max rotator position angle", NAN); 224 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-object", 0, 225 "search by exposure object", NULL); 226 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_min", 0, 227 "define min solar angle", NAN); 228 psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_max", 0, 229 "define max solar angle", NAN); 230 231 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0, 232 "set state", NULL); 233 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0, 234 "set label", NULL); 235 144 236 145 237 // -pendingexp … … 284 376 285 377 PXOPT_ADD_MODE("-queue", "", CAMTOOL_MODE_QUEUE, queueArgs); 378 PXOPT_ADD_MODE("-updaterun", "", CAMTOOL_MODE_UPDATERUN, updaterunArgs); 286 379 PXOPT_ADD_MODE("-pendingexp", "", CAMTOOL_MODE_PENDINGEXP, pendingexpArgs); 287 380 PXOPT_ADD_MODE("-pendingimfile", "", CAMTOOL_MODE_PENDINGIMFILE, pendingimfileArgs); -
trunk/ippTools/src/pxcam.c
r16170 r17171 31 31 bool pxcamRunSetState(pxConfig *config, psS64 cam_id, const char *state) 32 32 { 33 PS_ASSERT_PTR_NON_NULL(config, false); 33 34 PS_ASSERT_PTR_NON_NULL(state, false); 34 35 … … 51 52 return false; 52 53 } 54 55 return true; 56 } 57 58 59 bool pxcamRunSetStateByQuery(pxConfig *config, psMetadata *where, const char *state) 60 { 61 PS_ASSERT_PTR_NON_NULL(config, false); 62 PS_ASSERT_PTR_NON_NULL(state, false); 63 64 // check that state is a valid string value 65 if (!( 66 (strncmp(state, "run", 4) == 0) 67 || (strncmp(state, "stop", 5) == 0) 68 || (strncmp(state, "reg", 4) == 0) 69 ) 70 ) { 71 psError(PS_ERR_UNKNOWN, false, 72 "invalid chipRun state: %s", state); 73 return false; 74 } 75 76 psString query = psStringCopy("UPDATE camRun JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id) SET state = '%s'"); 77 78 if (where) { 79 psString whereClause = psDBGenerateWhereSQL(where, NULL); 80 psStringAppend(&query, " %s", whereClause); 81 psFree(whereClause); 82 } 83 84 if (!p_psDBRunQuery(config->dbh, query, state)) { 85 psFree(query); 86 psError(PS_ERR_UNKNOWN, false, "database error"); 87 return false; 88 } 89 90 psFree(query); 91 92 return true; 93 } 94 95 96 bool pxcamRunSetLabel(pxConfig *config, psS64 cam_id, const char *label) 97 { 98 PS_ASSERT_PTR_NON_NULL(config, false); 99 // note label == NULL should be explicitly allowed 100 101 char *query = "UPDATE camRun SET camRun.label = '%s' WHERE cam_id = %" PRId64; 102 if (!p_psDBRunQuery(config->dbh, query, label, cam_id)) { 103 psError(PS_ERR_UNKNOWN, false, 104 "failed to change state for cam_id %" PRId64, cam_id); 105 return false; 106 } 107 108 return true; 109 } 110 111 112 bool pxcamRunSetLabelByQuery(pxConfig *config, psMetadata *where, const char *label) 113 { 114 PS_ASSERT_PTR_NON_NULL(config, false); 115 // note label == NULL should be explicitly allowed 116 117 psString query = psStringCopy("UPDATE camRun JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id) SET camRun.label = '%s'"); 118 119 if (where) { 120 psString whereClause = psDBGenerateWhereSQL(where, NULL); 121 psStringAppend(&query, " %s", whereClause); 122 psFree(whereClause); 123 } 124 125 if (!p_psDBRunQuery(config->dbh, query, label)) { 126 psFree(query); 127 psError(PS_ERR_UNKNOWN, false, "database error"); 128 return false; 129 } 130 131 psFree(query); 53 132 54 133 return true; -
trunk/ippTools/src/pxcam.h
r16170 r17171 26 26 27 27 bool pxcamRunSetState(pxConfig *config, psS64 cam_id, const char *state); 28 bool pxcamRunSetStateByQuery(pxConfig *config, psMetadata *where, const char *state); 29 bool pxcamRunSetLabel(pxConfig *config, psS64 cam_id, const char *label); 30 bool pxcamRunSetLabelByQuery(pxConfig *config, psMetadata *where, const char *label); 28 31 29 32 bool pxcamQueueByChipID(pxConfig *config,
Note:
See TracChangeset
for help on using the changeset viewer.
