📄 ppf_lib.h
字号:
#ifndef _PPF_LIB_H#define _PPF_LIB_H#ifdef __cplusplusextern "C"{#endif/* This version number is the SCCS version number valid only for internal configuration and control. *//* The oficial version number can be found in the History box below. */ static char PPF_LIB_H [] = "@(#)ppf_lib.h 1.12 05/17/05";/***************************************************************************** * * Copyright : DEIMOS Space S.L. * Project : REMASE * * Module : ppf_lib.h * Purpose : It is the header file of the PPF_LIB CFI to be used by the final user * * History +------------------------------------------------------------+ * | Version | Date | Name | Change | * |---------|----------|--------------|------------------------| * | 4.1 | 17/01/97 | GMV, S.A | First release | * | 4.2 | 30/04/97 | GMV, S.A | Second release | * | 4.3 | 18/05/98 | GMV, S.A | Third release | * | 4.4 | 13/10/98 | GMV, S.A | Fourth release | * | 4.5 | 25/05/99 | GMV, S.A | Fifth release | * | 4.6 | 14/04/00 | GMV, S.A | Sixth release | * | 4.7 | 22/06/01 | GMV, S.A | Seventh release | * | 4.8 | 31/07/01 | GMV, S.A | Eigth release | * | 4.9 | 22/10/01 | DEIMOS Space | Ninth release | * | 5.0 | 18/01/02 | DEIMOS Space | Tenth release | * | 5.1 | 25/11/02 | DEIMOS Space | Eleventh release | * | 5.2 | 26/05/03 | DEIMOS Space | Twelfth release | * | 5.3 | 13/12/04 | DEIMOS Space | Thirteehth release | * | 5.3.1 | 15/02/05 | DEIMOS Space | Forteenth release | * | 5.4 | 17/05/05 | DEIMOS Space | Fifteenth release | * +------------------------------------------------------------+ * ****************************************************************************//* Main CFI Functions - prototype declaration *//* ========================================== */ long pl_change_sv_cs(double time[2], long *pcs_in, long *pcs_out, double r[3], double rd[3], double r2d[3], double r_out[3], double rd_out[3], double r2d_out[3]);long pl_car_geo(double rr[3], double rrd[3], double *lon, double *lat, double *h, double *lond, double *latd, double *hd);long pl_geo_car(double *lon, double *lat, double *h, double *lond, double *latd, double *hd, double rr[3], double rrd[3]);long pl_srar_cs(double rr[3], double rrd[3], double rr2d[3], double aocs[3], double misp[3], double mispd[3], double xs[3], double ys[3], double zs[3], double xsd[3], double ysd[3], double zsd[3], double angout[3], double angoutd[3]);long pl_geo_distance (double *lon1, double *lat1, double *lon2, double *lat2, double *h, double *d, double *az1, double *az2);long pl_tmjd(long mjdt[4], double mjdp[2], char utce[28], char dut1e[9]);long pl_emjd(long mjdt[4], double mjdp[2], char utce[28], char dut1e[9]);long pl_pmjd(long mjdt[4], double mjdp[2], char utce[28], char dut1e[9]);long pl_tadd(long mjdt[4], long mjdrt[4], long addt[4]);long pl_tsub(long mjdt1[4], long mjdt2[4], long subt[4]);long pl_sbtutc (long mjdt0[4], unsigned long *sbt0, unsigned long *per0, unsigned long *obtm, unsigned long *obtl, long mjdt[4]);long pl_utcsbt (long mjdt0[4], unsigned long *obt0, unsigned long *per0, unsigned long *obtm, unsigned long *obtl, long mjdt[4]);long pl_sun(double ut1[2], double rsun[3], double rdsun[3]);long pl_moon(double ut1[2], double rmoon[3], double rdmoon[3]);long pl_planets(long *planet, double ut1[2], double rplan[3], double rdplan[3]);long pl_star_radec(double ut1[2], double *ra0, double *dec0, double *mu_ra, double *mu_dec, double *rad_vel, double *par, double *ra, double *dec);/* Error Handling Functions - prototype declaration *//* ================================================ */#define PL_MAX_STR 256 /* Maximum length of a string (function name or error message) */#define PL_MAX_COD 256 /* Maximum number of error codes that can be defined for a single function */long pl_silent(void);long pl_verbose(void);long pl_print_msg(long *n, char msg[PL_MAX_COD][PL_MAX_STR]);long pl_vector_msg(long *func_id, long *ierr, long *n, char msg[PL_MAX_COD][PL_MAX_STR]);long pl_vector_code(long *func_id, long *ierr, long *n, long vec[PL_MAX_COD]);/* Modes and switches *//* ================== *//* Returned status code *//* -------------------- */typedef enum {PL_ERR = -1, /* Error status */PL_OK = 0, /* Nominal status */PL_WARN = 1 /* Warning status */}PL_PErr_type_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* Coordinate systems *//* ------------------ */typedef enum { PL_BM2000 = 1, /* Barycentric Mean of 2000.0 coordinate system */ PL_HM2000 , /* Heliocentric Mean of 2000.0 coordinate system */ PL_GM2000, /* Geocentric Mean of 2000.0 coordinate system */ PL_MOD, /* Mean of Date coordinate system */ PL_TOD, /* True of Date coordinate system */ PL_EF /* Earth Fixed coordinate system */} PL_CS_rl_enum; /* Planets *//* ------- */typedef enum { PL_MERCURY = 1, /* Mercury */ PL_VENUS, /* Venus */ PL_EM_BAR, /* Earth-Moon barycenter */ PL_MARS, /* Mars */ PL_JUPITER, /* Jupiter */ PL_SATURN, /* Saturn */ PL_URANUS, /* Uranus */ PL_NEPTUNE /* Neptune */ } PL_Planet_enum; /* CFI functions IDs (for error handling) *//* -------------------------------------- */typedef enum{ PL_NO_FUNC_ID = -1, /* No function code */ PL_CHANGE_SV_CS_ID, PL_CAR_GEO_ID, PL_GEO_CAR_ID, PL_SRAR_CS_ID, PL_GEO_DISTANCE_ID, PL_TMJD_ID, PL_EMJD_ID, PL_PMJD_ID, PL_TADD_ID, PL_TSUB_ID, PL_SBTUTC_ID, PL_UTCSBT_ID, PL_SUN_ID, PL_MOON_ID, PL_PLANETS_ID, PL_STAR_RADEC_ID, PL_MAX_FUNC_ID /* Number of functions defined in this list */} PL_Func_enum; /* List of errors of the main CFI functions (Look up the PPF_LIB SUM) *//* ================================================================== *//* Error handling constants *//* ------------------------ */#define PL_ZERO_E 0 #define PL_FIRST_E 32#define PL_SECOND_E 64#define PL_THIRD_E 96#define PL_FORTH_E 128#define PL_FIFTH_E 160#define PL_SIXTH_E 192#define PL_SEVENTH_E 224#define PL_EIGHTH_E 256#define PL_NINETH_E 288#define PL_TENTH_E 320 #define PL_WARN_BIT 30#define PL_ERR_BIT 31/* Error codes list of pl_change_sv_cs *//* ----------------------------------- */typedef enum {PL_CFI_E1_NDAYS_ERR =PL_ZERO_E,PL_CFI_E1_DUT1_ERR,PL_CFI_INPUT_CS_ERR,PL_CFI_OUTPUT_CS_ERR} PL_CFI_change_sv_cs_err_enum;/* Error codes list of pl_car_geo *//* ------------------------------ */typedef enum {PL_CFI_AMBIGUITY_CASE_WARN = PL_ZERO_E,PL_CFI_WRONG_FRAME_ERR, /* internal error code */PL_CFI_WRONG_INPUT_VECTOR_ERR,PL_CFI_ACCURACY_NOT_GOT_WARN, /* internal error code */PL_CFI_TOO_MANY_ITERATIONS_WARN, /* internal error code */ PL_CFI_DEFVAL_ELLALT_WARN /* internal error code */} PL_CFI_Car_Geo_err_enum;/* Error codes list of pl_geo_car *//* ------------------------------ */typedef enum {PL_CFI_EL_GT_90_ERR = PL_ZERO_E} PL_CFI_Geo_Car_err_enum;/* Error codes list of pl_srar_cs *//* ------------------------------ */typedef enum {PL_CFI_SRR_UNDEFINED_ERR = PL_ZERO_E,PL_CFI_J2_CS_ERR, /* internal error code */PL_CFI_PITCH_90DEG_WARN} PL_CFI_Srar_Cs_err_enum;/* Error codes list of pl_geo_distance *//* ----------------------------------- */typedef enum {PL_CFI_ALT_NOT_ID_ERR = PL_ZERO_E,PL_CFI_ANTIPODAL_POINTS_WARN,PL_CFI_GEO_CAR_ERR,PL_CFI_PT_DIR_RANGE_ERR,PL_CFI_ELLIPSOID_PLANE_ERR,PL_CFI_DIR_POINT_WARN} PL_CFI_Geo_Distance_err_enum;/* Error codes list of pl_tmjd *//* --------------------------- */typedef enum {PL_CFI_K19_NDAYS_ERR = PL_ZERO_E, PL_CFI_K19_NSECS_ERR, PL_CFI_K19_NMICS_ERR, PL_CFI_K19_NDUT1_ERR,PL_CFI_K19_CAL_ERR /* internal error code */} PL_CFI_tmjd_err_enum;/* Error codes list of pl_emjd *//* --------------------------- */typedef enum {PL_CFI_K21_MICS_ERR = PL_ZERO_E, PL_CFI_K21_MONTH_ERR, PL_CFI_K21_CAL_ERR, PL_CFI_K21_CAL2_ERR, PL_CFI_K21_DUT1_ERR, PL_CFI_K21_PROC_ERR, /* internal error code */PL_CFI_K21_CONS_ERR /* internal error code */ } PL_CFI_emjd_err_enum;/* Error codes list of pl_pmjd *//* --------------------------- */typedef enum {PL_CFI_K20_NDAYS_ERR = PL_ZERO_E, PL_CFI_K20_DUT1_ERR, PL_CFI_K20_TRANS_ERR, /* internal error code */PL_CFI_K20_CONS_ERR /* internal error code */} PL_CFI_pmjd_err_enum; /* Error codes list of pl_tadd *//* --------------------------- */typedef enum {PL_CFI_K22_NDAYS_ERR = PL_ZERO_E, PL_CFI_K22_NSECS_ERR, PL_CFI_K22_NMICS_ERR, PL_CFI_K22_NDUT1_ERR, PL_CFI_K22_NDAYS_WARN, PL_CFI_K22_NSECS_WARN, PL_CFI_K22_NMICS_WARN, PL_CFI_K22_NDUT1_WARN } PL_CFI_tadd_err_enum;/* Error codes list of pl_tsub *//* --------------------------- */typedef enum {PL_CFI_K23_NDAYS_ERR = PL_ZERO_E, PL_CFI_K23_NSECS_ERR, PL_CFI_K23_NMICS_ERR, PL_CFI_K23_NDUT1_ERR, PL_CFI_K23_NDAYS_WARN, PL_CFI_K23_NSECS_WARN, PL_CFI_K23_NMICS_WARN, PL_CFI_K23_NDUT1_WARN } PL_CFI_tsub_err_enum;/* Error codes list of pl_sbtutc *//* ----------------------------- */typedef enum {PL_CFI_K24_NDAYS_ERR = PL_ZERO_E, PL_CFI_K24_NSECS_ERR, PL_CFI_K24_NMICS_ERR, PL_CFI_K24_NDUT1_ERR, PL_CFI_K24_PER_ERR, PL_CFI_K24_TRA_ERR, /* internal error code */PL_CFI_K24_TRA_WARN /* internal error code */} PL_CFI_sbtutc_err_enum;/* Error codes list of pl_utcsbt *//* ----------------------------- */typedef enum {PL_CFI_K25_NDAYS_ERR = PL_ZERO_E, PL_CFI_K25_NSECS_ERR, PL_CFI_K25_NMICS_ERR, PL_CFI_K25_NDUT1_ERR, PL_CFI_K25_PER_ERR, PL_CFI_K25_TRA_ERR, /* internal error code */PL_CFI_K25_TRA_WARN /* internal error code */} PL_CFI_utcsbt_err_enum;/* Error codes list of pl_sun *//* -------------------------- */typedef enum {PL_CFI_K02_REF_ERR = PL_ZERO_E, /* internal error code */PL_CFI_K02_FORM_ERR, /* internal error code */PL_CFI_K02_EARTH_ERR, /* internal error code */PL_CFI_K02_CHANGE_ERR /* internal error code */} PL_CFI_Sun_err_enum;/* Error codes list of pl_moon *//* --------------------------- */typedef enum { PL_CFI_K03_REF_ERR = PL_ZERO_E, /* internal error code */ PL_CFI_K03_FORM_ERR /* internal error code */} PL_CFI_Moon_err_enum;/* Error codes list of pl_planets *//* ------------------------------ */typedef enum { PL_CFI_K04_REF_ERR = PL_ZERO_E, /* internal error code */ PL_CFI_K04_FORM_ERR, /* internal error code */ PL_CFI_K04_PLA_ERR, PL_CFI_K04_OUT_WARN, PL_CFI_K04_CONV_WARN /* internal error code */} PL_CFI_planets_err_enum;/* Error codes list of pl_star_radec *//* --------------------------------- */typedef enum {PL_CFI_K14_EARTH_ERR = PL_ZERO_E, /* internal error code */PL_CFI_K14_CHANGE_ERR, /* internal error code */PL_CFI_K14_CHANGE_TO_MD_ERR, /* internal error code */PL_CFI_K14_CHANGE_TO_RA_DEC_ERR /* internal error code */} PL_CFI_star_radec_err_enum;/* Functions names aliases (historical names LEFT - official names RIGHT) *//* ====================================================================== */#define PL_Silent pl_silent#define PL_Verbose pl_verbose#define PL_Print_Msg pl_print_msg#define PL_Vector_Msg pl_vector_msg#define PL_Vector_Code pl_vector_code#define PL_change_sv_cs pl_change_sv_cs#define PL_car_geo pl_car_geo#define PL_geo_car pl_geo_car#define PL_srar_cs pl_srar_cs#define PL_geo_distance pl_geo_distance#define tmjd pl_tmjd#define emjd pl_emjd#define pmjd pl_pmjd#define tadd pl_tadd#define tsub pl_tsub#define sbtutc pl_sbtutc#define utcsbt pl_utcsbt #define PL_sun pl_sun#define PL_moon pl_moon#define PL_planets pl_planets#define PL_star_radec pl_star_radec/****************************************************************************************/#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -