// ********************************************************************************************************** // LSPSMotion.cs // 1/8/2024 // NGI - Next Generation Interceptor // // Contract No. HQ0856-21-C-0003/1022000209 // // THIS DOCUMENT DOES NOT CONTAIN TECHNOLOGY OR TECHNICAL DATA CONTROLLED UNDER EITHER THE U.S. // INTERNATIONAL TRAFFIC IN ARMS REGULATIONS OR THE U.S. EXPORT ADMINISTRATION REGULATIONS. // // RAYTHEON PROPRIETARY: THIS DOCUMENT CONTAINS DATA OR INFORMATION PROPRIETARY TO RAYTHEON // COMPANY AND IS RESTRICTED TO USE ONLY BY PERSONS AUTHORIZED BY RAYTHEON COMPANY IN WRITING TO USE IT. // DISCLOSURE TO UNAUTHORIZED PERSONS WOULD LIKELY CAUSE SUBSTANTIAL COMPETITIVE HARM TO RAYTHEON // COMPANY'S BUSINESS POSITION. NEITHER SAID DOCUMENT NOR ITS CONTENTS SHALL BE FURNISHED OR DISCLOSED // TO OR COPIED OR USED BY PERSONS OUTSIDE RAYTHEON COMPANY WITHOUT THE EXPRESS WRITTEN APPROVAL OF // RAYTHEON COMPANY. // // UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY. // // DESTRUCTION NOTICE: FOR CLASSIFIED DOCUMENTS FOLLOW THE PROCEDURES IN DOD 5220.22-M, // NATIONAL INDUSTRIAL SECURITY PROGRAM OPERATING MANUAL, FEBRUARY 2006, // INCORPORATING CHANGE 1, MARCH 28, 2013, CHAPTER 5, SECTION 7, OR DODM 5200.01-VOLUME 3, // DOD INFORMATION SECURITY PROGRAM: PROTECTION OF CLASSIFIED INFORMATION, ENCLOSURE 3, // SECTION 17. FOR CONTROLLED UNCLASSIFIED INFORMATION FOLLOW THE PROCEDURES IN DODM 5200.01-VOLUME 4, // INFORMATION SECURITY PROGRAM: CONTROLLED UNCLASSIFIED INFORMATION. // // CONTROLLED BY: MISSILE DEFENSE AGENCY // CONTROLLED BY: GROUND-BASED MIDCOURSE DEFENSE PROGRAM OFFICE // CUI CATEGORY: CTI // DISTRIBUTION/DISSEMINATION CONTROL: F // POC: Alex Kravchenko (1118268) // ********************************************************************************************************** using NLog; using Raytheon.Common; using System; using System.Collections.Generic; using System.IO; namespace Raytheon.Instruments { /// /// NCDF Data instrument /// public class NetCdfData : INetCdfData { /// /// NLog logger /// private static ILogger logger_; /// /// Raytheon configuration /// private readonly IConfigurationManager _configurationManager; private readonly IConfiguration _configuration; public string DetailedStatus => throw new NotImplementedException(); public bool DisplayEnabled { get => false; set => throw new NotImplementedException(); } public bool FrontPanelEnabled { get => false; set => throw new NotImplementedException(); } public InstrumentMetadata Info => throw new NotImplementedException(); public string Name { get; set; } public SelfTestResult SelfTestResult => throw new NotImplementedException(); public State Status => throw new NotImplementedException(); public bool ClearErrors() => false; public SelfTestResult PerformSelfTest() => throw new NotImplementedException(); /// /// Initialize the device /// public void Initialize() { logger_.Trace($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method..."); } /// /// Shuts down the device /// public void Shutdown() { logger_.Trace($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method..."); } public void Reset() { logger_.Trace($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method..."); } /// /// LSPS factory constructor /// /// /// public NetCdfData(string deviceName, IConfigurationManager configurationManager, ILogger logger) { Name = deviceName; logger_ = logger; _configurationManager = configurationManager; _configuration = _configurationManager.GetConfiguration(Name); } public void ProcessNcdfData(string prefix, string suffix, string testDataPath) { AddDefaultNetCdfData(); string attributeFilename = prefix + "_" + DateTime.Now.ToString("yyyMMdd_HHmmss") + "_" + suffix + ".txt"; if (testDataPath != null) { string attributeFilePath = Path.Combine(testDataPath, attributeFilename); WriteNcdfDataLog(attributeFilePath); } } public void WriteNcdfDataLog(string attributeFilePath) { const char separator = '\t'; using (var fileStream = new FileStream(attributeFilePath, FileMode.Create, FileAccess.ReadWrite)) using (var streamWriter = new StreamWriter(fileStream)) { foreach (KeyValuePair entry in valueMap_) { if (entry.Value.set_) { streamWriter.WriteLine(entry.Value.name_ + separator + entry.Value.videoId_.ToString() + separator + entry.Value.value_ + separator + "NONE" + separator + entry.Value.type_); } } } } private void AddDefaultNetCdfData() { SetValue(NCDF.Names.DATA_FOLDER, "---", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SITE_LOCATION, "---", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.BENCH, "---", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.TESTPOSITIONTYPE, "---", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.BUILDING, "809", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.C_O_L, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.OPERATOR, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.T_E_B_B_CONTROLLER_S_N, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.TEST_PROCEDURE_DOC_REV, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.TEST_PROCEDURE_DOC, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.TEST_TYPE_CODE, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.TEST_TYPE_VARIANT, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.REMARKS, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SEEKER_SN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SEEKER_PN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.GEU_SN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.GEU_PN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SENSOR_SN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SENSOR_PN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.IMU_SN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.IMU_PN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.IICCA_SN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.IICCA_PN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.IDA_SN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.IDA_PN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.CRYOSTAT_SN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.CRYOSTAT_PN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SEEKER_BUILD, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.FPA_SN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.DATE, DateTime.Now.ToString("yyyMMdd"), NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.TIME_RECORDED, DateTime.Now.ToString("HHmmss"), NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.X_START, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.Y_START, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.X_SIZE, 512, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.Y_SIZE, 512, NCDF.AttrPosition.GLOBAL); } private void AddVobVideoData() { SetValue(NCDF.Names.CHOPPER_STATUS, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.V_O_B_CHOPPER_STATUS, 0, NCDF.AttrPosition.GLOBAL); // target wheel pos SetValue(NCDF.Names.MEASURED_APERTURE_POSITION, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.APERTURE, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.V_O_B_APERTURE, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.TARGET_WHEEL_POSITION, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.MEASURED_FILTER_POSITION, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.VOB_FILTER_POS, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.VOB_GATE_VALVE_STATUS, 0, NCDF.AttrPosition.GLOBAL); // az beam pos SetValue(NCDF.Names.MEASURED_AZ_POSITION, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.AZ_LOCATION, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SCAN_MIRROR_X_POSITION, 0.0, NCDF.AttrPosition.GLOBAL); // el beam pos SetValue(NCDF.Names.MEASURED_EL_POSITION, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.EL_LOCATION, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SCAN_MIRROR_Y_POSITION, 0.0, NCDF.AttrPosition.GLOBAL); //vacuum pressure SetValue(NCDF.Names.CHAMBER_PRESSURE, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.V_O_B_CHAMBER_PRESSURE, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.FOCUS_POSITION, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.GALILC_FOCUS_POSITION, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.GALILC_ABS_FOCUS_POSITION, 0.0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.GALILC_ENCODER_FOCUS_POSITION, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.B_B_E_S_TARGET, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.EMISSIVITY, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.CUTOFFWAVELENGTH, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.CUTONWAVELENGTH, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.REGION, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.TARGET_REGION, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SCAN_PATTERN, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.SCAN_RADIUS, "UNKNOWN", NCDF.AttrPosition.GLOBAL); if (!IsValueSet(NCDF.Names.MONOCHROMETER_POSITION)) { SetValue(NCDF.Names.MONOCHROMETER_POSITION, 0, NCDF.AttrPosition.GLOBAL); } SetValue(NCDF.Names.MEASURED_MONOCHROMETER_POSITION, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.MEASURED_BLACK_BODY_TEMPERATURE, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.V_O_B_CAN_TEMP, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.V_O_B_LAMBDA, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.VOB_REGION, 0, NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.VOB_TARGET_REGION, "UNKNOWN", NCDF.AttrPosition.GLOBAL); SetValue(NCDF.Names.VOB_GATE_VALVE_STATUS, "UNKNOWN", NCDF.AttrPosition.GLOBAL); } public void SetValue(NCDF.Names name, T value, NCDF.AttrPosition videoId) { if (typeof(T) == typeof(double)) { valueMap_[name] = new NCDF.NetCdfValue(value.ToString(), valueMap_[name].name_, true, videoId, NCDF.DataType.FLOAT); } else if (typeof(T) == typeof(int)) { valueMap_[name] = new NCDF.NetCdfValue(value.ToString(), valueMap_[name].name_, true, videoId, NCDF.DataType.INT); } else if (typeof(T) == typeof(string)) { valueMap_[name] = new NCDF.NetCdfValue((string)(object)value, valueMap_[name].name_, true, videoId, NCDF.DataType.STRING); } } public void GetValue(NCDF.Names name, ref string value, ref NCDF.AttrPosition videoId, ref NCDF.DataType type) { value = valueMap_[name].value_; videoId = valueMap_[name].videoId_; type = valueMap_[name].type_; } public bool IsValueSet(NCDF.Names name) { return valueMap_[name].set_; } public Dictionary valueMap_ = new Dictionary { {NCDF.Names.ACTIVITY, new NCDF.NetCdfValue("Not Used", "Activity", false) }, {NCDF.Names.APERTURE, new NCDF.NetCdfValue("Not Used", "Aperture", false) }, {NCDF.Names.AZ_LOCATION, new NCDF.NetCdfValue("Not Used", "Az_Location", false) }, {NCDF.Names.B_B_CONTROLER, new NCDF.NetCdfValue("Not Used", "BB_Controler", false) }, {NCDF.Names.CHOPPER_FREQ, new NCDF.NetCdfValue("Not Used", "Chopper_Freq", false) }, {NCDF.Names.DATA_FOLDER, new NCDF.NetCdfValue("Not Used", "Data_Folder", false) }, {NCDF.Names.DATE, new NCDF.NetCdfValue("Not Used", "Date", false) }, {NCDF.Names.EL_LOCATION, new NCDF.NetCdfValue("Not Used", "El_Location", false) }, {NCDF.Names.FILENAME, new NCDF.NetCdfValue("Not Used", "Filename", false) }, {NCDF.Names.F_P_A, new NCDF.NetCdfValue("Not Used", "F_p_a", false) }, {NCDF.Names.INDICATOR_CODE, new NCDF.NetCdfValue("Not Used", "Indicator_Code", false) }, {NCDF.Names.SITE_LOCATION, new NCDF.NetCdfValue("Not Used", "Site_Location", false) }, {NCDF.Names.MEASURED_APERTURE_POSITION, new NCDF.NetCdfValue("Not Used", "Measured_Aperture_Position", false) }, {NCDF.Names.MEASURED_AZ_POSITION, new NCDF.NetCdfValue("Not Used", "Measured_Az_Position", false) }, {NCDF.Names._B_B_TEMP, new NCDF.NetCdfValue("Not Used", "BBTemp", false) }, {NCDF.Names.MEASURED_EL_POSITION, new NCDF.NetCdfValue("Not Used", "Measured_El_Position", false) }, {NCDF.Names.MEASURED_FILTER_POSITION, new NCDF.NetCdfValue("Not Used", "Measured_Filter_Position", false) }, {NCDF.Names.N_FRAMES, new NCDF.NetCdfValue("Not Used", "N_Frames", false) }, {NCDF.Names.OPERATOR, new NCDF.NetCdfValue("Not Used", "Operator", false) }, {NCDF.Names.POSITION, new NCDF.NetCdfValue("Not Used", "Position", false) }, {NCDF.Names.REMARKS, new NCDF.NetCdfValue("Not Used", "Remarks", false) }, {NCDF.Names.RADCAL_AUTOFILL_STATE, new NCDF.NetCdfValue("Not Used", "Radcal_Autofill_State", false) }, {NCDF.Names.RADCAL_AUTOFILL_TIMETOFILL, new NCDF.NetCdfValue("Not Used", "Radcal_Autofill_Timetofill", false) }, {NCDF.Names.RADCAL_BB_BIT, new NCDF.NetCdfValue("Not Used", "Radcal_Bb_Bit", false) }, {NCDF.Names.RADCAL_BB_CTRL_STATE, new NCDF.NetCdfValue("Not Used", "Radcal_Bb_Ctrl_State", false) }, {NCDF.Names.RADCAL_BB_HEATER, new NCDF.NetCdfValue("Not Used", "Radcal_Bb_Heater", false) }, {NCDF.Names.RADCAL_BB_RATE_O_CHANGE, new NCDF.NetCdfValue("Not Used", "Radcal_Bb_Rate_O_Change", false) }, {NCDF.Names.RADCAL_BB_SETPOINT, new NCDF.NetCdfValue("Not Used", "Radcal_Bb_Setpoint", false) }, {NCDF.Names.RADCAL_BB_STABILITY_A, new NCDF.NetCdfValue("Not Used", "Radcal_Bb_Stability_A", false) }, {NCDF.Names.RADCAL_BB_STABILITY_B, new NCDF.NetCdfValue("Not Used", "Radcal_Bb_Stability_B", false) }, {NCDF.Names.RADCAL_C_VAC, new NCDF.NetCdfValue("Not Used", "Radcal_C_Vac", false) }, {NCDF.Names.RADCAL_CHOPPER_FREQ, new NCDF.NetCdfValue("Not Used", "Radcal_Chopper_Freq", false) }, {NCDF.Names.RADCAL_CHOPPER_STABILITY, new NCDF.NetCdfValue("Not Used", "Radcal_Chopper_Stability", false) }, {NCDF.Names.RADCAL_CHOPPER_STATE, new NCDF.NetCdfValue("Not Used", "Radcal_Chopper_State", false) }, {NCDF.Names.RADCAL_GATE_VALVE, new NCDF.NetCdfValue("Not Used", "Radcal_Gate_Valve", false) }, {NCDF.Names.RADCAL_NIF_TEMP_TANK_BOTTOM, new NCDF.NetCdfValue("Not Used", "Radcal_Nif_Temp_Tank_Bottom", false) }, {NCDF.Names.RADCAL_NIF_TEMP_TANK_TOP, new NCDF.NetCdfValue("Not Used", "Radcal_Nif_Temp_Tank_Top", false) }, {NCDF.Names.RADCAL_PVAC_RVAC, new NCDF.NetCdfValue("Not Used", "Radcal_Pvac_Rvac", false) }, {NCDF.Names.RADCAL_PVAC_TVAC, new NCDF.NetCdfValue("Not Used", "Radcal_Pvac_Tvac", false) }, {NCDF.Names.RADCAL_S_VAC, new NCDF.NetCdfValue("Not Used", "Radcal_S_Vac", false) }, {NCDF.Names.VHF_GV_CHAMBER_VAC, new NCDF.NetCdfValue("Not Used", "Vhf_Gv_Chamber_Vac", false) }, {NCDF.Names.VHF_GV_UUT_VAC, new NCDF.NetCdfValue("Not Used", "Vhf_Gv_Uut_Vac", false) }, {NCDF.Names.REGION, new NCDF.NetCdfValue("Not Used", "Region", false) }, {NCDF.Names.SCAN_MIRROR_X_POSITION, new NCDF.NetCdfValue("Not Used", "Scan_mirror_x_position", false) }, {NCDF.Names.SCAN_MIRROR_Y_POSITION, new NCDF.NetCdfValue("Not Used", "Scan_mirror_y_position", false) }, {NCDF.Names.SCAN_SPEED, new NCDF.NetCdfValue("Not Used", "Scan_Speed", false) }, {NCDF.Names.SCAN_PATTERN, new NCDF.NetCdfValue("Not Used", "Scan_Pattern", false) }, {NCDF.Names.SCAN_RADIUS, new NCDF.NetCdfValue("Not Used", "Scan_Radius", false) }, {NCDF.Names.SCRIPT_NAME, new NCDF.NetCdfValue("Not Used", "Script_Name", false) }, {NCDF.Names.SET_POINT_AZ, new NCDF.NetCdfValue("Not Used", "Set_Point_Az", false) }, {NCDF.Names.SET_POINT_EL, new NCDF.NetCdfValue("Not Used", "Set_Point_El", false) }, {NCDF.Names.TARGET_WHEEL_POSITION, new NCDF.NetCdfValue("Not Used", "Target_Wheel_Position", false) }, {NCDF.Names.TEST_POSITION_NO, new NCDF.NetCdfValue("Not Used", "TestPositionNo", false) }, {NCDF.Names.TEST_PROCEDURE_DOC, new NCDF.NetCdfValue("Not Used", "TestProcedureDoc", false) }, {NCDF.Names.TEST_PROCEDURE_DOC_REV, new NCDF.NetCdfValue("Not Used", "TestProcedureDocRev", false) }, {NCDF.Names.TEST_STEP, new NCDF.NetCdfValue("Not Used", "Test_Step", false) }, {NCDF.Names.TEST_TYPE_CODE, new NCDF.NetCdfValue("Not Used", "TestTypeCode", false) }, {NCDF.Names.TIME_RECORDED, new NCDF.NetCdfValue("Not Used", "Time_Recorded", false) }, {NCDF.Names.VERSION, new NCDF.NetCdfValue("Not Used", "Version", false) }, {NCDF.Names.V_O_B_APERTURE, new NCDF.NetCdfValue("Not Used", "VOB_Aperture", false) }, {NCDF.Names.VOB_CAN_TEMP, new NCDF.NetCdfValue("Not Used", "Vob_Can_Temp", false) }, {NCDF.Names.CHOPPER_STATUS, new NCDF.NetCdfValue("Not Used", "Chopper_Status", false) }, {NCDF.Names.VOB_FILTER_POS, new NCDF.NetCdfValue("Not Used", "Vob_Filter_Pos", false) }, {NCDF.Names.VOB_GATE_VALVE_STATUS, new NCDF.NetCdfValue("Not Used", "Vob_Gate_Valve_Status", false) }, {NCDF.Names.VOB_LAMBDA, new NCDF.NetCdfValue("Not Used", "Vob_Lambda", false) }, {NCDF.Names.VOB_REGION, new NCDF.NetCdfValue("Not Used", "Vob_Region", false) }, {NCDF.Names.VOB_TARGET_REGION, new NCDF.NetCdfValue("Not Used", "Vob_Target_Region", false) }, {NCDF.Names.CHAMBER_PRESSURE, new NCDF.NetCdfValue("Not Used", "Chamber_Pressure", false) }, {NCDF.Names.VOB_CHOPPER_FREQ, new NCDF.NetCdfValue("Not Used", "Vob_Chopper_Freq", false) }, {NCDF.Names.VSS_INPUT_CHOPPER_FREQ, new NCDF.NetCdfValue("Not Used", "Vss_Input_Chopper_Freq", false) }, {NCDF.Names.VSS_INPUT_CHOPPER_STATUS, new NCDF.NetCdfValue("Not Used", "Vss_Input_Chopper_Status", false) }, {NCDF.Names.VSS_MID_CHOPPER_FREQ, new NCDF.NetCdfValue("Not Used", "Vss_Mid_Chopper_Freq", false) }, {NCDF.Names.VSS_MID_CHOPPER_STATUS, new NCDF.NetCdfValue("Not Used", "Vss_Mid_Chopper_Status", false) }, {NCDF.Names.X_LOCATION, new NCDF.NetCdfValue("Not Used", "X_Location", false) }, {NCDF.Names.X_SIZE, new NCDF.NetCdfValue("Not Used", "X_Size", false) }, {NCDF.Names.X_TARGET, new NCDF.NetCdfValue("Not Used", "X_Target", false) }, {NCDF.Names.Y_LOCATION, new NCDF.NetCdfValue("Not Used", "Y_Location", false) }, {NCDF.Names.Y_SIZE, new NCDF.NetCdfValue("Not Used", "Y_Size", false) }, {NCDF.Names.Y_TARGET, new NCDF.NetCdfValue("Not Used", "Y_Target", false) }, {NCDF.Names.LAST_BAND_SEL, new NCDF.NetCdfValue("Not Used", "LastBandSel", false) }, {NCDF.Names.BAND_SEL, new NCDF.NetCdfValue("Not Used", "BandSel", false) }, {NCDF.Names.READ_SEQ_DEL, new NCDF.NetCdfValue("Not Used", "ReadSeqDel", false) }, {NCDF.Names.ROW_START, new NCDF.NetCdfValue("Not Used", "RowStart", false) }, {NCDF.Names.ROW_STOP, new NCDF.NetCdfValue("Not Used", "RowStop", false) }, {NCDF.Names.INTEGRATION_TIME, new NCDF.NetCdfValue("Not Used", "Integration_Time", false) }, {NCDF.Names.B1_DET_BIAS_OFFS, new NCDF.NetCdfValue("Not Used", "B1DetBiasOffs", false) }, {NCDF.Names.B1_DET_BIAS, new NCDF.NetCdfValue("Not Used", "B1DetBias", false) }, {NCDF.Names.B2_DET_BIAS, new NCDF.NetCdfValue("Not Used", "B2DetBias", false) }, {NCDF.Names.UC_GAIN, new NCDF.NetCdfValue("Not Used", "UcGain", false) }, {NCDF.Names.BGSEN, new NCDF.NetCdfValue("Not Used", "Bgsen", false) }, {NCDF.Names.B1_RAMP, new NCDF.NetCdfValue("Not Used", "B1Ramp", false) }, {NCDF.Names.B2_RAMP, new NCDF.NetCdfValue("Not Used", "B2Ramp", false) }, {NCDF.Names.COL_AMP_GAIN, new NCDF.NetCdfValue("Not Used", "ColAmpGain", false) }, {NCDF.Names.COL_AMP_IN_OFFS, new NCDF.NetCdfValue("Not Used", "ColAmpInOffs", false) }, {NCDF.Names.COL_AMP_OUT_OFFS, new NCDF.NetCdfValue("Not Used", "ColAmpOutOffs", false) }, {NCDF.Names.OUT_BUF_SLEW, new NCDF.NetCdfValue("Not Used", "OutBufSlew", false) }, {NCDF.Names.OUT_BUF_CAS, new NCDF.NetCdfValue("Not Used", "OutBufCas", false) }, {NCDF.Names.RESET_TIME, new NCDF.NetCdfValue("Not Used", "ResetTime", false) }, {NCDF.Names.GLOBAL_TEST_ENABLE, new NCDF.NetCdfValue("Not Used", "GlobalTestEnable", false) }, {NCDF.Names.UC_RAMP_TEST, new NCDF.NetCdfValue("Not Used", "UcRampTest", false) }, {NCDF.Names.SEEKER_SN, new NCDF.NetCdfValue("Not Used", "SeekerSn", false) }, {NCDF.Names.SEEKER_PN, new NCDF.NetCdfValue("Not Used", "SeekerPn", false) }, {NCDF.Names.GEU_PN, new NCDF.NetCdfValue("Not Used", "GeuPn", false) }, {NCDF.Names.GEU_SN, new NCDF.NetCdfValue("Not Used", "GeuSn", false) }, {NCDF.Names.SENSOR_SN, new NCDF.NetCdfValue("Not Used", "Sensor_Sn", false) }, {NCDF.Names.SENSOR_PN, new NCDF.NetCdfValue("Not Used", "Sensor_Pn", false) }, {NCDF.Names.IMU_SN, new NCDF.NetCdfValue("Not Used", "ImuSn", false) }, {NCDF.Names.IMU_PN, new NCDF.NetCdfValue("Not Used", "ImuPn", false) }, {NCDF.Names.IICCA_SN, new NCDF.NetCdfValue("Not Used", "IiccaSn", false) }, {NCDF.Names.IICCA_PN, new NCDF.NetCdfValue("Not Used", "IiccaPn", false) }, {NCDF.Names.IDA_SN, new NCDF.NetCdfValue("Not Used", "IdaSn", false) }, {NCDF.Names.IDA_PN, new NCDF.NetCdfValue("Not Used", "IdaPn", false) }, {NCDF.Names.CRYOSTAT_SN, new NCDF.NetCdfValue("Not Used", "CryostatSn", false) }, {NCDF.Names.CRYOSTAT_PN, new NCDF.NetCdfValue("Not Used", "CryostatPn", false) }, {NCDF.Names.ENVIRONMENT_ERROR, new NCDF.NetCdfValue("Not Used", "Environment_error", false) }, {NCDF.Names.SET_LAST_BAND_SEL, new NCDF.NetCdfValue("Not Used", "SetLastBandSel", false) }, {NCDF.Names.SET_BAND_SEL, new NCDF.NetCdfValue("Not Used", "SetBandSel", false) }, {NCDF.Names.SET_READ_SEQ_DEL, new NCDF.NetCdfValue("Not Used", "SetReadSeqDel", false) }, {NCDF.Names.SET_ROW_START, new NCDF.NetCdfValue("Not Used", "SetRowStart", false) }, {NCDF.Names.SET_ROW_STOP, new NCDF.NetCdfValue("Not Used", "SetRowStop", false) }, {NCDF.Names.SET_INTEG_TIME, new NCDF.NetCdfValue("Not Used", "SetIntegTime", false) }, {NCDF.Names.SET_B1_DET_BIAS_OFFS, new NCDF.NetCdfValue("Not Used", "SetB1DetBiasOffs", false) }, {NCDF.Names.SET_B1_DET_BIAS, new NCDF.NetCdfValue("Not Used", "SetB1DetBias", false) }, {NCDF.Names.SET_B2_DET_BIAS, new NCDF.NetCdfValue("Not Used", "SetB2DetBias", false) }, {NCDF.Names.SET_UC_GAIN, new NCDF.NetCdfValue("Not Used", "SetUcGain", false) }, {NCDF.Names.SET_BGSEN, new NCDF.NetCdfValue("Not Used", "SetBgsen", false) }, {NCDF.Names.SET_B1_RAMP, new NCDF.NetCdfValue("Not Used", "SetB1Ramp", false) }, {NCDF.Names.SET_B2_RAMP, new NCDF.NetCdfValue("Not Used", "SetB2Ramp", false) }, {NCDF.Names.SET_COL_AMP_GAIN, new NCDF.NetCdfValue("Not Used", "SetColAmpGain", false) }, {NCDF.Names.SET_COL_AMP_IN_OFFS, new NCDF.NetCdfValue("Not Used", "SetColAmpInOffs", false) }, {NCDF.Names.SET_COL_AMP_OUT_OFFS, new NCDF.NetCdfValue("Not Used", "SetColAmpOutOffs", false) }, {NCDF.Names.SET_OUT_BUF_SLEW, new NCDF.NetCdfValue("Not Used", "SetOutBufSlew", false) }, {NCDF.Names.SET_OUT_BUF_CAS, new NCDF.NetCdfValue("Not Used", "SetOutBufCas", false) }, {NCDF.Names.SET_RESET_TIME, new NCDF.NetCdfValue("Not Used", "SetResetTime", false) }, {NCDF.Names.SET_GLOBAL_TEST_ENABLE, new NCDF.NetCdfValue("Not Used", "SetGlobalTestEnable", false) }, {NCDF.Names.SET_UC_RAMP_TEST, new NCDF.NetCdfValue("Not Used", "SetUcRampTest", false) }, {NCDF.Names.BAND, new NCDF.NetCdfValue("Not Used", "Band", false) }, {NCDF.Names.FILE_TYPE, new NCDF.NetCdfValue("Not Used", "File_Type", false) }, {NCDF.Names.FRAME_RATE, new NCDF.NetCdfValue("Not Used", "Frame_Rate", false) }, {NCDF.Names.INTEGRATION_TIME_BAND1, new NCDF.NetCdfValue("Not Used", "Integration_Time_Band1", false) }, {NCDF.Names.INTEGRATION_TIME_BAND2, new NCDF.NetCdfValue("Not Used", "Integration_Time_Band2", false) }, {NCDF.Names.LAKESHORE_SLOPE, new NCDF.NetCdfValue("Not Used", "Lakeshore_Slope", false) }, {NCDF.Names.LAKESHORE_INTERCEPT, new NCDF.NetCdfValue("Not Used", "Lakeshore_Intercept", false) }, {NCDF.Names.LOCATION_ORIGIN, new NCDF.NetCdfValue("Not Used", "Location_Origin", false) }, {NCDF.Names.SENSOR_CONFIGURATION, new NCDF.NetCdfValue("Not Used", "Sensor_Configuration", false) }, {NCDF.Names.SERIAL, new NCDF.NetCdfValue("Not Used", "Serial", false) }, {NCDF.Names.VIDEO_TEST, new NCDF.NetCdfValue("Not Used", "Video_test", false) }, {NCDF.Names.X_START, new NCDF.NetCdfValue("Not Used", "X_Start", false) }, {NCDF.Names.Y_START, new NCDF.NetCdfValue("Not Used", "Y_Start", false) }, {NCDF.Names._V_DET_COM, new NCDF.NetCdfValue("Not Used", "vDetCom", false) }, {NCDF.Names.VRAMP, new NCDF.NetCdfValue("Not Used", "Vramp", false) }, {NCDF.Names.IICCA_FIRM_VER, new NCDF.NetCdfValue("Not Used", "Iicca_Firm_Ver", false) }, {NCDF.Names.IDA_VOLTS, new NCDF.NetCdfValue("Not Used", "Ida_Volts", false) }, {NCDF.Names.IDA_TEMP, new NCDF.NetCdfValue("Not Used", "Ida_Temp", false) }, {NCDF.Names.V_P3_R4_A_S, new NCDF.NetCdfValue("Not Used", "VP3R4AS", false) }, {NCDF.Names.V_N3_R4_A, new NCDF.NetCdfValue("Not Used", "VN3R4A", false) }, {NCDF.Names.V_P5_R3_A, new NCDF.NetCdfValue("Not Used", "VP5R3A", false) }, {NCDF.Names.BIAS_RESERVE, new NCDF.NetCdfValue("Not Used", "BiasReserve", false) }, {NCDF.Names.VP_DET_COM_B1, new NCDF.NetCdfValue("Not Used", "VpDetComB1", false) }, {NCDF.Names.VP_E_S_D, new NCDF.NetCdfValue("Not Used", "VpESD", false) }, {NCDF.Names.VN_OUT, new NCDF.NetCdfValue("Not Used", "VnOut", false) }, {NCDF.Names.VP_OUT, new NCDF.NetCdfValue("Not Used", "VpOut", false) }, {NCDF.Names.VN_UC, new NCDF.NetCdfValue("Not Used", "VnUc", false) }, {NCDF.Names.VP_UC, new NCDF.NetCdfValue("Not Used", "VpUc", false) }, {NCDF.Names.VN_D, new NCDF.NetCdfValue("Not Used", "VnD", false) }, {NCDF.Names.VP_D, new NCDF.NetCdfValue("Not Used", "VpD", false) }, {NCDF.Names.VN_A, new NCDF.NetCdfValue("Not Used", "VnA", false) }, {NCDF.Names.VP_A, new NCDF.NetCdfValue("Not Used", "VpA", false) }, {NCDF.Names.BENCH, new NCDF.NetCdfValue("Not Used", "Bench", false) }, {NCDF.Names.SEEKER_BUILD, new NCDF.NetCdfValue("Not Used", "Seeker_Build", false) }, {NCDF.Names.SENSOR_BUILD, new NCDF.NetCdfValue("Not Used", "Sensor_Build", false) }, {NCDF.Names.PROGRAM_NAME, new NCDF.NetCdfValue("Not Used", "Program_Name", false) }, {NCDF.Names.TESTPOSITIONTYPE, new NCDF.NetCdfValue("Not Used", "Testpositiontype", false) }, {NCDF.Names.TEST_TYPE_VARIANT, new NCDF.NetCdfValue("Not Used", "TestTypeVariant", false) }, {NCDF.Names.ENVIRONMENT_ERROR_NOTES, new NCDF.NetCdfValue("Not Used", "Environment_error_notes", false) }, {NCDF.Names.T_E_CHAMBER_I_D, new NCDF.NetCdfValue("Not Used", "TE_Chamber_ID", false) }, {NCDF.Names.T_E_G_U_T_S_I_D, new NCDF.NetCdfValue("Not Used", "TE_GUTS_ID", false) }, {NCDF.Names.T_E_C_T_S_I_D, new NCDF.NetCdfValue("Not Used", "TE_CTS_ID", false) }, {NCDF.Names.T_E_SHAKER_I_D, new NCDF.NetCdfValue("Not Used", "TE_Shaker_ID", false) }, {NCDF.Names.T_E_THERMOTRON_I_D, new NCDF.NetCdfValue("Not Used", "TE_Thermotron_ID", false) }, {NCDF.Names.T_E_CHAMBER_WINDOW_I_D, new NCDF.NetCdfValue("Not Used", "TE_Chamber_Window_ID", false) }, {NCDF.Names.T_E_U_U_T_WINDOW_I_D, new NCDF.NetCdfValue("Not Used", "TE_UUT_Window_ID", false) }, {NCDF.Names.T_E_B_B_CONTROLLER_S_N, new NCDF.NetCdfValue("Not Used", "TE_BB_Controller_SN", false) }, {NCDF.Names.T_E_V_S_S_PYRO_DET, new NCDF.NetCdfValue("Not Used", "TE_VSS_Pyro_Det", false) }, {NCDF.Names.T_E_CHAMBER_SW_VERSION, new NCDF.NetCdfValue("Not Used", "TE_Chamber_Sw_Version", false) }, {NCDF.Names.T_E_CHAMBER_SW_BUILD, new NCDF.NetCdfValue("Not Used", "TE_Chamber_Sw_Build", false) }, {NCDF.Names.T_E_G_U_T_S_S_W_VERSION, new NCDF.NetCdfValue("Not Used", "TE_GUTS_SW_Version", false) }, {NCDF.Names.T_E_G_U_T_S_S_W_BUILD, new NCDF.NetCdfValue("Not Used", "TE_GUTS_SW_Build", false) }, {NCDF.Names.T_E_V_T_I_FIRMWARE_VERSION, new NCDF.NetCdfValue("Not Used", "TE_VTI_Firmware_Version", false) }, {NCDF.Names.T_E_V_T_I_FIRMWARE_BUILD, new NCDF.NetCdfValue("Not Used", "TE_VTI_Firmware_Build", false) }, {NCDF.Names.T_E_I_A_F_S_W_VERSION, new NCDF.NetCdfValue("Not Used", "TE_IAF_SW_Version", false) }, {NCDF.Names.T_E_I_A_F_S_W_BUILD, new NCDF.NetCdfValue("Not Used", "TE_IAF_SW_Build", false) }, {NCDF.Names.MONOCHROMETER_POSITION, new NCDF.NetCdfValue("Not Used", "Monochrometer_Position", false) }, {NCDF.Names.B_B_E_S_TARGET, new NCDF.NetCdfValue("Not Used", "BBES_Target", false) }, {NCDF.Names.EMISSIVITY, new NCDF.NetCdfValue("Not Used", "Emissivity", false) }, {NCDF.Names.CUTOFFWAVELENGTH, new NCDF.NetCdfValue("Not Used", "Cutoffwavelength", false) }, {NCDF.Names.CUTONWAVELENGTH, new NCDF.NetCdfValue("Not Used", "Cutonwavelength", false) }, {NCDF.Names.TARGET_REGION, new NCDF.NetCdfValue("Not Used", "Target_Region", false) }, {NCDF.Names.MEASURED_BLACK_BODY_TEMPERATURE, new NCDF.NetCdfValue("Not Used", "Measured_Black_Body_Temperature", false) }, {NCDF.Names.MEASURED_MONOCHROMETER_POSITION, new NCDF.NetCdfValue("Not Used", "Measured_Monochrometer_Position", false) }, {NCDF.Names.V_O_B_CAN_TEMP, new NCDF.NetCdfValue("Not Used", "VOB_Can_Temp", false) }, {NCDF.Names.V_O_B_CHAMBER_PRESSURE, new NCDF.NetCdfValue("Not Used", "VOB_Chamber_Pressure", false) }, {NCDF.Names.V_O_B_CHOPPER_STATUS, new NCDF.NetCdfValue("Not Used", "VOB_Chopper_Status", false) }, {NCDF.Names.V_O_B_LAMBDA, new NCDF.NetCdfValue("Not Used", "VOB_Lambda", false) }, {NCDF.Names.L_S_P_S_GATE_VALVE_STATUS, new NCDF.NetCdfValue("Not Used", "LSPS_gate_valve_status", false) }, {NCDF.Names.SENSOR, new NCDF.NetCdfValue("Not Used", "Sensor", false) }, {NCDF.Names.VGATE, new NCDF.NetCdfValue("Not Used", "Vgate", false) }, {NCDF.Names.VOFFSET, new NCDF.NetCdfValue("Not Used", "Voffset", false) }, {NCDF.Names.EXTERNAL_A_D_C_V_DET_COM, new NCDF.NetCdfValue("Not Used", "External_ADC_vDetCom", false) }, {NCDF.Names.INTEG_TIME, new NCDF.NetCdfValue("Not Used", "IntegTime", false) }, {NCDF.Names.AUTOCOLLIMATOR_EL, new NCDF.NetCdfValue("Not Used", "Autocollimator_El", false) }, {NCDF.Names.AUTOCOLLIMATOR_AZ, new NCDF.NetCdfValue("Not Used", "Autocollimator_Az", false) }, {NCDF.Names.B_B_E_S_TEMP, new NCDF.NetCdfValue("Not Used", "BBES_Temp", false) }, {NCDF.Names.B_B_E_S_FILTER_WHEEL, new NCDF.NetCdfValue("Not Used", "BBES_Filter_Wheel", false) }, {NCDF.Names.VOB_AMP_AVG_R, new NCDF.NetCdfValue("Not Used", "Vob_Amp_Avg_R", false) }, {NCDF.Names.VOB_AVG_X_VOLTAGE, new NCDF.NetCdfValue("Not Used", "Vob_Avg_X_Voltage", false) }, {NCDF.Names.VSS_LOCKIN_1_COUPLE, new NCDF.NetCdfValue("Not Used", "Vss_Lockin_1_Couple", false) }, {NCDF.Names.VSS_LOCKIN_1_GROUND, new NCDF.NetCdfValue("Not Used", "Vss_Lockin_1_Ground", false) }, {NCDF.Names.VSS_LOCKIN_1_RESERVE, new NCDF.NetCdfValue("Not Used", "Vss_Lockin_1_Reserve", false) }, {NCDF.Names.VOB_AMP_SEN, new NCDF.NetCdfValue("Not Used", "Vob_Amp_Sen", false) }, {NCDF.Names.VSS_LOCKIN_1_SLOPE, new NCDF.NetCdfValue("Not Used", "Vss_Lockin_1_Slope", false) }, {NCDF.Names.VOB_AMP_TIME_CONST, new NCDF.NetCdfValue("Not Used", "Vob_Amp_Time_Const", false) }, {NCDF.Names.VOB_AMP2_AVG_R, new NCDF.NetCdfValue("Not Used", "Vob_Amp2_Avg_R", false) }, {NCDF.Names.VOB_AVG2_X_VOLTAGE, new NCDF.NetCdfValue("Not Used", "Vob_Avg2_X_Voltage", false) }, {NCDF.Names.VSS_LOCKIN_2_COUPLE, new NCDF.NetCdfValue("Not Used", "Vss_Lockin_2_Couple", false) }, {NCDF.Names.VSS_LOCKIN_2_GROUND, new NCDF.NetCdfValue("Not Used", "Vss_Lockin_2_Ground", false) }, {NCDF.Names.VSS_LOCKIN_2_RESERVE, new NCDF.NetCdfValue("Not Used", "Vss_Lockin_2_Reserve", false) }, {NCDF.Names.VOB_AMP2_SEN, new NCDF.NetCdfValue("Not Used", "Vob_Amp2_Sen", false) }, {NCDF.Names.VSS_LOCKIN_2_SLOPE, new NCDF.NetCdfValue("Not Used", "Vss_Lockin_2_Slope", false) }, {NCDF.Names.VOB_AMP2_TIME_CONST, new NCDF.NetCdfValue("Not Used", "Vob_Amp2_Time_Const", false) }, {NCDF.Names.SET_V_DET_COM, new NCDF.NetCdfValue("Not Used", "SetVDetCom", false) }, {NCDF.Names.MONOCHROMETER_1_POSITION, new NCDF.NetCdfValue("Not Used", "Monochrometer_1_Position", false) }, {NCDF.Names.MONOCHROMETER_2_POSITION, new NCDF.NetCdfValue("Not Used", "Monochrometer_2_position", false) }, {NCDF.Names.FILTER, new NCDF.NetCdfValue("Not Used", "Filter", false) }, {NCDF.Names.FPA_SN, new NCDF.NetCdfValue("Not Used", "FpaSn", false) }, {NCDF.Names.T_E_I_A_F_I_D, new NCDF.NetCdfValue("Not Used", "TE_IAF_ID", false) }, {NCDF.Names.T_E_V_T_I_I_D, new NCDF.NetCdfValue("Not Used", "TE_VTI_ID", false) }, {NCDF.Names.BUILDING, new NCDF.NetCdfValue("Not Used", "Building", false) }, {NCDF.Names.FOCUS_POSITION, new NCDF.NetCdfValue("Not Used", "FocusPosition", false) }, {NCDF.Names.F_C_D_START_TIME, new NCDF.NetCdfValue("Not Used", "FCD_Start_Time", false) }, {NCDF.Names.F_C_D_FRAMECNT, new NCDF.NetCdfValue("Not Used", "FCD_Framecnt", false) }, {NCDF.Names.F_C_D_LINECUT_TIME, new NCDF.NetCdfValue("Not Used", "FCD_Linecut_Time", false) }, {NCDF.Names.F_C_D_LINECUT_FRAMECNT, new NCDF.NetCdfValue("Not Used", "FCD_Linecut_Framecnt", false) }, {NCDF.Names.C_O_L, new NCDF.NetCdfValue("Not Used", "COL", false) }, {NCDF.Names.SOAK_TEMPERATURE, new NCDF.NetCdfValue("Not Used", "Soak_Temperature", false) }, {NCDF.Names.SCAN_RATE, new NCDF.NetCdfValue("Not Used", "Scan_Rate", false) }, {NCDF.Names.ORIENTATION, new NCDF.NetCdfValue("Not Used", "Orientation", false) }, {NCDF.Names.GALILC_FOCUS_POSITION, new NCDF.NetCdfValue("Not Used", "Galilc_focus_position", false) }, {NCDF.Names.GALILC_ABS_FOCUS_POSITION, new NCDF.NetCdfValue("Not Used", "Galilc_abs_focus_position", false) }, {NCDF.Names.GALILC_ENCODER_FOCUS_POSITION, new NCDF.NetCdfValue("Not Used", "Galilc_encoder_focus_position", false) }, }; } }