Files
2025-10-24 15:18:11 -07:00

522 lines
36 KiB
C#

// **********************************************************************************************************
// 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 System;
using System.Collections.Generic;
using System.IO;
using NLog;
using Raytheon.Common;
namespace Raytheon.Instruments
{
/// <summary>
/// NCDF Data instrument
/// </summary>
public class NetCdfData : INetCdfData
{
private static ILogger _logger;
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();
/// <summary>
/// Initialize the device
/// </summary>
public void Initialize()
{
_logger.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
}
/// <summary>
/// Shuts down the device
/// </summary>
public void Shutdown()
{
_logger.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
}
public void Reset()
{
_logger.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
}
/// <summary>
/// LSPS factory constructor
/// </summary>
/// <param name="deviceName"></param>
/// <param name="configurationManager"></param>
public NetCdfData(string deviceName, IConfigurationManager configurationManager)
{
Name = deviceName;
_logger = LogManager.GetLogger($"{this.GetType().Name} - {deviceName}");
_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<NCDF.Names, NCDF.NetCdfValue> 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<T>(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<NCDF.Names, NCDF.NetCdfValue> valueMap_ = new Dictionary<NCDF.Names, NCDF.NetCdfValue>
{
{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) },
};
}
}