Beispiel #1
0
        public static ILaser GetLaser(this string lasername, CommandConfig config)
        {
            switch (lasername)
            {
            case "luxx473":
                return(new Omicron(config.SerialPort1));

            case "mambo594":
                return(new Cobolt(config.SerialPort2));
            }
            return(null);
        }
Beispiel #2
0
        public static string GetAddresses(this string experimenter, CommandConfig config)
        {
            string addresses = null;

            if (string.IsNullOrEmpty(experimenter))
            {
                return(addresses);
            }
            var al = experimenter.Split(',', ';').Where(i => config.ExperimenterAddress.ContainsKey(i)).Select(i => config.ExperimenterAddress[i]).ToArray();

            if (al != null && al.Length > 0)
            {
                addresses = String.Join(",", al);
            }
            return(addresses);
        }
Beispiel #3
0
        public virtual void SaveData()
        {
            if (condtestmanager.condtest.Count > 0)
            {
                ex.CondTest = condtestmanager.condtest;
                ex.EnvParam = envmanager.GetActiveParams();
                ex.Version  = Extension.ExperimentDataVersion;
                // Hold references to data that may not need to save
                Dictionary <string, Dictionary <string, List <object> >[]> m = null;
                CommandConfig cfg = ex.Config;
                if (!cfg.SaveConfigInData)
                {
                    ex.Config = null;
                }
                else
                {
                    if (!cfg.SaveConfigDisplayMeasurementInData)
                    {
                        m = cfg.Display.ToDictionary(kv => kv.Key, kv => new[] { kv.Value.IntensityMeasurement, kv.Value.SpectralMeasurement });
                        foreach (var d in cfg.Display.Values)
                        {
                            d.IntensityMeasurement = null;
                            d.SpectralMeasurement  = null;
                        }
                    }
                }
                // Save Data
                switch (cfg.SaveDataFormat)
                {
                case DataFormat.EXPERICA:
                    DataPath(DataFormat.EXPERICA).Save(ex);
                    break;

                case DataFormat.YAML:
                    DataPath(DataFormat.YAML).WriteYamlFile(ex);
                    break;
                }
                ex.CondTest = null;
                ex.DataPath = null; // Clear DataPath, so it will be safely generated next time
                // Restore data that may not be saved
                if (!cfg.SaveConfigInData)
                {
                    ex.Config = cfg;
                }
                else
                {
                    if (!cfg.SaveConfigDisplayMeasurementInData)
                    {
                        foreach (var d in cfg.Display.Keys)
                        {
                            cfg.Display[d].IntensityMeasurement = m[d][0];
                            cfg.Display[d].SpectralMeasurement  = m[d][1];
                        }
                    }
                }
            }
            else
            {
                Debug.Log("CondTest Empty, Skip Saving Data.");
            }
        }