#ident "@(#) GetFromNewVIDF.c 1.19 05/08/19 SwRI" #include /* for sprintf */ #include /* for abort */ #include /* for strrchr */ #include /* for INT_MAX */ #include /* for assert */ #include /* for MAXPATHLEN */ #include "vidf_defs.h" /* for the enum VIDF_DEFS */ #include "vidf_parse.h" /* for the vidf_vals type */ #include "vidf_local.h" #include "vidf_codes.h" #include "SDDAS_types.h" /* * Input Variables : * * Algorithm : * * Construct VIDF name from input variables (data key and time) * Check to see if we already have the VIDF opened. * If not opened, we need to see if it is online (check database) * If not online, return with error * If opened, is it within our time range? * If correct time, has it been updated? (TimeCheck) * If not correct time, is the correct one online? (check database) * If available { * free old one in memory, * open new one/read/parse it. * } * If not online, return with error * * Parse the input string and search the VIDF in memory * if we found what we were looking for, return it, otherwise return error * */ void VIDFCheckReturnType (VIDF_DEFS what, vidf_vals *ret_val, void *ToBeFilled); /* ToBeFilled is where to put it */ /* what should be the ENUM type */ /* which is the number of the enum (i.e. which table) */ int GetFromNewVIDF (void *pVIDF, void *ToBeFilled, VIDF_DEFS what, SDDAS_SHORT which) { vidf_vals *ret_val = NULL; char tmp [100]; char vidf_name [20]; memset (vidf_name, 0, sizeof (vidf_name)); strcpy (vidf_name, "VIDF"); switch (what) { case _VERSION : sprintf (tmp, "%s.version", vidf_name); break; case _MISSION : sprintf (tmp, "%s.mission", vidf_name); break; case _SPACECRAFT : sprintf (tmp, "%s.spacecraft", vidf_name); break; case _EXP_DESC : sprintf (tmp, "%s.experiment", vidf_name); break; case _INST_DESC : sprintf (tmp, "%s.instrument", vidf_name); break; case _CONTACT : sprintf (tmp, "%s.contact", vidf_name); break; case _NUM_COMNTS : strcpy (tmp, "_NUM_COMNTS unsupported!"); break; case _COMMENTS : strcpy (tmp, "_COMMENTS unsupported!"); break; case _DS_YEAR : sprintf (tmp, "%s.s_year", vidf_name); break; case _DS_DAY : sprintf (tmp, "%s.s_day", vidf_name); break; case _DS_MSEC : sprintf (tmp, "%s.s_msec", vidf_name); break; case _DS_USEC : sprintf (tmp, "%s.s_usec", vidf_name); break; case _DE_YEAR : sprintf (tmp, "%s.e_year", vidf_name); break; case _DE_DAY : sprintf (tmp, "%s.e_day", vidf_name); break; case _DE_MSEC : sprintf (tmp, "%s.e_msec", vidf_name); break; case _DE_USEC : sprintf (tmp, "%s.e_usec", vidf_name); break; case _DATA_LAT_UNITS : sprintf (tmp, "%s.data_lat_units", vidf_name); break; case _SWP_RESET_UNITS : sprintf (tmp, "%s.swp_reset_units", vidf_name); break; case _SEN_RESET_UNITS : sprintf (tmp, "%s.sen_reset_units", vidf_name); break; case _SMP_ID : sprintf (tmp, "%s.smp_id", vidf_name); break; case _SEN_MODE : sprintf (tmp, "%s.sen_mode", vidf_name); break; case _N_QUAL : sprintf (tmp, "%s.n_qual", vidf_name); break; case _CAL_SETS : sprintf (tmp, "%s.n_cal_sets", vidf_name); break; case _NUM_TBLS : sprintf (tmp, "%s.n_tbls", vidf_name); break; case _NUM_CONSTS : sprintf (tmp, "%s.n_consts", vidf_name); break; case _STATUS : sprintf (tmp, "%s.n_status", vidf_name); break; case _PA_DEFINED : sprintf (tmp, "%s.PitchAngle.format", vidf_name); break; case _SEN : sprintf (tmp, "%s.n_sensors", vidf_name); break; case _SWP_LEN : sprintf (tmp, "%s.swp_len", vidf_name); break; case _MAX_PACKING : sprintf (tmp, "%s.max_packing", vidf_name); break; case _MAX_NSS : sprintf (tmp, "%s.max_nss", vidf_name); break; case _DATA_LEN : sprintf (tmp, "%s.data_len", vidf_name); break; case _FILL_FLG : sprintf (tmp, "%s.fill_flag", vidf_name); break; case _FILL : sprintf (tmp, "%s.fill", vidf_name); break; case _DA_METHOD : sprintf (tmp, "%s.da_method", vidf_name); break; case _PHI_METHOD : sprintf (tmp, "%s.phi_method", vidf_name); break; case _NANO_DEFINED : sprintf (tmp, "%s.nano_defined", vidf_name); break; case _STATUS_NAME : sprintf (tmp, "%s.Status%d.name", vidf_name, which); break; case _STATE : case _STATES : sprintf (tmp, "%s.Status%d.state", vidf_name, which); break; case _SEN_NAME : sprintf (tmp, "%s.Sensor%d.name", vidf_name, which); break; case _CAL_NAMES : sprintf (tmp, "%s.CalSet%d.name", vidf_name, which); break; case _QUAL_NAME : sprintf (tmp, "%s.qual_names", vidf_name); break; case _PA_FORMAT : sprintf (tmp, "%s.PitchAngle.format", vidf_name); break; case _PA_PROJECT : sprintf (tmp, "%s.PitchAngle.project", vidf_name); break; case _PA_MISSION : sprintf (tmp, "%s.PitchAngle.mission", vidf_name); break; case _PA_EXPER : sprintf (tmp, "%s.PitchAngle.experiment", vidf_name); break; case _PA_INST : sprintf (tmp, "%s.PitchAngle.instrument", vidf_name); break; case _PA_VINST : sprintf (tmp, "%s.PitchAngle.vinstrument", vidf_name); break; case _PA_BX : sprintf (tmp, "%s.PitchAngle.bx", vidf_name); break; case _PA_BY : sprintf (tmp, "%s.PitchAngle.by", vidf_name); break; case _PA_BZ : sprintf (tmp, "%s.PitchAngle.bz", vidf_name); break; case _PA_APPS : sprintf (tmp, "%s.PitchAngle.num_tbls", vidf_name); break; case _PA_TBLS : sprintf (tmp, "%s.PitchAngle.tbls", vidf_name); break; case _PA_OPS : sprintf (tmp, "%s.PitchAngle.opers", vidf_name); break; case _D_TYPE : sprintf (tmp, "%s.Sensor%d.d_type", vidf_name, which); break; case _TDW_LEN : sprintf (tmp, "%s.Sensor%d.tdw_len", vidf_name, which); break; case _SEN_STATUS : sprintf (tmp, "%s.Sensor%d.status", vidf_name, which); break; case _TIME_OFF : sprintf (tmp, "%s.Sensor%d.time_offset", vidf_name, which); break; case _SPIN_TIME_OFF : sprintf (tmp, "%s.Sensor%d.spin_time_offset", vidf_name, which); break; case _CAL_USE : sprintf (tmp, "%s.CalSet%d.use", vidf_name, which); break; case _CAL_WLEN : sprintf (tmp, "%s.CalSet%d.word_len", vidf_name, which); break; case _CAL_TARGET : sprintf (tmp, "%s.CalSet%d.target", vidf_name, which); break; case _CAL_SCOPE : sprintf (tmp, "%s.CalSet%d.scope", vidf_name, which); break; case _CAL_D_TYPE : sprintf (tmp, "%s.CalSet%d.d_type", vidf_name, which); break; case _TBL_SCA_SZ : sprintf (tmp, "%s.Table%d.tbl_sca_sz", vidf_name, which); break; case _TBL_ELE_SZ : sprintf (tmp, "%s.Table%d.tbl_ele_sz", vidf_name, which); break; case _TBL_TYPE : sprintf (tmp, "%s.Table%d.tbl_type", vidf_name, which); break; case _TBL_DESC_LEN : strcpy (tmp, "_TBL_DESC_LEN unsupported!"); break; case _TBL_DESC : strcpy (tmp, "_TBL_DESC unsupported!"); break; case _TBL_VAR : sprintf (tmp, "%s.Table%d.tbl_var", vidf_name, which); break; case _TBL_EXPAND : sprintf (tmp, "%s.Table%d.tbl_expand", vidf_name, which); break; case _CRIT_ACT_SZ : sprintf (tmp, "%s.Table%d.crit_act_sz", vidf_name, which); break; case _CRIT_STATUS : sprintf (tmp, "%s.Table%d.CriticalAction.status", vidf_name, which); break; case _CRIT_OFF : sprintf (tmp, "%s.Table%d.CriticalAction.offset", vidf_name, which); break; case _CRIT_ACTION : sprintf (tmp, "%s.Table%d.CriticalAction.table", vidf_name, which); break; case _TBL_FMT : sprintf (tmp, "%s.Table%d.format", vidf_name, which); break; case _TBL_OFF : sprintf (tmp, "%s.Table%d.offset", vidf_name, which); break; case _TBL_SCA : sprintf (tmp, "%s.Table%d.scale", vidf_name, which); break; case _TBL : sprintf (tmp, "%s.Table%d.values", vidf_name, which); break; case _CONST_ID : sprintf (tmp, "%s.Constant%d.id", vidf_name, which); break; case _CONST_DESC_LEN : strcpy (tmp, "_CONST_DESC_LEN unsupported!"); break; case _CONST_DESC : strcpy (tmp, "_CONST_DESC unsupported!"); break; case _CONST_SCA : sprintf (tmp, "%s.Constant%d.scale", vidf_name, which); break; case _VIDF_CONST : sprintf (tmp, "%s.Constant%d.values", vidf_name, which); break; case _COORD_SYSTEM_DEFINED : sprintf (tmp, "%s.CoordinateSystem.coord_system", vidf_name); break; case _COORD_SYSTEM : sprintf (tmp, "%s.CoordinateSystem.coord_system", vidf_name); break; case _PMI_DEFINED : sprintf (tmp, "%s.CoordinateSystem.PMI.format", vidf_name); break; case _PMI_FORMAT : sprintf (tmp, "%s.CoordinateSystem.PMI.format", vidf_name); break; case _NUM_PMI_ANGLES : sprintf (tmp, "%s.CoordinateSystem.PMI.num_angles", vidf_name); break; case _PMI_PROJECT : sprintf (tmp, "%s.CoordinateSystem.PMI.project", vidf_name); break; case _PMI_MISSION : sprintf (tmp, "%s.CoordinateSystem.PMI.mission", vidf_name); break; case _PMI_EXPER : sprintf (tmp, "%s.CoordinateSystem.PMI.experiment", vidf_name); break; case _PMI_INST : sprintf (tmp, "%s.CoordinateSystem.PMI.instrument", vidf_name); break; case _PMI_VINST : sprintf (tmp, "%s.CoordinateSystem.PMI.vinstrument", vidf_name); break; case _PMI_SENSORS : sprintf (tmp, "%s.CoordinateSystem.PMI.sensors", vidf_name); break; case _PMI_ROTATION_AXIS : sprintf (tmp, "%s.CoordinateSystem.PMI.rot_axis", vidf_name); break; case _PMI_APPS : sprintf (tmp, "%s.CoordinateSystem.PMI.num_tbls", vidf_name); break; case _PMI_TBLS : sprintf (tmp, "%s.CoordinateSystem.PMI.tbls", vidf_name); break; case _PMI_OPS : sprintf (tmp, "%s.CoordinateSystem.PMI.opers", vidf_name); break; case _CP_DEFINED : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.format", vidf_name); break; case _CP_FORMAT : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.format", vidf_name); break; case _CP_PROJECT : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.project", vidf_name); break; case _CP_MISSION : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.mission", vidf_name); break; case _CP_EXPER : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.experiment", vidf_name); break; case _CP_INST : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.instrument", vidf_name); break; case _CP_VINST : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.vinstrument", vidf_name); break; case _CP_DECLINATION_SENSOR : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.declination_sensor", vidf_name); break; case _CP_DECLINATION_APPS : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.declination_num_tbls", vidf_name); break; case _CP_DECLINATION_TBLS : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.declination_tbls", vidf_name); break; case _CP_DECLINATION_OPS : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.declination_opers", vidf_name); break; case _CP_RT_ASCENSION_SENSOR : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.rt_ascension_sensor", vidf_name); break; case _CP_RT_ASCENSION_APPS : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.rt_ascension_num_tbls", vidf_name); break; case _CP_RT_ASCENSION_TBLS : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.rt_ascension_tbls", vidf_name); break; case _CP_RT_ASCENSION_OPS : sprintf (tmp, "%s.CoordinateSystem.CelestialPosition.rt_ascension_opers", vidf_name); break; case _ORBITING_BODY : sprintf (tmp, "%s.orbiting_body", vidf_name); break; case _REF_SEN_DELAY : sprintf (tmp, "%s.ref_sen_delay", vidf_name); break; case _REF_SEN_DELAY_UNIT : sprintf (tmp, "%s.ref_sen_delay_unit", vidf_name); break; case _POT_SRC_DEFINED : sprintf (tmp, "%s.PotentialSource.format", vidf_name); break; case _POT_SRC_FORMAT : sprintf (tmp, "%s.PotentialSource.format", vidf_name); break; case _POT_SRC_PROJECT : sprintf (tmp, "%s.PotentialSource.project", vidf_name); break; case _POT_SRC_MISSION : sprintf (tmp, "%s.PotentialSource.mission", vidf_name); break; case _POT_SRC_EXPER : sprintf (tmp, "%s.PotentialSource.experiment", vidf_name); break; case _POT_SRC_INST : sprintf (tmp, "%s.PotentialSource.instrument", vidf_name); break; case _POT_SRC_VINST : sprintf (tmp, "%s.PotentialSource.vinstrument", vidf_name); break; case _POT_SRC_SENSOR : sprintf (tmp, "%s.PotentialSource.potential_sensor", vidf_name); break; case _POT_SRC_APPS : sprintf (tmp, "%s.PotentialSource.num_tbls", vidf_name); break; case _POT_SRC_TBLS : sprintf (tmp, "%s.PotentialSource.tbls", vidf_name); break; case _POT_SRC_OPS : sprintf (tmp, "%s.PotentialSource.opers", vidf_name); break; case _POT_CONSTANT_VAL : sprintf (tmp, "%s.PotentialSource.constant_value", vidf_name); break; case _HEADER_FORMAT : sprintf (tmp, "%s.header_format", vidf_name); break; case _TENSOR_RANK : sprintf (tmp, "%s.TensorDefinition.rank", vidf_name); break; case _TENSOR_LENGTHS : sprintf (tmp, "%s.TensorDefinition.rank_lengths", vidf_name); break; case _TENSOR_DNAMES : sprintf (tmp, "%s.TensorDefinition.dimension_name", vidf_name); break; case _TENSOR_MIN_VALS : sprintf (tmp, "%s.TensorDefinition.rank_min_vals", vidf_name); break; case _TENSOR_MAX_VALS : sprintf (tmp, "%s.TensorDefinition.rank_max_vals", vidf_name); break; case _START_SPIN_PROJECT : sprintf (tmp, "%s.StartOfSpin.project", vidf_name); break; case _START_SPIN_MISSION : sprintf (tmp, "%s.StartOfSpin.mission", vidf_name); break; case _START_SPIN_EXPER : sprintf (tmp, "%s.StartOfSpin.experiment", vidf_name); break; case _START_SPIN_INST : sprintf (tmp, "%s.StartOfSpin.instrument", vidf_name); break; case _START_SPIN_VINST : sprintf (tmp, "%s.StartOfSpin.vinstrument", vidf_name); break; case _START_SPIN_SENSOR : sprintf (tmp, "%s.StartOfSpin.sensor", vidf_name); break; case _START_SPIN_MSEC_ADJ : sprintf (tmp, "%s.StartOfSpin.msec_adj", vidf_name); break; case _START_SPIN_NSEC_ADJ : sprintf (tmp, "%s.StartOfSpin.nsec_adj", vidf_name); break; case _BKGD_DEFINED : sprintf (tmp, "%s.Background.format", vidf_name); break; case _BKGD_FORMAT : sprintf (tmp, "%s.Background.format", vidf_name); break; case _BKGD_PROJECT : sprintf (tmp, "%s.Background.project", vidf_name); break; case _BKGD_MISSION : sprintf (tmp, "%s.Background.mission", vidf_name); break; case _BKGD_EXPER : sprintf (tmp, "%s.Background.experiment", vidf_name); break; case _BKGD_INST : sprintf (tmp, "%s.Background.instrument", vidf_name); break; case _BKGD_VINST : sprintf (tmp, "%s.Background.vinstrument", vidf_name); break; case _BKGD_SENSORS : sprintf (tmp, "%s.Background.sensors", vidf_name); break; case _BKGD_APPS : sprintf (tmp, "%s.Background.num_tbls", vidf_name); break; case _BKGD_TBLS : sprintf (tmp, "%s.Background.tbls", vidf_name); break; case _BKGD_OPS : sprintf (tmp, "%s.Background.opers", vidf_name); break; default : printf ("Unknown what!!!!\n"); } /* switch (what) */ FindNameinVIDF (pVIDF, tmp, &ret_val); if (ret_val != NULL) { VIDFCheckReturnType (what, ret_val, ToBeFilled); FreeVIDFVals (&ret_val); return ALL_OKAY; } else return (VIDF_ELEMENT_NOT_FOUND); } void VIDFConvertToFloat (vidf_vals *ret_val, void *ToBeFilled) { SDDAS_FLOAT temp; temp = (SDDAS_FLOAT) ret_val->val.dval; memcpy (ToBeFilled, &temp, sizeof (SDDAS_FLOAT)); } void VIDFConvertToCharPtrs (vidf_vals *ret_val, void *ToBeFilled) { char **cptr = (char **) ToBeFilled; int i = 0; vidf_vals *temp = ret_val; while (temp != NULL) { cptr [i] = temp->val.sval; i++; temp = temp->next; } } void VIDFConvertToCharList (vidf_vals *ret_val, void *ToBeFilled) { int i = 0; SDDAS_CHAR *char_array = (SDDAS_CHAR *) ToBeFilled; vidf_vals *p = ret_val; while (p != NULL) { char_array [i] = (SDDAS_CHAR) p->val.ival; i++; p = p->next; } } void VIDFConvertToFloatList (vidf_vals *ret_val, void *ToBeFilled) { SDDAS_FLOAT *fptr = (SDDAS_FLOAT *) ToBeFilled; int i = 0; vidf_vals *p = ret_val; while (p != NULL) { fptr [i] = (SDDAS_FLOAT) p->val.dval; i++; p = p->next; } } void VIDFConvertToLongList (vidf_vals *ret_val, void *ToBeFilled) { // Need to be able to handle STRING tables in this routine! // Cloning loops for speed considerations if (ret_val->type == STRING) { char **sptr = (char **) ToBeFilled; int i = 0; vidf_vals *p = ret_val; while (p != NULL) { sptr [i] = p->val.sval; i++; p = p->next; } } else { SDDAS_LONG *lptr = (SDDAS_LONG *) ToBeFilled; int i = 0; vidf_vals *p = ret_val; while (p != NULL) { lptr [i] = (SDDAS_LONG) p->val.ival; i++; p = p->next; } } } void VIDFConvertToShortList (vidf_vals *ret_val, void *ToBeFilled) { SDDAS_SHORT *sptr = (SDDAS_SHORT *) ToBeFilled; int i = 0; vidf_vals *p = ret_val; while (p != NULL) { sptr [i] = (SDDAS_SHORT) p->val.ival; i++; p = p->next; } } void VIDFConvertToCharPtr (vidf_vals *ret_val, void *ToBeFilled) { memcpy (ToBeFilled, &ret_val->val.sval, sizeof (char *)); } void VIDFConvertToLong (vidf_vals *ret_val, void *ToBeFilled) { SDDAS_LONG tmp = (SDDAS_LONG) ret_val->val.ival; memcpy (ToBeFilled, &tmp, sizeof (SDDAS_LONG)); } void VIDFConvertToShort (vidf_vals *ret_val, void *ToBeFilled) { SDDAS_SHORT s; s = (SDDAS_SHORT) ret_val->val.ival; memcpy (ToBeFilled, &s, sizeof (SDDAS_SHORT)); } void VIDFConvertToChar (vidf_vals *ret_val, void *ToBeFilled) { SDDAS_CHAR s; s = (SDDAS_CHAR) ret_val->val.ival; memcpy (ToBeFilled, &s, sizeof (SDDAS_CHAR)); } void VIDFCheckReturnType (VIDF_DEFS what, vidf_vals *ret_val, void *ToBeFilled) { switch (what) { case _MISSION : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _SPACECRAFT : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _EXP_DESC : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _INST_DESC : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _CONTACT : VIDFConvertToCharPtrs (ret_val, ToBeFilled); break; case _DS_YEAR : VIDFConvertToShort (ret_val, ToBeFilled); break; case _DS_DAY : VIDFConvertToShort (ret_val, ToBeFilled); break; case _DS_MSEC : VIDFConvertToLong (ret_val, ToBeFilled); break; case _DS_USEC : VIDFConvertToLong (ret_val, ToBeFilled); break; case _DE_YEAR : VIDFConvertToShort (ret_val, ToBeFilled); break; case _DE_DAY : VIDFConvertToShort (ret_val, ToBeFilled); break; case _DE_MSEC : VIDFConvertToLong (ret_val, ToBeFilled); break; case _DE_USEC : VIDFConvertToShort (ret_val, ToBeFilled); break; case _DATA_LAT_UNITS : VIDFConvertToChar (ret_val, ToBeFilled); break; case _SWP_RESET_UNITS : VIDFConvertToChar (ret_val, ToBeFilled); break; case _SEN_RESET_UNITS : VIDFConvertToChar (ret_val, ToBeFilled); break; case _SMP_ID : VIDFConvertToChar (ret_val, ToBeFilled); break; case _SEN_MODE : VIDFConvertToChar (ret_val, ToBeFilled); break; case _N_QUAL : VIDFConvertToChar (ret_val, ToBeFilled); break; case _CAL_SETS : VIDFConvertToChar (ret_val, ToBeFilled); break; case _NUM_TBLS : VIDFConvertToChar (ret_val, ToBeFilled); break; case _NUM_CONSTS : VIDFConvertToChar (ret_val, ToBeFilled); break; case _STATUS : VIDFConvertToChar (ret_val, ToBeFilled); break; case _PA_DEFINED : assert (what != _PA_DEFINED); case _SEN : VIDFConvertToShort (ret_val, ToBeFilled); break; case _SWP_LEN : VIDFConvertToShort (ret_val, ToBeFilled); break; case _MAX_PACKING : VIDFConvertToShort (ret_val, ToBeFilled); break; case _MAX_NSS : VIDFConvertToShort (ret_val, ToBeFilled); break; case _DATA_LEN : VIDFConvertToLong (ret_val, ToBeFilled); break; case _FILL_FLG : VIDFConvertToChar (ret_val, ToBeFilled); break; case _FILL : VIDFConvertToLong (ret_val, ToBeFilled); break; case _DA_METHOD : VIDFConvertToChar (ret_val, ToBeFilled); break; case _PHI_METHOD : VIDFConvertToChar (ret_val, ToBeFilled); break; case _COORD_SYSTEM_DEFINED : VIDFConvertToChar (ret_val, ToBeFilled); break; case _COORD_SYSTEM : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _NANO_DEFINED : VIDFConvertToChar (ret_val, ToBeFilled); break; case _STATUS_NAME : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _STATE : case _STATES : VIDFConvertToShort (ret_val, ToBeFilled); break; case _SEN_NAME : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _CAL_NAMES : VIDFConvertToCharPtrs (ret_val, ToBeFilled); break; case _QUAL_NAME : VIDFConvertToCharPtrs (ret_val, ToBeFilled); break; case _PA_FORMAT : VIDFConvertToShort (ret_val, ToBeFilled); break; case _PA_PROJECT : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PA_MISSION : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PA_EXPER : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PA_INST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PA_VINST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PA_BX : VIDFConvertToShort (ret_val, ToBeFilled); break; case _PA_BY : VIDFConvertToShort (ret_val, ToBeFilled); break; case _PA_BZ : VIDFConvertToShort (ret_val, ToBeFilled); break; case _PA_APPS : VIDFConvertToShort (ret_val, ToBeFilled); break; case _PA_TBLS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _PA_OPS : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _D_TYPE : VIDFConvertToChar (ret_val, ToBeFilled); break; case _TDW_LEN : VIDFConvertToChar (ret_val, ToBeFilled); break; case _SEN_STATUS : VIDFConvertToChar (ret_val, ToBeFilled); break; case _TIME_OFF : VIDFConvertToLong (ret_val, ToBeFilled); break; case _SPIN_TIME_OFF : VIDFConvertToLong (ret_val, ToBeFilled); break; case _CAL_USE : VIDFConvertToShort (ret_val, ToBeFilled); break; case _CAL_WLEN : VIDFConvertToChar (ret_val, ToBeFilled); break; case _CAL_TARGET : VIDFConvertToChar (ret_val, ToBeFilled); break; case _CAL_SCOPE : VIDFConvertToChar (ret_val, ToBeFilled); break; case _CAL_D_TYPE : VIDFConvertToChar (ret_val, ToBeFilled); break; case _TBL_SCA_SZ : VIDFConvertToLong (ret_val, ToBeFilled); break; case _TBL_ELE_SZ : VIDFConvertToLong (ret_val, ToBeFilled); break; case _TBL_TYPE : VIDFConvertToChar (ret_val, ToBeFilled); break; case _TBL_VAR : VIDFConvertToChar (ret_val, ToBeFilled); break; case _TBL_EXPAND : VIDFConvertToChar (ret_val, ToBeFilled); break; case _CRIT_ACT_SZ : VIDFConvertToLong (ret_val, ToBeFilled); break; case _CRIT_STATUS : VIDFConvertToCharList (ret_val, ToBeFilled); break; case _CRIT_OFF : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _CRIT_ACTION : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _TBL_FMT : VIDFConvertToCharList (ret_val, ToBeFilled); break; case _TBL_OFF : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _TBL_SCA : VIDFConvertToCharList (ret_val, ToBeFilled); break; case _TBL : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _CONST_ID : VIDFConvertToChar (ret_val, ToBeFilled); break; case _CONST_SCA : VIDFConvertToCharList (ret_val, ToBeFilled); break; case _VIDF_CONST : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _VERSION : VIDFConvertToFloat (ret_val, ToBeFilled); break; case _PMI_DEFINED : VIDFConvertToChar (ret_val, ToBeFilled); break; case _PMI_FORMAT : VIDFConvertToShort (ret_val, ToBeFilled); break; case _NUM_PMI_ANGLES : VIDFConvertToShort (ret_val, ToBeFilled); break; case _PMI_PROJECT : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PMI_MISSION : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PMI_EXPER : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PMI_INST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PMI_VINST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _PMI_SENSORS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _PMI_ROTATION_AXIS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _PMI_APPS : VIDFConvertToShort (ret_val, ToBeFilled); break; case _PMI_TBLS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _PMI_OPS : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _CP_DEFINED : VIDFConvertToChar (ret_val, ToBeFilled); break; case _CP_FORMAT : VIDFConvertToShort (ret_val, ToBeFilled); break; case _CP_PROJECT : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _CP_MISSION : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _CP_EXPER : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _CP_INST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _CP_VINST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _CP_DECLINATION_SENSOR : VIDFConvertToShort (ret_val, ToBeFilled); break; case _CP_DECLINATION_APPS : VIDFConvertToShort (ret_val, ToBeFilled); break; case _CP_DECLINATION_TBLS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _CP_DECLINATION_OPS : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _CP_RT_ASCENSION_SENSOR : VIDFConvertToShort (ret_val, ToBeFilled); break; case _CP_RT_ASCENSION_APPS : VIDFConvertToShort (ret_val, ToBeFilled); break; case _CP_RT_ASCENSION_TBLS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _CP_RT_ASCENSION_OPS : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _ORBITING_BODY : VIDFConvertToShort (ret_val, ToBeFilled); break; case _REF_SEN_DELAY : VIDFConvertToFloat (ret_val, ToBeFilled); break; case _REF_SEN_DELAY_UNIT : VIDFConvertToShort (ret_val, ToBeFilled); break; case _POT_SRC_DEFINED : VIDFConvertToChar (ret_val, ToBeFilled); break; case _POT_SRC_FORMAT : VIDFConvertToShort (ret_val, ToBeFilled); break; case _POT_SRC_PROJECT : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _POT_SRC_MISSION : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _POT_SRC_EXPER : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _POT_SRC_INST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _POT_SRC_VINST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _POT_SRC_SENSOR : VIDFConvertToShort (ret_val, ToBeFilled); break; case _POT_SRC_APPS : VIDFConvertToShort (ret_val, ToBeFilled); break; case _POT_SRC_TBLS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _POT_SRC_OPS : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _POT_CONSTANT_VAL : VIDFConvertToFloat (ret_val, ToBeFilled); break; case _HEADER_FORMAT : VIDFConvertToChar (ret_val, ToBeFilled); break; case _TENSOR_RANK : VIDFConvertToShort (ret_val, ToBeFilled); break; case _TENSOR_LENGTHS : VIDFConvertToLongList (ret_val, ToBeFilled); break; case _TENSOR_DNAMES : VIDFConvertToCharPtrs (ret_val, ToBeFilled); break; case _TENSOR_MIN_VALS : VIDFConvertToFloatList (ret_val, ToBeFilled); break; case _TENSOR_MAX_VALS : VIDFConvertToFloatList (ret_val, ToBeFilled); break; case _START_SPIN_PROJECT : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _START_SPIN_MISSION : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _START_SPIN_EXPER : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _START_SPIN_INST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _START_SPIN_VINST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _START_SPIN_SENSOR : VIDFConvertToShort (ret_val, ToBeFilled); break; case _START_SPIN_MSEC_ADJ : VIDFConvertToLong (ret_val, ToBeFilled); break; case _START_SPIN_NSEC_ADJ : VIDFConvertToLong (ret_val, ToBeFilled); break; case _BKGD_DEFINED : VIDFConvertToChar (ret_val, ToBeFilled); break; case _BKGD_FORMAT : VIDFConvertToShort (ret_val, ToBeFilled); break; case _BKGD_PROJECT : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _BKGD_MISSION : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _BKGD_EXPER : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _BKGD_INST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _BKGD_VINST : VIDFConvertToCharPtr (ret_val, ToBeFilled); break; case _BKGD_SENSORS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _BKGD_APPS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _BKGD_TBLS : VIDFConvertToShortList (ret_val, ToBeFilled); break; case _BKGD_OPS : VIDFConvertToLongList (ret_val, ToBeFilled); break; default: printf ("newRead - unknown what!\n"); abort (); } }