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); }
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); }
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."); } }