public void TestConvertGlobalParametersToDictionary() { var globalParameters = GetExampleGlobalParameters(); var globalParams = GlobalParamUtilities.ConvertGlobalParameters(globalParameters); var success = globalParams.TryGetValue(GlobalParamKeyType.InstrumentName, out var instName); Assert.IsTrue(success, "Instrument name could not be retrieved"); Assert.AreEqual(globalParameters.InstrumentName, instName); success = globalParams.TryGetValue(GlobalParamKeyType.NumFrames, out var numFrames); Assert.IsTrue(success, "NumFrames could not be retrieved"); Assert.AreEqual(globalParameters.NumFrames, numFrames); success = globalParams.TryGetValue(GlobalParamKeyType.BinWidth, out var binWidth); Assert.IsTrue(success, "BinWidth could not be retrieved"); Assert.AreEqual(globalParameters.BinWidth, binWidth, 0.00001); }
/// <summary> /// Constructor /// </summary> /// <param name="paramType">Strongly typed enum of the new parameter</param> /// <param name="name">Parameter name</param> /// <param name="dataType">Parameter .NET data type (as a string)</param> /// <param name="description">Parameter description</param> /// <remarks>Does not verify that paramID is a valid member of FrameParamKeyType</remarks> public FrameParamDef(FrameParamKeyType paramType, string name, string dataType, string description = "") { ParamType = paramType; Name = name; try { DataType = Type.GetType(dataType); if (DataType == null) { dataType = GlobalParamUtilities.GetDataTypeFromAlias(dataType); DataType = Type.GetType(dataType) ?? typeof(object); } } catch { DataType = typeof(object); } Description = description; }
/// <summary> /// Get the value for a parameter /// </summary> /// <param name="paramType">Parameter type</param> /// <returns>Value (dynamic)</returns> /// <remarks>Returns an empty string if not defined</remarks> public dynamic GetValue(GlobalParamKeyType paramType) { var defaultValue = GlobalParamUtilities.GetDefaultValueByType(paramType); return(GetValue(paramType, defaultValue)); }
public void TestConvertGlobalParametersToClass() { var globalParameters = GetExampleGlobalParameters(); var globalParamsByType = GlobalParamUtilities.ConvertGlobalParameters(globalParameters); var globalParams = GlobalParamUtilities.ConvertDynamicParamsToGlobalParams(globalParamsByType); var instName = globalParams.GetValueString(GlobalParamKeyType.InstrumentName); Assert.AreEqual(globalParameters.InstrumentName, instName); var instNameDynamic = globalParams.GetValue(GlobalParamKeyType.InstrumentName, ""); Assert.AreEqual(globalParameters.InstrumentName, instNameDynamic); var instNameDynamicWithDefault = globalParams.GetValue(GlobalParamKeyType.InstrumentName); Assert.AreEqual(globalParameters.InstrumentName, instNameDynamicWithDefault); // Remove the instrument name then test again globalParams.Values.Remove(GlobalParamKeyType.InstrumentName); instName = globalParams.GetValueString(GlobalParamKeyType.InstrumentName); Assert.AreEqual("", instName); instName = globalParams.GetValueString(GlobalParamKeyType.InstrumentName, "Undefined"); Assert.AreEqual("Undefined", instName); instNameDynamic = globalParams.GetValue(GlobalParamKeyType.InstrumentName, "Undefined"); Assert.AreEqual("Undefined", instNameDynamic); instNameDynamicWithDefault = globalParams.GetValue(GlobalParamKeyType.InstrumentName); Assert.AreEqual("", instNameDynamicWithDefault); var numFrames = globalParams.GetValueInt32(GlobalParamKeyType.NumFrames); Assert.AreEqual(globalParameters.NumFrames, numFrames); var numFramesDynamic = globalParams.GetValue(GlobalParamKeyType.NumFrames, 0); Assert.AreEqual(globalParameters.NumFrames, numFramesDynamic); var numFramesDynamicDouble = globalParams.GetValue(GlobalParamKeyType.NumFrames, 0.0); Assert.AreEqual(globalParameters.NumFrames, numFramesDynamicDouble, 0.00001); var binWidth = globalParams.GetValueInt32(GlobalParamKeyType.BinWidth); Assert.AreEqual(globalParameters.BinWidth, binWidth); var binWidthDynamic = globalParams.GetValue(GlobalParamKeyType.BinWidth, 0); Assert.AreEqual(globalParameters.BinWidth, binWidthDynamic); var binWidthDynamicDouble = globalParams.GetValue(GlobalParamKeyType.BinWidth, 0.0); Assert.AreEqual(globalParameters.BinWidth, binWidthDynamicDouble, 0.00001); }
/// <summary> /// Initialize this global parameter using the param type enum value /// </summary> /// <param name="paramType">Param key type enum</param> private void InitializeByType(GlobalParamKeyType paramType) { ParamType = paramType; var dataType = GlobalParamUtilities.GetGlobalParamKeyDataType(paramType); switch (paramType) { case GlobalParamKeyType.InstrumentName: InitializeByType("InstrumentName", dataType, "Instrument name"); break; case GlobalParamKeyType.DateStarted: // Format has traditionally been M/d/yyyy hh:mm:ss tt // For example, 6/4/2014 12:56:44 PM InitializeByType("DateStarted", dataType, "Time that the data acquisition started"); break; case GlobalParamKeyType.NumFrames: InitializeByType("NumFrames", dataType, "Number of frames in the dataset"); break; case GlobalParamKeyType.TimeOffset: InitializeByType("TimeOffset", dataType, "Time offset from 0 (in nanoseconds). All bin numbers must be offset by this amount"); break; case GlobalParamKeyType.BinWidth: InitializeByType("BinWidth", dataType, "Width of TOF bins (in ns)"); break; case GlobalParamKeyType.Bins: InitializeByType("Bins", dataType, "Total number of TOF bins in frame"); break; case GlobalParamKeyType.TOFCorrectionTime: InitializeByType("TOFCorrectionTime", dataType, "TOF correction time"); break; case GlobalParamKeyType.TOFIntensityType: InitializeByType("TOFIntensityType", dataType, "Data type of intensity in each TOF record (ADC is int, TDC is short, FOLDED is float)"); break; case GlobalParamKeyType.DatasetType: InitializeByType("DatasetType", dataType, "Type of dataset (HMS, HMSn, or HMS-HMSn)"); break; case GlobalParamKeyType.PrescanTOFPulses: InitializeByType("PrescanTOFPulses", dataType, "Prescan TOF pulses; this tracks the maximum scan number in any frame"); break; case GlobalParamKeyType.PrescanAccumulations: InitializeByType("PrescanAccumulations", dataType, "Number of prescan accumulations"); break; case GlobalParamKeyType.PrescanTICThreshold: InitializeByType("PrescanTICThreshold", dataType, "Prescan TIC threshold"); break; case GlobalParamKeyType.PrescanContinuous: InitializeByType("PrescanContinuous", dataType, "Prescan Continuous flag (0 is false, 1 is true)"); break; case GlobalParamKeyType.PrescanProfile: InitializeByType("PrescanProfile", dataType, "Profile used when PrescanContinuous is 1"); break; case GlobalParamKeyType.InstrumentClass: InitializeByType("InstrumentClass", dataType, "Instrument class (0 for TOF, 1 for ppm bin-based)"); break; case GlobalParamKeyType.PpmBinBasedStartMz: InitializeByType("PpmBinBasedStartMz", dataType, "Starting m/z value for ppm bin-based mode"); break; case GlobalParamKeyType.PpmBinBasedEndMz: InitializeByType("PpmBinBasedEndMz", dataType, "Ending m/z value for ppm bin-based mode"); break; case GlobalParamKeyType.DriftTubeLength: InitializeByType("DriftTubeLength", dataType, "IMS Drift tube length in centimeters"); break; case GlobalParamKeyType.DriftGas: InitializeByType("DriftGas", dataType, "Drift gas (i.e., N2)"); break; case GlobalParamKeyType.Unknown: throw new ArgumentOutOfRangeException(nameof(paramType), "Cannot initialize a global parameter of type Unknown: " + (int)paramType); default: throw new ArgumentOutOfRangeException(nameof(paramType), "Unrecognized global param enum for paramType: " + (int)paramType); } }