📄 ppf_pointing.h
字号:
#ifndef _PPF_LIB_H#include <ppf_lib.h>#endif#ifndef _PPF_POINTING_H#define _PPF_POINTING_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_POINTING_H [] = "@(#)ppf_pointing.h 1.8 02/15/05";/***************************************************************************** * * Copyright : DEIMOS Space S.L. * Project : REMASE * * Module : ppf_pointing.h * Purpose : It is the header file of the PPF_POINTING 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 pp_target(double mjdp[2], double pos[3], double vel[3], double acc[3], double aocs[3], double att[3], double datt[3], long *idir, double dir[8], long *iray, double *freq, long *ieres, double res[75], long ierr[15]); long pp_stavis(double mjdp[2], double pos[3], double vel[3], double acc[3], double aocs[3], double att[3], double datt[3], double sta[4], double res[31], long ierr[4]); long pp_genstate_drs(double mjdp[2], double *longdrs, double posdrs[3], double veldrs[3], long ierr[4]); long pp_drsvis(double mjdp[2], double pos[3], double vel[3], double acc[3], double aocs[3], double att[3], double datt[3], double mjddrs[2], double posdrs[3], double veldrs[3], double res[33], long ierr[4]);long pp_drsorb(double mjdr[2], double x[6], double mjdp[2], double pos[3], double vel[3], long ierr[4]);long pp_init_attitude_file(char* filename, long *mode_out, double *utc_start, double *utc_stop, long *mode_perfo, double perfo_params[6], long *mode_statistic, /* output */ double bias_good[3], double rms_good[3], double bias_flag[3], double rms_flag[3], double flag_stats[2], long ierr[1]);long pp_get_attitude_aocs(double *utc_time, /* output */ double aocs[3], double att[3], double datt[3], long *perfo_flag, char mode[5], long ierr[1]);void pp_free_attitude(); /* Error Handling Functions - prototype declaration *//* ================================================ */#define PP_MAX_COD PL_MAX_COD#define PP_MAX_STR PL_MAX_STR long pp_silent(void);long pp_verbose(void);long pp_print_msg(long *n, char msg[PP_MAX_COD][PP_MAX_STR]);long pp_vector_msg(long *func_id, long *ierr, long *n, char msg[PP_MAX_COD][PP_MAX_STR]);long pp_vector_code(long *func_id, long *ierr, long *n, long vec[PP_MAX_COD]);/* Constants *//* ========= */#define PP_AOCS_CX -0.167074#define PP_AOCS_CY 0.050233#define PP_AOCS_CZ 3.912987/* Modes and switches *//* ================== *//* Returned status code *//* -------------------- */typedef enum{PP_ERR = PL_ERR, /* Error status */PP_OK = PL_OK, /* Nominal status */PP_WARN = PL_WARN /* Warning status */}PP_PErr_type_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* pp_target modes *//* --------------- */typedef enum { PP_TAR_LUT_INIT = -2, PP_TAR_INIT = -1, PP_NO_TAR = 0, PP_INTER_1ST, PP_INTER_2ND, PP_GR_RAN, PP_IN_ANG, PP_RAN, PP_RAN_RATE, PP_TAN, PP_ALT, PP_STAR, PP_GENERIC_TARG} PP_Target_mode_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! */typedef enum { PP_AATSR = PP_INTER_1ST, PP_MERIS_GRID = PP_GR_RAN} PP_Target_instrum_mode_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* pp_target ray tracing models *//* ---------------------------- */typedef enum { PP_NO_REF = 0, PP_STD_REF, PP_USER_REF, PP_PRED_REF, PP_STD_REF_N = 10, PP_USER_REF_N = 20, PP_PRED_REF_N = 30, PP_US76_REF = 300, PP_TROPIC_REF, PP_MID_SUM_REF, PP_MID_WIN_REF, PP_SUBAR_SUM_REF, PP_SUBAR_WIN_REF, PP_LUT_REF = 400, PP_US76_REF_N = 3000, PP_TROPIC_REF_N, PP_MID_SUM_REF_N, PP_MID_WIN_REF_N, PP_SUBAR_SUM_REF_N, PP_SUBAR_WIN_REF_N, PP_LUT_REF_N = 4000 } PP_Target_ray_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! */ /* pp_target results vector names *//* ------------------------------ */ typedef enum{ PP_TARG_RES_X_COORD = 0, PP_TARG_RES_Y_COORD, PP_TARG_RES_Z_COORD, PP_TARG_RES_GEOC_LONG, PP_TARG_RES_GEOC_LAT, PP_TARG_RES_GEOD_LAT, PP_TARG_RES_GEOD_ALT, PP_TARG_RES_TARG2SAT_RANGE, PP_TARG_RES_TARG2SAT_AZ_TOP, PP_TARG_RES_TARG2SAT_EL_TOP, PP_TARG_RES_SAT2TARG_AZ_TOP, PP_TARG_RES_SAT2TARG_EL_TOP, PP_TARG_RES_SAT2TARG_AZ_SRAR, PP_TARG_RES_SAT2TARG_EL_SRAR, PP_TARG_RES_DIST_NAD_TARG_GT, PP_TARG_RES_RAD_CUR, PP_TARG_RES_SIGN_ROUNDTRIP_TIME, PP_TARG_RES_X_VEL, PP_TARG_RES_Y_VEL, PP_TARG_RES_Z_VEL, PP_TARG_RES_GEOC_LONG_D, PP_TARG_RES_GEOC_LAT_D, PP_TARG_RES_GEOD_LAT_D, PP_TARG_RES_GEOD_ALT_D, PP_TARG_RES_TARG2SAT_RANGE_D, PP_TARG_RES_TARG2SAT_AZ_TOP_D, PP_TARG_RES_TARG2SAT_EL_TOP_D, PP_TARG_RES_SAT2TARG_AZ_TOP_D, PP_TARG_RES_SAT2TARG_EL_TOP_D, PP_TARG_RES_SAT2TARG_AZ_SRAR_D, PP_TARG_RES_SAT2TARG_EL_SRAR_D, PP_TARG_RES_DIST_NAD_TARG_GT_D, PP_TARG_RES_RAD_CUR_D, PP_TARG_RES_NORTH_VEL, PP_TARG_RES_EAST_VEL, PP_TARG_RES_AZ_VEL, PP_TARG_RES_MAG_VEL, PP_TARG_RES_EF_TARG2SAT_RANGE_D, PP_TARG_RES_EF_TARG2SAT_AZ_TOP_D, PP_TARG_RES_EF_TARG2SAT_EL_TOP_D, PP_TARG_RES_SAT2EF_TARG_AZ_TOP_D, PP_TARG_RES_SAT2EF_TARG_EL_TOP_D, PP_TARG_RES_SAT2EF_TARG_AZ_SRAR_D, PP_TARG_RES_SAT2EF_TARG_EL_SRAR_D, PP_TARG_RES_DOPPLER_SHIFT, PP_TARG_RES_PITCH, PP_TARG_RES_ROLL, PP_TARG_RES_YAW, PP_TARG_RES_PITCH_D, PP_TARG_RES_ROLL_D, PP_TARG_RES_YAW_D, PP_TARG_RES_SAT2MOON_AZ_SRAR, PP_TARG_RES_SAT2MOON_EL_SRAR, PP_TARG_RES_SAT2SUN_AZ_SRAR, PP_TARG_RES_SAT2SUN_EL_SRAR, PP_TARG_RES_SAT2MOON_AZ_SRAR_D, PP_TARG_RES_SAT2MOON_EL_SRAR_D, PP_TARG_RES_SAT2SUN_AZ_SRAR_D, PP_TARG_RES_SAT2SUN_EL_SRAR_D, PP_TARG_RES_SAT2MOON_TANG_ALT, PP_TARG_RES_SAT2SUN_TANG_ALT, PP_TARG_RES_MLST, PP_TARG_RES_TLST, PP_TARG_RES_DIST_NAD_TARG_SAT_NAD, PP_TARG_RES_SAT2MOON_VIS_FLAG, PP_TARG_RES_SAT2SUN_VIS_FLAG, PP_TARG_RES_TARG2SUN_AZ_TOP, PP_TARG_RES_TARG2SUN_EL_TOP, PP_TARG_RES_TARG2SUN_AZ_TOP_D, PP_TARG_RES_TARG2SUN_EL_TOP_D, PP_TARG_RES_TARG2SUN_TANG_ALT, PP_TARG_RES_TARG2SUN_VIS_FLAG, PP_TARG_RES_RA_LOOK_DIR, PP_TARG_RES_DEC_LOOK_DIR, PP_TARG_RES_DIST_SSP_MIN_DIST_GT } PP_Target_res_name_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! *//* pp_target results vector switch *//* ------------------------------- */ typedef enum{ PP_BAS_RES = 0, PP_EXT_RES =1, PP_TARG_MODE_AATSR_0 = 6, PP_TARG_MODE_AATSR_1 = 134217742, PP_TARG_MODE_MERIS_0 = 38, PP_TARG_MODE_MERIS_1 = 134217774, PP_TARG_RES_SAT2TARG = 62, PP_TARG_RES_SAT2TARG_AUX = 1051840, PP_TARG_RES_SAT2TARG_D = 253952, PP_TARG_RES_SAT2TARG_AUX_D = 786432, PP_TARG_RES_SAT2EF_TARG = 31457280, PP_TARG_RES_TARG2SUN = 671088640, PP_TARG_RES_TARG2SUN_D = 268435456, PP_TARG_RES_SAT2MOON = 256, PP_TARG_RES_SAT2MOON_D = 33554432, PP_TARG_RES_SAT2SUN = 512, PP_TARG_RES_SAT2SUN_D = 67108864 } PP_Target_res_enum; /* CAREFUL: variables holding these values MUST be declared as long !!! */ /* CAREFUL: look up thoroughly the SUM to understand how to use the results vector switch *//* pp_stavis results vector names *//* ------------------------------ */ typedef enum{ PP_STA_RES_RANGE, PP_STA_RES_STA2SAT_AZ_TOP, PP_STA_RES_STA2SAT_EL_TOP, PP_STA_RES_SAT2STA_AZ_SRAR, PP_STA_RES_SAT2STA_EL_SRAR, PP_STA_RES_RANGE_D, PP_STA_RES_STA2SAT_AZ_TOP_D, PP_STA_RES_STA2SAT_EL_TOP_D, PP_STA_RES_SAT2STA_AZ_SRAR_D, PP_STA_RES_SAT2STA_EL_SRAR_D, PP_STA_RES_RANGE_2D, PP_STA_RES_STA2SAT_AZ_TOP_2D, PP_STA_RES_STA2SAT_EL_TOP_2D, PP_STA_RES_SAT2STA_AZ_SRAR_2D, PP_STA_RES_SAT2STA_EL_SRAR_2D, PP_STA_RES_PITCH,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -