📄 ppf_orbit.h
字号:
#ifndef _PPF_LIB_H#include <ppf_lib.h>#endif#ifndef _PPF_ORBIT_H#define _PPF_ORBIT_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_ORBIT_H [] = "@(#)ppf_orbit.h 1.10 05/17/05";/***************************************************************************** * * Copyright : DEIMOS Space S.L. * Project : REMASE * * Module : ppf_orbit.h * Purpose : It is the header file of the PPF_ORBIT 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 | Thirteenth 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 po_genstate(double mjdr[2], long *irep, long *icyc, double *rlong, double *ascmlst, long *iorb0, long *iorb, double mjdp[2], double pos[3], double vel[3], long ierr[4]); long po_ppforb(long *mode, double mjdr[2], double xm[6], double mjdp[2], double x[6], double pos[3], double vel[3], double acc[3], double res[54], long ierr[4]);long po_genops(long *mode, long *choice, char *esoc_file, char *doris_file, double *mjd0, double *mjd1, double mjdp[2], double pos[3], double vel[3], long *selected, double res[32], long ierr[10]);long po_interpol(long *mode, long *choice, long *ndc , char **doris_precise_file, long *ndl , char **doris_prelim_file, long *ner , char **esoc_rest_file, double *mjdr0 , double *mjdr1 , double mjdp[2], double x[6], double pos[3] , double vel[3] , double acc[3] , long *selected, double res[54], long ierr[10]);/* Error Handling Functions - prototype declaration *//* ================================================ */#define PO_MAX_COD PL_MAX_COD#define PO_MAX_STR PL_MAX_STRlong po_silent(void);long po_verbose(void);long po_print_msg(long *n, char msg[PO_MAX_COD][PO_MAX_STR]);long po_vector_msg(long *func_id, long *ierr, long *n, char msg[PO_MAX_COD][PO_MAX_STR]);long po_vector_code(long *func_id, long *ierr, long *n, long vec[PO_MAX_COD]);/* Modes and switches *//* ================== *//* Returned status code *//* -------------------- */typedef enum{PO_ERR = PL_ERR, /* Error status */PO_OK = PL_OK, /* Nominal status */PO_WARN = PL_WARN /* Warning status */}PO_PErr_type_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* po_ppforb initialization modes *//* ------------------------------ */typedef enum{ PO_INIT_ARC = -2, /* Initialization within a short orbit arc */ PO_INIT_GENSTATE, /* Initialization close to the ANX (low accuracy propagation model) */ PO_INIT /* Initialization close to the ANX (high accuracy propagation model = NOMINAL) */ }PO_PPFORB_init_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* po_ppforb propagation modes *//* --------------------------- */ typedef enum{ PO_PROPAG_ANX = 1, /* Propagation using time relative to the ascending node */ PO_PROPAG /* Propagation using absolute time */ }PO_PPFORB_prop_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* po_ppforb result vector modes *//* ----------------------------- */typedef enum{ PO_PPFORB_RES_BAS = 1000, /* Basic result, no derivatives */ PO_PPFORB_RES_BAS_D = 2000, /* Basic result, 1st derivatives */ PO_PPFORB_RES_BAS_2D = 4000, /* Basic result, 2nd derivatives */ PO_PPFORB_RES_AUX = 10000, /* Auxiliary result, no derivatives */ PO_PPFORB_RES_AUX_D = 20000, /* Auxiliary result, 1st derivatives */ PO_PPFORB_RES_AUX_2D = 40000 /* Auxiliary result, 2nd derivatives */ }PO_PPFORB_result_enum; /* CAREFUL: look up thoroughly the SUM to understand how to use the results vector mode *//* po_ppforb results vector *//* ------------------------ */typedef enum{ PO_PPFORB_RES_ORBIT_RAD = 0, PO_PPFORB_RES_RADIAL_ORB_VEL, PO_PPFORB_RES_TRANS_ORB_VEL, PO_PPFORB_RES_ORB_VEL_MAG, PO_PPFORB_RES_RA_SAT, PO_PPFORB_RES_DEC_SAT, PO_PPFORB_RES_EARTH_ROTATION_ANGLE, PO_PPFORB_RES_GEOC_LONG, PO_PPFORB_RES_GEOD_LAT, PO_PPFORB_RES_GEOC_LAT, PO_PPFORB_RES_SAT_ASPECT_ANGLE, PO_PPFORB_RES_GEOC_ASPECT_ANGLE, PO_PPFORB_RES_SSP_ASPECT_ANGLE, PO_PPFORB_RES_GEOC_DISTANCE_OF_SSP, PO_PPFORB_RES_RAD_CUR_PARALLEL_MERIDIAN, PO_PPFORB_RES_RAD_CUR_ORTHO_MERIDIAN, PO_PPFORB_RES_RAD_CUR_ALONG_GROUNDTRACK, PO_PPFORB_RES_MSLT, PO_PPFORB_RES_TLST, PO_PPFORB_RES_TRUE_SUN_RA, PO_PPFORB_RES_TRUE_SUN_DEC, PO_PPFORB_RES_TRUE_SUN_SEMI_DIAM, PO_PPFORB_RES_MOON_RA, PO_PPFORB_RES_MOON_DEC, PO_PPFORB_RES_MOON_SEMI_DIAM, PO_PPFORB_RES_MOON_AREA_LIT, PO_PPFORB_RES_SAT_ECLIPSE_FLAG, PO_PPFORB_RES_GEOD_ALT, PO_PPFORB_RES_GEOD_LAT_D, PO_PPFORB_RES_GEOC_LAT_D, PO_PPFORB_RES_GEOC_LONG_D, PO_PPFORB_RES_RA_SAT_D, PO_PPFORB_RES_GEOC_DISTANCE_OF_SSP_D, PO_PPFORB_RES_RAD_CUR_PARALLEL_MERIDIAN_D, PO_PPFORB_RES_RAD_CUR_ORTHO_MERIDIAN_D, PO_PPFORB_RES_GEOD_ALT_D, PO_PPFORB_RES_NORTH_VEL, PO_PPFORB_RES_EAST_VEL, PO_PPFORB_RES_MAG_VEL, PO_PPFORB_RES_AZ_VEL, PO_PPFORB_RES_GEOD_LAT_2D, PO_PPFORB_RES_GEOC_LAT_2D, PO_PPFORB_RES_GEOC_LONG_2D, PO_PPFORB_RES_RA_SAT_2D, PO_PPFORB_RES_GEOC_DISTANCE_OF_SSP_2D, PO_PPFORB_RES_RAD_CUR_PARALLEL_MERIDIAN_2D, PO_PPFORB_RES_RAD_CUR_ORTHO_MERIDIAN_2D, PO_PPFORB_RES_GEOD_ALT_2D, PO_PPFORB_RES_NORTH_ACC, PO_PPFORB_RES_EAST_ACC, PO_PPFORB_RES_GROUNDTRACK_TANG_ACC, PO_PPFORB_RES_AZ_ACC, PO_PPFORB_RES_NODAL_PERIOD, PO_PPFORB_RES_UTC_NEXT_ANX } PO_PPFORB_res_name_enum;/* --------------------------- *//* po_genops DORIS records selection *//* --------------------------------- */typedef enum{ PO_ALL_REC = 0, /* Select all the records of the DORIS navigation file (nominal operation) */ PO_USER_REC /* Select the user's specified records of the DORIS navigation file */}PO_GENOPS_rec_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* po_genops types of choice of file *//* --------------------------------- */typedef enum{ PO_AUTO_FILE = 0, /* Automatic selection (nominal operation) */ PO_ONLY_DORIS_FILE, /* ONLY Doris Precise Orbit */ PO_ONLY_ESOC_FILE /* ONLY ESOC Restituted Orbit */}PO_GENOPS_file_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* po_interpol operation modes *//* --------------------------- */typedef enum{ PO_INIT_FILE = 0, /* Initialization mode */ PO_INTERPOLATE = 2 /* Interpolation mode */}PO_INTERPOL_mode_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* po_interpol types of choice of data *//* ----------------------------------- */typedef enum{ PO_AUTO_SELECT = 0, /* Automatic selection (nominal operation) */ PO_ONLY_DORIS_PRECISE, /* ONLY Doris Precise Orbit */ PO_ONLY_DORIS_PRELIMINARY, /* ONLY Doris Preliminary Orbit */ PO_ONLY_ESOC_RESTITUTED, /* ONLY ESOC Restituted Orbit */ PO_ONLY_DORIS_NAVIGATOR /* ONLY Doris Orbit */}PO_INTERPOL_choice_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* po_interpol types of selected data *//* ---------------------------------- */typedef enum{ PO_NONE = -1, /* No file has been selected */ PO_DORIS_PRECISE = 1, /* Doris Precise Orbit selected */ PO_DORIS_PRELIMINARY = 2, /* Doris Preliminary Orbit selected */ PO_ESOC_RESTITUTED = 3, /* ESOC Restituted Orbit selected */ PO_DORIS_NAVIGATOR = 4 /* Doris Navigator Orbit selected */}PO_INTERPOL_select_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* po_interpol results *//* ------------------- */typedef enum{ PO_INTERPOL_RES_BAS = 1000, /* Basic result, no derivatives */ PO_INTERPOL_RES_BAS_D = 2000, /* Basic result, 1st derivatives */ PO_INTERPOL_RES_BAS_2D = 4000, /* Basic result, 2nd derivatives */ PO_INTERPOL_RES_AUX = 10000, /* Auxiliary result, no derivatives */ PO_INTERPOL_RES_AUX_D = 20000, /* Auxiliary result, 1st derivatives */ PO_INTERPOL_RES_AUX_2D = 40000 /* Auxiliary result, 2nd derivatives */ }PO_INTERPOL_result_enum; /* CAREFUL: look up thoroughly the SUM to understand how to use the results vector mode *//* po_interpool results vector *//* --------------------------- */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -