Earth Observation Mission CFI Software Pointing Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.26 00003 //-------------------------------------------------------- 00004 00005 //-------------------------------------------------------------------- 00006 // CVS Info: $Id: PointingData.h,v 1.32 2014-02-26 13:00:48 paat Exp $ 00007 //-------------------------------------------------------------------- 00008 00013 00014 #ifndef EECFI_POINTINGDATA 00015 #define EECFI_POINTINGDATA 00016 00017 //--INCLUDE----------------------------------------------------------- 00018 #include <AttRec.h> 00019 #include <Coord.h> 00020 #include <DataHandlingData.h> 00021 #include <LibData.h> 00022 #include <PointingDllExport.h> 00023 #include <StarTracker.h> 00024 #include <StateVector.h> 00025 00026 //--NAMESPACES-------------------------------------------------------- 00027 00028 namespace EECFI 00029 { 00030 //------------------------------------------------------ 00031 // CONSTANT DATA 00032 //------------------------------------------------------ 00033 00034 //------------------------------------------------------ 00035 // DATA ENUMERATION 00036 // Enumeration values are defined in an equivalent way to the C library 00037 // except for the prefix that has been changed from XX_ to XXCFI_ 00038 //------------------------------------------------------ 00039 00041 typedef enum 00042 { 00043 XPCFI_AOCS_GPM = XDCFI_AOCS_GPM, 00044 XPCFI_AOCS_LNP = XDCFI_AOCS_LNP, 00045 XPCFI_AOCS_YSM = XDCFI_AOCS_YSM, 00046 XPCFI_AOCS_ZDOPPLER = XDCFI_AOCS_ZDOPPLER 00047 00048 } SatNominalAttAocsModeEnum; // AN-469 00049 00051 typedef enum 00052 { 00053 XPCFI_MODEL_GENERIC = XDCFI_MODEL_GENERIC, 00054 XPCFI_MODEL_ENVISAT = XDCFI_MODEL_ENVISAT, 00055 XPCFI_MODEL_CRYOSAT = XDCFI_MODEL_CRYOSAT, 00056 XPCFI_MODEL_ADM = XDCFI_MODEL_ADM, 00057 XPCFI_MODEL_SENTINEL1 = XDCFI_MODEL_SENTINEL1, 00058 XPCFI_MODEL_SENTINEL2 = XDCFI_MODEL_SENTINEL2, 00059 XPCFI_MODEL_GEO = XDCFI_MODEL_GEO, 00060 XPCFI_MODEL_METOPSG = XDCFI_MODEL_METOPSG /* AN-666 */ 00061 } SatNominalAttModelEnum; // AN-469 00062 00064 typedef enum 00065 { 00066 XPCFI_ANGLE_TYPE_TRUE_LAT_TOD = XDCFI_ANGLE_TYPE_TRUE_LAT_TOD, 00067 XPCFI_ANGLE_TYPE_TRUE_LAT_EF = XDCFI_ANGLE_TYPE_TRUE_LAT_EF /* AN-508 */ 00068 } XPAngleTypeEnum; // AN-469 00069 00071 typedef enum 00072 { 00073 XPCFI_SEL_FILE = 0, 00074 XPCFI_SEL_TIME, 00075 XPCFI_SEL_ORBIT, 00076 XPCFI_SEL_DEFAULT 00077 } PointingInitModeEnum; 00078 00080 typedef enum 00081 { 00082 XPCFI_SAT_NOMINAL_ATT_INIT_MODE = 0, 00083 XPCFI_SAT_NOMINAL_ATT_INIT_MODEL_MODE, 00084 XPCFI_SAT_NOMINAL_ATT_INIT_HARMONIC_MODE, 00085 XPCFI_SAT_NOMINAL_ATT_INIT_FILE_MODE 00086 00087 } SatNominalAttModeEnum; 00088 00090 typedef enum 00091 { 00092 XPCFI_SAT_ATT_ANGLE_INIT_MODE = 0, 00093 XPCFI_SAT_ATT_MATRIX_INIT_MODE, 00094 XPCFI_SAT_ATT_INIT_HARMONIC_MODE, 00095 XPCFI_SAT_ATT_INIT_FILE_MODE 00096 00097 } SatAttModeEnum; 00098 00100 typedef enum 00101 { 00102 XPCFI_INSTR_ATT_ANGLE_INIT_MODE = 0, 00103 XPCFI_INSTR_ATT_MATRIX_INIT_MODE, 00104 XPCFI_INSTR_ATT_INIT_HARMONIC_MODE, 00105 XPCFI_INSTR_ATT_INIT_FILE_MODE 00106 00107 } InstrAttModeEnum; 00108 00110 typedef enum 00111 { 00112 XPCFI_ATTITUDE_INIT_NO_DATA_MODE = 0, 00113 XPCFI_ATTITUDE_COMPUTE_MODE, 00114 XPCFI_ATTITUDE_USER_SET_MODE 00115 00116 } AttitudeModeEnum; 00117 00119 typedef enum 00120 { 00121 XPCFI_ATTITUDE_GENERIC_FILE_MODEL = 0, 00122 XPCFI_ATTITUDE_STAR_TRACKER_FILE_MODEL, 00123 XPCFI_ATTITUDE_QUATERNION_NO_FILE_MODEL 00124 00125 } AttitudeFileModelEnum; 00126 00128 typedef enum 00129 { 00130 XPCFI_BM2000 = 1, 00131 XPCFI_HM2000, 00132 XPCFI_GM2000, 00133 XPCFI_MOD, 00134 XPCFI_TOD, 00135 XPCFI_PEF, 00136 XPCFI_EF, 00137 XPCFI_BM1950, 00138 XPCFI_GALACTIC 00139 } CsRlEnum; 00140 00142 typedef enum 00143 { 00144 XPCFI_NONE_ATTITUDE = -1, /* AN-468 */ 00145 XPCFI_SAT_ORBITAL_REF = 0, 00146 XPCFI_SAT_NOMINAL_ATT = 1, 00147 XPCFI_SAT_ATT = 2, 00148 XPCFI_INSTR_ATT = 3 00149 } AttFrEnum; 00150 00152 typedef enum 00153 { 00154 XPCFI_FRAME_FLAG_EXT = 0, 00155 XPCFI_FRAME_FLAG_SAT 00156 } FrameFlagEnum; 00157 00159 typedef enum 00160 { 00161 XPCFI_NO_INTER = 0, 00162 XPCFI_INTER_1ST, 00163 XPCFI_INTER_2ND 00164 } InterModeEnum; 00165 00167 typedef enum 00168 { 00169 XPCFI_SOURCE_STAR, 00170 XPCFI_SOURCE_SUN, 00171 XPCFI_SOURCE_MOON, 00172 XPCFI_SOURCE_GENERIC 00173 } SourceTypeEnum; 00174 00176 typedef enum 00177 { 00178 XPCFI_USER_TARGET_TYPE = 0, 00179 XPCFI_LOS_TARGET_TYPE, 00180 XPCFI_DEM_TARGET_TYPE 00181 } TargetTypeEnum; 00182 00184 typedef enum 00185 { 00186 XPCFI_X_AXIS = 0, 00187 XPCFI_NEG_X_AXIS, 00188 XPCFI_Y_AXIS, 00189 XPCFI_NEG_Y_AXIS, 00190 XPCFI_Z_AXIS, 00191 XPCFI_NEG_Z_AXIS 00192 } PointingAxisEnum; 00193 00195 typedef enum 00196 { 00197 XPCFI_SUN_VEC = 0, 00198 XPCFI_MOON_VEC, 00199 XPCFI_EARTH_VEC, 00200 XPCFI_NADIR_VEC, 00201 XPCFI_INERTIAL_VEL_VEC, 00202 XPCFI_EF_VEL_VEC, 00203 XPCFI_INERTIAL_TARGET_VEC, 00204 XPCFI_EF_TARGET_VEC, 00205 XPCFI_SC_EF_VEL_VEC, 00206 XPCFI_ORBIT_POLE, 00207 XPCFI_INERTIAL_POS_VEC_CORRECTED, 00208 XPCFI_INERTIAL_VEL_VEC_ROTATED, 00209 XPCFI_EF_NORTH, // AN-353 00210 XPCFI_EF_SOUTH // AN-353 00211 } AxisTargetEnum; 00212 00214 // Changed for AN-407 (Enumeration TargetPointingRayEnum was removed) 00215 typedef enum 00216 { 00217 XPCFI_NO_REF_INIT = XDCFI_NO_REF, 00218 XPCFI_STD_INIT = XDCFI_STD_REF, 00219 XPCFI_USER_INIT = XDCFI_USER_REF, 00220 XPCFI_PRED_INIT = XDCFI_PRED_REF, 00221 XPCFI_STD_INIT_N = XDCFI_STD_REF_N, 00222 XPCFI_USER_INIT_N = XDCFI_USER_REF_N, 00223 XPCFI_PRED_INIT_N = XDCFI_PRED_REF_N, 00224 XPCFI_US76_INIT = XDCFI_US76_REF, 00225 XPCFI_TROPIC_INIT = XDCFI_TROPIC_REF, 00226 XPCFI_MID_SUM_INIT = XDCFI_MID_SUM_REF, 00227 XPCFI_MID_WIN_INIT = XDCFI_MID_WIN_REF, 00228 XPCFI_SUBAR_SUM_INIT = XDCFI_SUBAR_SUM_REF, 00229 XPCFI_SUBAR_WIN_INIT = XDCFI_SUBAR_WIN_REF, 00230 XPCFI_LUT_INIT = XDCFI_LUT_REF, 00231 XPCFI_US76_INIT_N = XDCFI_US76_REF_N, 00232 XPCFI_TROPIC_INIT_N = XDCFI_TROPIC_REF_N, 00233 XPCFI_MID_SUM_INIT_N = XDCFI_MID_SUM_REF_N, 00234 XPCFI_MID_WIN_INIT_N = XDCFI_MID_WIN_REF_N, 00235 XPCFI_SUBAR_SUM_INIT_N = XDCFI_SUBAR_SUM_REF_N, 00236 XPCFI_SUBAR_WIN_INIT_N = XDCFI_SUBAR_WIN_REF_N, 00237 XPCFI_LUT_INIT_N = XDCFI_LUT_REF_N 00238 } AtmosModeEnum; 00239 00241 typedef enum 00242 { 00243 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT = 1, 00244 XPCFI_TARG_EXTRA_AUX_RAD_CUR = 2, 00245 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_D = 4, 00246 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_2D = 8, 00247 XPCFI_TARG_EXTRA_AUX_RAD_CUR_D = 16, 00248 XPCFI_TARG_EXTRA_AUX_RAD_CUR_2D = 32, 00249 XPCFI_TARG_EXTRA_AUX_TARGET_NADIR_VEL = 64, 00250 XPCFI_TARG_EXTRA_AUX_MLST = 128, 00251 XPCFI_TARG_EXTRA_AUX_TLST = 256, 00252 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD = 512, 00253 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_D = 1024, 00254 XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_2D = 2048, 00255 XPCFI_TARG_EXTRA_AUX_LOOK_DIR = 4096, 00256 XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT = 8192, 00257 XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_D = 16384, 00258 XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_2D = 32768, 00259 XPCFI_TARG_EXTRA_AUX_ALL = XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT + XPCFI_TARG_EXTRA_AUX_RAD_CUR + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_D + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_GT_2D + XPCFI_TARG_EXTRA_AUX_RAD_CUR_D + XPCFI_TARG_EXTRA_AUX_RAD_CUR_2D + XPCFI_TARG_EXTRA_AUX_TARGET_NADIR_VEL + XPCFI_TARG_EXTRA_AUX_MLST + XPCFI_TARG_EXTRA_AUX_TLST + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_D + XPCFI_TARG_EXTRA_AUX_DIST_NAD_TARG_SAT_NAD_2D + XPCFI_TARG_EXTRA_AUX_LOOK_DIR + XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT + XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_D + XPCFI_TARG_EXTRA_AUX_DIST_SSP_MIN_DIST_GT_2D 00260 00261 } TargetResAuxNameEnum; 00262 00264 typedef enum 00265 { 00266 XPCFI_TARG_EXTRA_MAIN_GEO = 1, 00267 XPCFI_TARG_EXTRA_MAIN_GEO_D = 2, 00268 XPCFI_TARG_EXTRA_MAIN_GEO_2D = 4, 00269 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP = 8, 00270 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_D = 16, 00271 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_2D = 32, 00272 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP = 64, 00273 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_D = 128, 00274 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_2D = 256, 00275 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE = 512, 00276 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_D = 1024, 00277 XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_2D = 2048, 00278 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE = 4096, /* AN-353 */ 00279 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_D = 8192, /* AN-353 */ 00280 XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_2D = 16384, /* AN-353 */ 00281 XPCFI_TARG_EXTRA_MAIN_ALL = XPCFI_TARG_EXTRA_MAIN_GEO + XPCFI_TARG_EXTRA_MAIN_GEO_D + XPCFI_TARG_EXTRA_MAIN_GEO_2D + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_D + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_TOP_2D + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_D + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_TOP_2D + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_D + XPCFI_TARG_EXTRA_MAIN_SAT2TARG_ATTITUDE_2D + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_D + XPCFI_TARG_EXTRA_MAIN_TARG2SAT_ATTITUDE_2D 00282 00283 } TargetResMainNameEnum; /* CAREFUL: variables holding these values MUST be declared as long !!! */ 00284 00286 typedef enum 00287 { 00288 XPCFI_SAT_DEFAULT = XLCFI_SAT_DEFAULT, 00289 XPCFI_SAT_DEFAULT1 = XLCFI_SAT_DEFAULT1, 00290 XPCFI_SAT_DEFAULT2 = XLCFI_SAT_DEFAULT2, 00291 XPCFI_SAT_DEFAULT3 = XLCFI_SAT_DEFAULT3, 00292 XPCFI_SAT_DEFAULT4 = XLCFI_SAT_DEFAULT4, 00293 XPCFI_SAT_DEFAULT5 = XLCFI_SAT_DEFAULT5, 00294 XPCFI_SAT_DEFAULT6 = XLCFI_SAT_DEFAULT6, 00295 XPCFI_SAT_DEFAULT7 = XLCFI_SAT_DEFAULT7, 00296 XPCFI_SAT_DEFAULT8 = XLCFI_SAT_DEFAULT8, 00297 XPCFI_SAT_DEFAULT9 = XLCFI_SAT_DEFAULT9, 00298 XPCFI_SAT_ERS1 = XLCFI_SAT_ERS1, 00299 XPCFI_SAT_ERS2 = XLCFI_SAT_ERS2, 00300 XPCFI_SAT_ENVISAT = XLCFI_SAT_ENVISAT, 00301 XPCFI_SAT_METOP1 = XLCFI_SAT_METOP1, 00302 XPCFI_SAT_METOP2 = XLCFI_SAT_METOP2, 00303 XPCFI_SAT_METOP3 = XLCFI_SAT_METOP3, 00304 XPCFI_SAT_CRYOSAT = XLCFI_SAT_CRYOSAT, 00305 XPCFI_SAT_ADM = XLCFI_SAT_ADM, 00306 XPCFI_SAT_GOCE = XLCFI_SAT_GOCE, 00307 XPCFI_SAT_SMOS = XLCFI_SAT_SMOS, 00308 XPCFI_SAT_TERRASAR = XLCFI_SAT_TERRASAR, 00309 XPCFI_SAT_EARTHCARE = XLCFI_SAT_EARTHCARE, 00310 XPCFI_SAT_SWARM_A = XLCFI_SAT_SWARM_A, 00311 XPCFI_SAT_SWARM_B = XLCFI_SAT_SWARM_B, 00312 XPCFI_SAT_SWARM_C = XLCFI_SAT_SWARM_C, 00313 XPCFI_SAT_SENTINEL_1A = XLCFI_SAT_SENTINEL_1A, 00314 XPCFI_SAT_SENTINEL_1B = XLCFI_SAT_SENTINEL_1B, 00315 XPCFI_SAT_SENTINEL_2 = XLCFI_SAT_SENTINEL_2, 00316 XPCFI_SAT_SENTINEL_3 = XLCFI_SAT_SENTINEL_3, 00317 XPCFI_SAT_SEOSAT = XLCFI_SAT_SEOSAT, 00318 XPCFI_SAT_SENTINEL_1C = XLCFI_SAT_SENTINEL_1C, 00319 XPCFI_SAT_SENTINEL_2A = XLCFI_SAT_SENTINEL_2A, 00320 XPCFI_SAT_SENTINEL_2B = XLCFI_SAT_SENTINEL_2B, 00321 XPCFI_SAT_SENTINEL_2C = XLCFI_SAT_SENTINEL_2C, 00322 XPCFI_SAT_SENTINEL_3A = XLCFI_SAT_SENTINEL_3A, 00323 XPCFI_SAT_SENTINEL_3B = XLCFI_SAT_SENTINEL_3B, 00324 XPCFI_SAT_SENTINEL_3C = XLCFI_SAT_SENTINEL_3C, 00325 XPCFI_SAT_JASON_CSA = XLCFI_SAT_JASON_CSA, // AN-531 00326 XPCFI_SAT_JASON_CSB = XLCFI_SAT_JASON_CSB, // AN-531 00327 XPCFI_SAT_METOP_SG_A1 = XLCFI_SAT_METOP_SG_A1, // AN-530 00328 XPCFI_SAT_METOP_SG_A2 = XLCFI_SAT_METOP_SG_A2, // AN-530 00329 XPCFI_SAT_METOP_SG_A3 = XLCFI_SAT_METOP_SG_A3, // AN-530 00330 XPCFI_SAT_METOP_SG_B1 = XLCFI_SAT_METOP_SG_B1, // AN-530 00331 XPCFI_SAT_METOP_SG_B2 = XLCFI_SAT_METOP_SG_B2, // AN-530 00332 XPCFI_SAT_METOP_SG_B3 = XLCFI_SAT_METOP_SG_B3, // AN-530 00333 XPCFI_SAT_SENTINEL_5P = XLCFI_SAT_SENTINEL_5P, // AN-502 00334 XPCFI_SAT_BIOMASS = XLCFI_SAT_BIOMASS, // AN-601 00335 XPCFI_SAT_SENTINEL_5 = XLCFI_SAT_SENTINEL_5, // AN-639 00336 XPCFI_SAT_SAOCOM_CS = XLCFI_SAT_SAOCOM_CS, // AN-640 00337 XPCFI_SAT_FLEX = XLCFI_SAT_FLEX, /* AN-683 */ 00338 XPCFI_SAT_SENTINEL_6A = XLCFI_SAT_SENTINEL_6A, 00339 XPCFI_SAT_SENTINEL_6B = XLCFI_SAT_SENTINEL_6B, 00340 XPCFI_SAT_CIMR = XLCFI_SAT_CIMR, 00341 XPCFI_SAT_ROSEL = XLCFI_SAT_ROSEL, 00342 XPCFI_SAT_CHIME = XLCFI_SAT_CHIME, 00343 XPCFI_SAT_CRISTAL = XLCFI_SAT_CRISTAL, 00344 XPCFI_SAT_CO2M = XLCFI_SAT_CO2M, 00345 XPCFI_SAT_LSTM = XLCFI_SAT_LSTM, 00346 XPCFI_SAT_FORUM = XLCFI_SAT_FORUM, 00347 XPCFI_SAT_TRUTHS = XLCFI_SAT_TRUTHS, 00348 XPCFI_SAT_GENERIC = XLCFI_SAT_GENERIC, 00349 // AN-353 00350 XPCFI_SAT_GENERIC_GEO = XLCFI_SAT_GENERIC_GEO, 00351 XPCFI_SAT_MTG = XLCFI_SAT_MTG, 00352 // END AN-353 00353 XPCFI_SAT_GENERIC_MEO = XLCFI_SAT_GENERIC_MEO // AN-550 00354 } SatIdPointingEnum; 00355 00357 typedef enum // Flag to indicate the grade of a derivative 00358 { 00359 XPCFI_NO_DER = XLCFI_NO_DER, 00360 XPCFI_DER_1ST = XLCFI_DER_1ST, 00361 XPCFI_DER_2ND = XLCFI_DER_2ND 00362 } DerivPointingEnum; 00363 00365 typedef enum 00366 { 00367 XPCFI_TIME_UNDEF = XLCFI_TIME_UNDEF, 00368 XPCFI_TIME_TAI = XLCFI_TIME_TAI, 00369 XPCFI_TIME_UTC = XLCFI_TIME_UTC, 00370 XPCFI_TIME_UT1 = XLCFI_TIME_UT1, 00371 XPCFI_TIME_GPS = XLCFI_TIME_GPS 00372 } TimeRefPointingEnum; 00373 00375 typedef enum 00376 { 00377 XPCFI_MODE_FLAG_LOCATION = XLCFI_MODE_FLAG_LOCATION, 00378 XPCFI_MODE_FLAG_DIRECTION = XLCFI_MODE_FLAG_DIRECTION 00379 } ModeFlagPointingEnum; 00380 00382 typedef enum 00383 { 00384 XPCFI_DEM_ACE_MODEL = XDCFI_DEM_ACE_MODEL, 00385 XPCFI_DEM_GETASSE30_V1 = XDCFI_DEM_GETASSE30_V1, 00386 XPCFI_DEM_GETASSE30_V2 = XDCFI_DEM_GETASSE30_V2, 00387 XPCFI_DEM_ACE2_9SEC = XDCFI_DEM_ACE2_9SEC, 00388 XPCFI_DEM_GETASSE30_V3 = XDCFI_DEM_GETASSE30_V3, 00389 XPCFI_DEM_GDEM_V2 = XDCFI_DEM_GDEM_V2, 00390 XPCFI_DEM_ACE2_30SEC = XDCFI_DEM_ACE2_30SEC, 00391 // AN-619 00392 XPCFI_DEM_ACE2_3SEC = XDCFI_DEM_ACE2_3SEC, 00393 // AN-726 00394 XPCFI_DEM_ACE2_5MIN = XDCFI_DEM_ACE2_5MIN, 00395 // AN-740 00396 XPCFI_DEM_GENERIC = XDCFI_DEM_GENERIC, 00397 XPCFI_DEM_TANDEMX_90 = XDCFI_DEM_TANDEMX_90, 00398 XPCFI_DEM_GDEM_V3 = XDCFI_DEM_GDEM_V3, 00399 XPCFI_DEM_NUM_MODELS = XDCFI_DEM_NUM_MODELS 00400 } DemModelPointingEnum; 00401 00403 typedef enum 00404 { 00405 XPCFI_LOAD_TILE_SET, 00406 XPCFI_CLEAR_CACHE, 00407 XPCFI_FREE_CACHE, 00408 XPCFI_SET_MAX_SIZE 00409 } DemConfigEnum; // AN-487 00410 00412 typedef enum 00413 { 00414 XPCFI_AZ_EL_LIST, 00415 XPCFI_AZ_EL_STRIP, 00416 XPCFI_AZ_EL_GRID 00417 } AzElTypeEnum; // AN-470 00418 00420 typedef enum 00421 { 00422 XPCFI_TARGET_LIST_INTER_ID 00423 } TargetListMethodEnum; // AN-471 00424 00426 typedef enum 00427 { 00428 XPCFI_ALL_DEM, 00429 XPCFI_DEM_SET 00430 } DemSetEnum; 00431 00433 typedef enum 00434 { 00435 XPCFI_AUTOMATIC_FLIP_MODE = 0, 00436 XPCFI_WINTER_MODE = 1, 00437 XPCFI_SUMMER_MODE = 2 00438 } YawFlipEnum; // AN-353 00439 00440 //------------------------------------------------------ 00441 // DATA STRUCTURES 00442 //------------------------------------------------------ 00443 00445 class XP_DECL AttDataRec 00446 { 00447 public: 00448 long timeRef; 00449 double time; 00450 double quaternion[4]; 00451 double angles[3]; 00452 00454 AttDataRec() 00455 { 00456 timeRef = 0; 00457 time = 0.; 00458 for(int i = 0; i < 4; i++) 00459 { 00460 quaternion[i] = 0.; 00461 if(i < 3) 00462 angles[i] = 0.; 00463 } 00464 } 00465 00471 AttDataRec(long timeReference, double timeIn, const double* quaternions, const double* angle) 00472 { 00473 timeRef = timeReference; 00474 time = timeIn; 00475 00476 quaternion[0] = quaternions[0]; 00477 quaternion[1] = quaternions[1]; 00478 quaternion[2] = quaternions[2]; 00479 quaternion[3] = quaternions[3]; 00480 00481 angles[0] = angle[0]; 00482 angles[1] = angle[1]; 00483 angles[2] = angle[2]; 00484 } 00485 }; 00486 00488 class XP_DECL AttFileModel 00489 { 00490 public: 00491 long fileModel; 00492 double valTime0; 00493 double valTime1; 00494 long dataType; 00495 long inertialFrame; 00496 double maxGap; 00497 std::vector<AttDataRec> attData; 00498 }; 00499 00501 class XP_DECL StarTrackerAux 00502 { 00503 public: 00504 long starTrId; 00505 long aberrCorrection; 00506 double strAttRot[3][3]; 00507 }; 00508 00510 class XP_DECL SatAttFileModel 00511 { 00512 public: 00513 long fileModel; 00514 double valTime0; 00515 double valTime1; 00516 long dataType; 00517 long inertialFrame; 00518 double maxGap; 00519 std::vector<AttDataRec> attData; 00520 StarTrackerAux auxData; 00521 std::vector<StarTracker> tmData; 00522 }; 00523 00525 class XP_DECL QuatPlusMatrixModel 00526 { 00527 public: 00528 long inertialFrame; 00529 std::vector<AttRec> quat; 00530 double rotMatrix[3][3]; 00531 }; 00532 00534 class XP_DECL QuatPlusAnglesModel 00535 { 00536 public: 00537 long inertialFrame; 00538 std::vector<AttRec> quat; 00539 double angles[3]; 00540 }; 00541 00543 class XP_DECL AtmosIdData 00544 { 00545 public: 00546 double atmMaxAltStd; 00547 double atmMaxAltUser; 00548 }; 00549 00551 class XP_DECL AzElDefinition 00552 { 00553 public: 00554 long az0Axis; 00555 long az90Axis; 00556 long el90Axis; 00557 }; 00558 00560 class XP_DECL CsTra 00561 { 00562 public: 00563 bool azelFlag; 00564 AzElDefinition azelDef; 00565 CsRlEnum refi; 00566 AttFrEnum reff; 00567 bool ambFlag; 00568 DerivPointingEnum deriv; 00569 double v[3]; 00570 double vd[3]; 00571 double v2d[3]; 00572 double m[3][3]; 00573 double md[3][3]; 00574 double m2d[3][3]; 00575 }; 00576 00578 class XP_DECL AttitudeData 00579 { 00580 public: 00581 long model; 00582 StateVector satVector; 00583 long sourceFrame; 00584 long targetFrame; 00585 CsTra satMat; 00586 double offset[3]; 00587 CsTra attitudeEF; 00588 }; 00589 00591 class XP_DECL ParDer 00592 { 00593 public: 00594 DerivPointingEnum deriv; 00595 double p; 00596 double pd; 00597 double p2d; 00598 }; 00599 00601 class XP_DECL GenericTargetData 00602 { 00603 public: 00604 long timeRef; 00605 double time; 00606 Coord satVector; 00607 long iray; 00608 double freq; 00609 long deriv; 00610 }; 00611 00613 class XP_DECL TargetData 00614 { 00615 public: 00616 long targetNumber; // AN-470. 00617 Coord tarVector; 00618 ParDer zTan; 00619 ParDer range; 00620 ParDer time; 00621 Coord tarSatVector; 00622 Coord satTarVector; 00623 }; 00624 00626 class XP_DECL TargetIdData 00627 { 00628 public: 00629 GenericTargetData genericData; 00630 long earthCrossed; 00631 long atmCrossed; 00632 std::vector<TargetData> user; 00633 std::vector<TargetData> los; 00634 bool earthFlag; 00635 TargetData earth; 00636 Coord exitAtmVector; 00637 }; 00638 00640 class XP_DECL LatLonArea 00641 { 00642 public: 00643 double lonMin; 00644 double lonMax; 00645 double latMin; 00646 double latMax; 00647 }; // AN-487 00648 00650 class XP_DECL DemIdConfig 00651 { 00652 public: 00653 long command; 00654 long maxCacheSize; 00655 LatLonArea area; 00656 00657 }; // AN-487 00658 00660 class XP_DECL AzimuthElevation 00661 { 00662 public: 00663 double azimuth; 00664 double elevation; 00665 double azimuthRate; 00666 double elevationRate; 00667 }; // AN-470 00668 00670 class XP_DECL AzimuthElevationList 00671 { 00672 public: 00673 std::vector<AzimuthElevation> azElList; 00674 }; // AN-470 00675 00677 class XP_DECL AzimuthElevationStrip 00678 { 00679 public: 00680 double azimuth; 00681 double minElevation; 00682 double maxElevation; 00683 double stepElevation; 00684 }; // AN-470 00685 00687 class XP_DECL AzimuthElevationGrid 00688 { 00689 public: 00690 double minAzimuth; 00691 double maxAzimuth; 00692 double stepAzimuth; 00693 double minElevation; 00694 double maxElevation; 00695 double stepElevation; 00696 }; // AN-470 00697 00699 class XP_DECL InstrumentData 00700 { 00701 public: 00702 long type; 00703 AzimuthElevationList azimuthElevationList; 00704 AzimuthElevationStrip azimuthElevationStrip; 00705 AzimuthElevationGrid azimuthElevationGrid; 00706 double signalFrequency; 00707 }; // AN-470 00708 00710 class XP_DECL TargetOutput 00711 { 00712 public: 00713 long numUserTarget; 00714 std::vector<long> numLosTarget; 00715 }; // AN-470 00716 00718 class XP_DECL TargetListInputInfo 00719 { 00720 public: 00721 long inputType; 00722 double azimuth; 00723 double elevation; 00724 long azimuthIdx; 00725 long elevationIdx; 00726 }; // AN-471 00727 00729 class XP_DECL TargetInputInfo 00730 { 00731 public: 00732 long targetFunction; 00733 TargetListInputInfo targetListInputInfo; 00734 }; // AN-471 00735 00737 class XP_DECL TargetExtraResults 00738 { 00739 public: 00740 long status; 00741 TargetInputInfo targetInputInfo; 00742 std::vector<double> results; 00743 std::vector<double> resultsRate; 00744 std::vector<double> resultsRateRate; 00745 }; // AN-471 00746 00748 class XP_DECL TargetExtraResultsList 00749 { 00750 public: 00751 std::vector<TargetExtraResults> extraResults; 00752 }; // AN-471 00753 00755 class XP_DECL GenDemAltFromEllipsoidInputs 00756 { 00757 public: 00758 long setType; 00759 double lonMin; 00760 double lonMax; 00761 double latMin; 00762 double latMax; 00763 long verbose; 00764 }; // AN-466 00765 00767 class XP_DECL TransformCfg 00768 { 00769 public: 00770 TimeCorrelation timeId; 00771 ModelId modelId; 00772 CsRlEnum refFrame; 00773 }; // AN-526 00774 00775 } // namespace EECFI 00776 00777 #endif