//------------------------------------------------------------------------------------------------------------------------------------------------------------- // <summary> // Activate a cup configuration and sub cup configuration. // </summary> // <param name="cupConfigurationName">The cup configuration name.</param> // <param name="subCupConfigurationName">The sub cup configuration name.</param> // <param name="mass">A nullable mass value. If has a value then use the mass for the monitor scan; otherwise use the master cup mass for the monitor scan.</param> // <returns><c>True</c> if successfull; otherwise <c>false</c>.</returns> //------------------------------------------------------------------------------------------------------------------------------------------------------------- private static bool ActivateCupConfiguration(string cupConfigurationName, string subCupConfigurationName) { //Console.WriteLine (cupConfigurationName); //Console.WriteLine (subCupConfigurationName); IRMSBaseCupConfigurationData cupData = Instrument.CupConfigurationDataList.FindCupConfigurationByName(cupConfigurationName); if (cupData == null) { Logger.Log(LogLevel.UserError, String.Format("Could not find cup configuration \'{0}\'.", cupConfigurationName)); return(false); } IRMSBaseSubCupConfigurationData subCupData = cupData.SubCupConfigurationList.FindSubCupConfigurationByName(subCupConfigurationName); if (subCupData == null) { Logger.Log(LogLevel.UserError, String.Format("Could not find sub cup configuration \'{0}\' in cup configuration.", subCupConfigurationName, cupConfigurationName)); return(false); } Instrument.CupConfigurationDataList.SetActiveItem(cupData.Identifier, subCupData.Identifier, Instrument.CupSettingDataList, null); Instrument.SetHardwareParameters(cupData, subCupData); bool success = Instrument.RequestCupConfigurationChange(Instrument.CupConfigurationDataList); if (!success) { Logger.Log(LogLevel.UserError, "Could not request a cup configuration change."); return(false); } return(true); }
//==================================================================================================================================== //Qtegra Methods //==================================================================================================================================== public static void SetIonCounterState(bool state) { IRMSBaseCupConfigurationData activeCupData = Instrument.CupConfigurationDataList.GetActiveCupConfiguration(); foreach (IRMSBaseCollectorItem col in activeCupData.CollectorItemList) { if ((col.CollectorType == IRMSBaseCollectorType.CounterCup) && (col.Mass.HasValue == true)) { col.Active = state; } } }
// private static bool UpdateMonitorScan(bool enable) // { // IRMSBaseCupConfigurationData config = Instrument.CupConfigurationDataList.GetActiveCupConfiguration(); // IRMSBaseMeasurementInfo monitor_measurement_info = new IRMSBaseMeasurementInfo( // Instrument.MeasurementInfo.ScanType, // Instrument.MeasurementInfo.IntegrationTime, // Instrument.MeasurementInfo.SettlingTime, // config.CollectorItemList.GetMasterCollectorItem().Mass.Value, // config.CollectorItemList, // config.MassCalibration // ); // success = Instrument.ScanTransitionController.StartMonitoring(monitor_measurement_info); // success = Instrument.ScanTransitionController.StartMonitoring(monitor_measurement_info); // if (!success) Logger.Log(LogLevel.UserError, "Failed to update monitoring."); // else if (enable) Logger.Log(LogLevel.UserInfo, "Monitoring has been updated."); // return success; // } private static bool RunMonitorScan (double? mass) { IRMSBaseCupConfigurationData cupData = Instrument.CupConfigurationDataList.GetActiveCupConfiguration(); IRMSBaseMeasurementInfo newMeasurementInfo = new IRMSBaseMeasurementInfo( Instrument.MeasurementInfo.ScanType, Instrument.MeasurementInfo.IntegrationTime, Instrument.MeasurementInfo.SettlingTime, (mass.HasValue) ? mass.Value : cupData.CollectorItemList.GetMasterCollectorItem().Mass.Value, cupData.CollectorItemList, cupData.MassCalibration ); Instrument.ScanTransitionController.StartMonitoring(newMeasurementInfo); return true; }
//------------------------------------------------------------------------------------------------------------------------------------------------------------- // <summary> // Get all sub cup configurations names from a cup cupconfiguration. // </summary> // <param name="cupConfigurationName"></param> // <returns>A list of sub cup configuration names.</returns> //------------------------------------------------------------------------------------------------------------------------------------------------------------- private static List<string> GetSubCupConfigurations (string cupConfigurationName) { IRMSBaseCupConfigurationData cupData = Instrument.CupConfigurationDataList.FindCupConfigurationByName (cupConfigurationName); if (cupData == null) { Logger.Log (LogLevel.UserError, String.Format ("Could not find cup configuration \'{0}\'.", cupConfigurationName)); return null; } List<string> result = new List<string>(); foreach (var item in cupData.SubCupConfigurationList) { result.Add (item.Name); } return result; }
//==================================================================================================================================== //Qtegra Methods //==================================================================================================================================== public static void SetIonCounterState(bool state) { if (state) { Logger.Log(LogLevel.UserInfo, "Setting IonCounterState True"); } else { Logger.Log(LogLevel.UserInfo, "Setting IonCounterState False"); } IRMSBaseCupConfigurationData activeCupData = Instrument.CupConfigurationDataList.GetActiveCupConfiguration(); foreach (IRMSBaseCollectorItem col in activeCupData.CollectorItemList) { if ((col.CollectorType == IRMSBaseCollectorType.CounterCup) && (col.Mass.HasValue == true)) { col.Active = state; } } }
public static void ScanDataAvailable(object sender, EventArgs<Spectrum> e) { lock(m_lock) { List<string> data = new List<string>(); Spectrum spec = e.Value.Clone() as Spectrum; IRMSBaseCupConfigurationData cupData = Instrument.CupConfigurationDataList.GetActiveCupConfiguration(); foreach (Series series in spec) { foreach (SpectrumData point in series) { //get the name of the detector foreach (IRMSBaseCollectorItem item in cupData.CollectorItemList) { if (item.Mass==point.Mass) { string cupName=get_cup_name(item); data.Add(point.Analog.ToString()); if (Config.tag_data) { data.Add(cupName); } break; } } } } data.Reverse(); SCAN_DATA=string.Join(",",data.ToArray()); } }
public static void ScanDataAvailable(object sender, EventArgs <Spectrum> e) { lock (m_lock) { List <string> data = new List <string>(); Spectrum spec = e.Value.Clone() as Spectrum; IRMSBaseCupConfigurationData cupData = Instrument.CupConfigurationDataList.GetActiveCupConfiguration(); List <string> detnames = new List <string>(new string[] { "CUP 4,H2", "CUP 3,H1", "CUP 2,AX", "CUP 1,L1", "CUP 0,L2", "CDD 0,CDD" }); double cddMass = 0; double cddCounts = 0; bool cdd = false; foreach (Series series in spec) { foreach (SpectrumData point in series) { //get the name of the detector foreach (IRMSBaseCollectorItem item in cupData.CollectorItemList) { if (item.Mass == point.Mass) { string cupName = ""; foreach (string detname in detnames) { string[] args = detname.Split(','); if (args[0] == item.Identifier) { cupName = args[1]; break; } } //delegate adding the CDD value until later //this way its easy to put a the end of the data string if (cupName == "CDD") { cdd = true; cddMass = point.Mass; cddCounts = point.Analog; } else { data.Add(point.Analog.ToString()); if (tag_data) { data.Add(cupName); } } break; } } } } data.Reverse(); if (cdd) { if (tag_data) { data.Add("CDD"); } data.Add(cddCounts.ToString()); } scan_data = string.Join(",", data.ToArray()); } }
//------------------------------------------------------------------------------------------------------------------------------------------------------------- // <summary> // Scan Data Available // </summary> // <param name="sender">???</param> // <param name="e">???</param> //------------------------------------------------------------------------------------------------------------------------------------------------------------- public static void ScanDataAvailable(object sender, EventArgs <Spectrum> e) { lock (m_lock) { List <string> data = new List <string>(); Spectrum spec = e.Value.Clone() as Spectrum; IRMSBaseCupConfigurationData cupData = Instrument.CupConfigurationDataList.GetActiveCupConfiguration(); // change detnames to a list of detectors on your system // this is is for an Argus VI c. 2010 //List<string> detnames = new List<string>(new string[]{"CUP 4,H2","CUP 3,H1", // "CUP 2,AX", // "CUP 1,L1","CUP 0,L2", // "CDD 0,CDD" // }); // list of cup names for LDEO HelixMCPlus List <string> detnames = new List <string>(new string[] { "CUP 4,H2", "CUP 3,H1", "CUP 2,AX", "CUP 1,L1", "CUP 0,L2", "CDD 0,L2_CDD", "CDD 1,L1_CDD", "CDD 2, AX_CDD", "CDD 3, H1_CDD", "CDD 4, H2_CDD" }); double cddMass = 0; double cddCounts = 0; bool cdd = false; foreach (Series series in spec) { foreach (SpectrumData point in series) { //get the name of the detector foreach (IRMSBaseCollectorItem item in cupData.CollectorItemList) { if (item.Mass == point.Mass) { string cupName = ""; foreach (string detname in detnames) { string[] args = detname.Split(','); if (args[0] == item.Identifier) { cupName = args[1]; break; } } //delegate adding the CDD value until later //this way its easy to put at the end of the data string // // cddMass and cddCounts should be changed to lists // to handle mulitple CDD's for one machine // if (cupName == "CDD") { cdd = true; cddMass = point.Mass; cddCounts = point.Analog; } else { data.Add(point.Analog.ToString()); if (TAG_DATA) { data.Add(cupName); } } break; } } } } data.Reverse(); if (cdd) { if (TAG_DATA) { data.Add("CDD"); } data.Add(cddCounts.ToString()); } SCAN_DATA = string.Join(",", data.ToArray()); } }