Changeset 11245
- Timestamp:
- Jan 22, 2007, 5:19:43 PM (19 years ago)
- Location:
- trunk/psModules/src/config
- Files:
-
- 2 edited
-
pmConfig.c (modified) (7 diffs)
-
pmConfig.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/config/pmConfig.c
r11041 r11245 4 4 * @author EAM (IfA) 5 5 * 6 * @version $Revision: 1.7 2$ $Name: not supported by cvs2svn $7 * @date $Date: 2007-01- 11 22:55:36$6 * @version $Revision: 1.73 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2007-01-23 03:19:35 $ 8 8 * 9 9 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 676 676 677 677 // XXX aren't these (return false) below errors: call psError? 678 bool pmConfigValidateCameraFormat( const psMetadata *cameraFormat, const psMetadata *header)678 bool pmConfigValidateCameraFormat(bool *valid, const psMetadata *cameraFormat, const psMetadata *header) 679 679 { 680 680 PS_ASSERT_PTR_NON_NULL(cameraFormat, false); … … 683 683 // Read the rule for that camera format 684 684 bool mdStatus = true; 685 685 686 psMetadata *rule = psMetadataLookupMetadata(&mdStatus, cameraFormat, "RULE"); 686 687 if (! mdStatus || ! rule) { 687 688 psError(PS_ERR_UNKNOWN, false, "Unable to read rule for camera."); 689 *valid = false; 688 690 return false; 689 691 } … … 692 694 psMetadataIterator *ruleIter = psMetadataIteratorAlloc(rule, PS_LIST_HEAD, NULL); // Rule iterator 693 695 psMetadataItem *ruleItem = NULL; // Item from the metadata 694 while ((ruleItem = psMetadataGetAndIncrement(ruleIter))) { 696 697 *valid = true; 698 while (*valid && (ruleItem = psMetadataGetAndIncrement(ruleIter))) { 695 699 // Check for the existence of the rule 696 700 psMetadataItem *headerItem = psMetadataLookup(header, ruleItem->name); 697 701 if (! headerItem) { 698 // doesn't match, but not an error702 // rule item not found in header 699 703 psTrace("psModules.config", 5, "Can't find %s", ruleItem->name); 700 psFree(ruleIter); 701 return false; 704 *valid = false; 702 705 } 703 706 704 707 // Check to see if the rule works 705 if ( !psMetadataItemCompare(headerItem, ruleItem)) {708 if (headerItem && !psMetadataItemCompare(headerItem, ruleItem)) { 706 709 psTrace("psModules.config", 5, "%s doesn't match.", ruleItem->name); 707 psFree(ruleIter); 708 return false; 710 *valid = false; 709 711 } 710 712 } // Iterating through the RULEs … … 713 715 return true; 714 716 } 715 716 717 717 718 // Given a camera and a header, see if any of the camera formats match the header … … 750 751 psMetadata *testFormat = formatsItem->data.md; // Format to test against 751 752 752 if (pmConfigValidateCameraFormat(testFormat, header)) { 753 psTrace("psModules.config", 5, "trying format %s", formatsItem->name); 754 755 bool valid = false; 756 if (!pmConfigValidateCameraFormat(&valid, testFormat, header)) { 757 psError (PS_ERR_UNKNOWN, false, "Error in config scripts for camera %s, format %s\n", 758 cameraName, formatsItem->name); 759 return false; 760 } 761 if (valid) { 753 762 if (!*format) { 754 763 psLogMsg("psModules.config", PS_LOG_INFO, "Camera %s, format %s matches header.\n", … … 762 771 cameraName, formatsItem->name); 763 772 } 764 } else {765 psErr *error = psErrorLast();766 if (error->code != PS_ERR_NONE) {767 psError (PS_ERR_UNKNOWN, false, "Error in config scripts for camera %s, format %s\n",\768 cameraName, formatsItem->name);769 return false;770 }771 psFree(error);772 773 } 773 774 } 774 775 psFree(formatsIter); 775 776 776 return result; 777 777 } -
trunk/psModules/src/config/pmConfig.h
r11040 r11245 9 9 /// @author Eugene Magnier, IfA 10 10 /// 11 /// @version $Revision: 1.2 4$ $Name: not supported by cvs2svn $12 /// @date $Date: 2007-01- 11 22:54:56$11 /// @version $Revision: 1.25 $ $Name: not supported by cvs2svn $ 12 /// @date $Date: 2007-01-23 03:19:43 $ 13 13 /// 14 14 /// Copyright 2005-2006 Institute for Astronomy, University of Hawaii … … 97 97 /// 98 98 /// Given a FITS header (the PHU header), check it against the RULE metadata contained within the camera 99 /// format; return true if it matches. 100 bool pmConfigValidateCameraFormat(const psMetadata *cameraFormat, ///< Camera format containing the RULE 99 /// format; return found = true if it matches. return false on serious errors 100 bool pmConfigValidateCameraFormat(bool *valid, 101 const psMetadata *cameraFormat, ///< Camera format containing the RULE 101 102 const psMetadata *header // FITS header for the PHU 102 103 );
Note:
See TracChangeset
for help on using the changeset viewer.
