IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 7942 for trunk/psLib/src/astro


Ignore:
Timestamp:
Jul 20, 2006, 2:59:07 AM (20 years ago)
Author:
rhl
Message:

Return error indication (NAN/NULL) in case of error, don't just call psError

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/astro/psTime.c

    r7766 r7942  
    1010 *  @author Ross Harman, MHPCC
    1111 *
    12  *  @version $Revision: 1.90 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2006-06-30 02:20:06 $
     12 *  @version $Revision: 1.91 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2006-07-20 12:59:07 $
    1414 *
    1515 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    387387
    388388    // Read time tables
     389    bool no_problem = true;  // True if we've detected no errors
    389390    namesPtr = tableNames;
    390391    while((tableName=getToken(&namesPtr, " ", &status)) != NULL) {
     
    403404        tableFormat = getToken(&formatPtr,",",&status);
    404405        if(tableFormat == NULL) {
    405             psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
     406            psError(PS_ERR_BAD_PARAMETER_VALUE,no_problem,PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
    406407                    "psLib.time.tables.format");
     408            no_problem = false;
    407409        }
    408410
     
    412414            numLines = psLookupTableRead(table);
    413415        } else {
    414             psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i+1, numTables);
     416            psError(PS_ERR_BAD_PARAMETER_VALUE, no_problem,
     417                    PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i+1, numTables);
     418            no_problem = false;
    415419        }
    416420
     
    424428                foundTable = true;
    425429            } else if(foundTable==false && j==numTables-1) {
    426                 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, j, numTables);
     430                psError(PS_ERR_BAD_PARAMETER_VALUE, no_problem,
     431                        PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, j, numTables);
     432                no_problem = false;
    427433            }
    428434        }
     
    438444
    439445    if(numTables != i) {
    440         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i, numTables);
     446        psError(PS_ERR_BAD_PARAMETER_VALUE, no_problem, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i, numTables);
    441447    }
    442448
     
    448454    psFree(tableFormats);
    449455
    450     return true;
     456    return no_problem;
    451457}
    452458
     
    698704    if(time->type == PS_TIME_UT1) {
    699705        psError(PS_ERR_BAD_PARAMETER_VALUE,true,"Cannot convert from UT1 time type");
    700         //        return NULL;
    701         return time;
     706        return NULL;
    702707    }
    703708
     
    724729        } else {
    725730            psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_TYPE_UNKNOWN, type);
     731            return NULL;
    726732        }
    727733        // Convert from TT to TAI, UTC, UT1
     
    748754        } else {
    749755            psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_TYPE_UNKNOWN, type);
     756            return NULL;
    750757        }
    751758        // Convert from UTC to TAI, TT, UT1
     
    766773        } else {
    767774            psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_TYPE_UNKNOWN, type);
     775            return NULL;
    768776        }
    769777        // Convert unknown time type
    770778    } else {
    771779        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_TYPE_UNKNOWN, time->type);
     780        return NULL;
    772781    }
    773782
     
    10651074
    10661075        // Date too earlier for tables. Get default polar coodinate values from metadata, and issue warning.
     1076        #if 0
    10671077        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_TIME_PREDATES_TABLES, mjd, "polar motion");
     1078        return NULL;
     1079        #else
     1080
     1081        psLogMsg(PS_FILE_LINE, PS_LOG_ERROR, PS_ERRORTEXT_psTime_TIME_PREDATES_TABLES, mjd, "polar motion");
     1082        #endif
    10681083
    10691084        tableMetadataItem = psMetadataLookup(timeMetadata, "psLib.time.before.xp");
    10701085        if(tableMetadataItem == NULL) {
    1071             psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED, "psLib.time.before.xp");
     1086            psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     1087                    PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED, "psLib.time.before.xp");
    10721088            return NULL;
    10731089        }
     
    10921108              c = 2*pi*(mjd - pslib.time.predict.mjd)/435.0
    10931109        */
    1094         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_TIME_POSTDATES_TABLES, mjd, "polar motion");
     1110        #if 0
     1111        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     1112                PS_ERRORTEXT_psTime_TIME_POSTDATES_TABLES, mjd, "polar motion");
     1113        return NULL;
     1114        #else
     1115
     1116        psLogMsg(PS_FILE_LINE, PS_LOG_ERROR,
     1117                 PS_ERRORTEXT_psTime_TIME_POSTDATES_TABLES, mjd, "polar motion");
     1118        #endif
    10951119
    10961120        // Get predicted MJD
     
    11711195        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_FILE_NOT_FOUND,
    11721196                p_psGetConfigFileName());
    1173         return 0.0;
     1197        return NAN;
    11741198    }
    11751199
     
    11781202    if(tableMetadataItem == NULL) {
    11791203        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED, "taiTable");
    1180         return 0.0;
     1204        return NAN;
    11811205    }
    11821206    table = (psLookupTable*)tableMetadataItem->data.V;
     
    12051229    if(results == NULL) {
    12061230        psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_INTERPOLATION_FAILED);
     1231        return NAN;
    12071232    }
    12081233
     
    13471372    if (!strftime(tempString, MAX_TIME_STRING_LENGTH, "%Y-%m-%dT%H:%M:%S", tmTime)) {
    13481373        psError(PS_ERR_OS_CALL_FAILED, true, PS_ERRORTEXT_psTime_CONVERT_TIME_TO_STRING_FAILED);
     1374        return NULL;
    13491375    }
    13501376    psFree(tmTime);
     
    13601386    if (snprintf(timeString, MAX_TIME_STRING_LENGTH, "%s.%1dZ", tempString, ds) < 0) {
    13611387        psError(PS_ERR_OS_CALL_FAILED, true, PS_ERRORTEXT_psTime_APPEND_MSEC_FAILED);
     1388        return NULL;
    13621389    }
    13631390    psFree(tempString);
     
    16991726                   const psTime *time2)
    17001727{
    1701     psF64 out = 0.0;
    17021728    psF64 uSec1 = 0.0;
    17031729    psF64 uSec2 = 0.0;
     
    17141740    if(time1->type != time2->type) {
    17151741        psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_TYPE_INCORRECT,time1->type);
    1716         return out;
     1742        return NAN;
    17171743    }
    17181744
     
    17391765    uSec2 = tempTime2->sec >= 0 ? 1.0 : -1.0;
    17401766    uSec2 = uSec2*tempTime2->nsec/1e9;
    1741     out = (tempTime1->sec-tempTime2->sec) + (uSec1-uSec2);
     1767    psF64 out = (tempTime1->sec-tempTime2->sec) + (uSec1-uSec2);
    17421768
    17431769    psFree(tempTime1);
Note: See TracChangeset for help on using the changeset viewer.