示例#1
0
    //-------------------------------------------------------------------------------------------------------------------------------------------------------------
    // <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);
    }
示例#2
0
    //====================================================================================================================================
    //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;
            }
        }
    }
示例#3
0
//	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;
	}
示例#4
0
	//-------------------------------------------------------------------------------------------------------------------------------------------------------------
	// <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;
	}
示例#5
0
    //====================================================================================================================================
    //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;
            }
        }
    }
示例#6
0
	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());
		}
	}
示例#7
0
    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());
        }
    }