public override void Load() { //load all settings!!! Settings = MachineSettings.Load(); if (Settings == null) { throw new Exception("Load MachineSettings Fail!"); } //import machine objects if (FrameworkExtenion.IsSimulate) { Import(@".\Config\machinesim.cfg"); } else { Import(@".\Config\machine.cfg"); } //load platform positions foreach (var p in Platforms) { p.Value.Load(); } foreach (var p in Tasks.Values) { if (p is ScriptStationTask) { (p as ScriptStationTask)?.Load(); } } }
public EnigmaService(IConfigurationRoot config) { // Get All Config Data From appsettings.json _machineSettings = config.GetSection("MachineSettings").Get <MachineSettings>(); _rotorSettings = config.GetSection("RotorSettings").Get <RotorSettigns>(); _reflectorSettings = config.GetSection("RefelctorSettings").Get <string[]>(); }
public SettingsWindow(IMachine machine, MachineSettings settings, int index = 0) { _settings = settings; DataContext = new SettingsViewModel(machine, _settings); var cameras = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice); var idx = 0; ViewModel.Cameras.Add(new Models.Camera() { Id = "-1", Name = "none", CameraIndex = -1 }); foreach (var camera in cameras) { ViewModel.Cameras.Add(new Models.Camera() { Id = camera.DevicePath, Name = camera.Name, CameraIndex = idx++ }); } InitializeComponent(); Tabs.SelectedIndex = index; }
public SettingsViewModel(IMachine machine, MachineSettings settings) //: base(machine) { Cameras = new List <Models.Camera>(); _settings = settings; _machine = machine; InitComamnds(); Init(); }
/// <summary> /// Initialize editor - extensions and environment is loaded, event handlers hooked. /// </summary> internal void Initialize() { _settings = new MachineSettings(true); _machine = new Machine(_settings); _guiManager = new GUIManager(GUI, _vs); //try to load users extensions Exception loadingException = null; try { //install recommended extensions if required if (Installer.NeedInstall()) { Installer.Install(); } } catch (Exception ex) { loadingException = ex; } try { loadUserExtensions(); _settings.Runtime.BuildAssembly(); } catch (Exception ex) { loadingException = ex; } //try to initialize gui manager try { var factory = new DiagramFactory(_joinFactory, _connectorFactories, _contentDrawers); _guiManager.Initialize(_loader.AppDomain, factory); if (loadingException != null) { //we can report failing loading now var entry = _vs.LogException(loadingException, "Loading user extensions failed with exception"); _guiManager.DisplayEntry(entry); } } catch (Exception ex) { loadingException = ex; _vs.LogException(ex, "GUI initialization failed"); } //hook handlers if loading was successful if (loadingException == null) { hookHandlers(); _vs.Log.Message("EDITOR INITIALIZED"); } }
public void MSFTests_openTestFile_valuesOK() { MachineSettings msOpen = MachineSettingsFile.Open(testFileName); Assert.AreEqual("o5", msOpen.StartInspectionTrigger); Assert.AreEqual("o5", msOpen.InPositionTrigger); Assert.AreEqual(50, msOpen.MsPerReading); Assert.IsFalse(msOpen.CncIsAttached); }
public void ShouldGetSettingFromEnvironmentVariable() { CreateEnvironmentVariable("TestSetting"); var settingProvider = new MachineSettings(); var setting = settingProvider.GetSetting("TestSetting"); Assert.That(setting, Is.EqualTo("TestSettingValue")); }
/// <summary> /// Creates the testing assembly. /// </summary> /// <returns>TestingAssembly.</returns> internal static TestingAssembly CreateTestingAssembly() { var settings = new MachineSettings(false); InitializeRuntime(settings.Runtime); var assembly = new TestingAssembly(settings); return(assembly); }
public GrooveInspection(Barrel barrel, MachineSettings machineSettings) { method = InspectionMethod.GROOVES; Barrel = barrel; Twist = barrel.TwistProfile; Grooves = new List <int>(); SensorEncoderTriggerAxis = machineSettings.XAxis; PositionAxis1 = machineSettings.AAxis; PositionAxis2 = null; }
public GrooveInspection(MachineSettings machineSettings) { method = InspectionMethod.GROOVES; Barrel = new TubeInspection.Barrel();; Twist = new TwistProfile(); Grooves = new List <int>(); SensorEncoderTriggerAxis = machineSettings.XAxis; PositionAxis1 = machineSettings.AAxis; PositionAxis2 = null; }
protected override int ResetLoop() { //load cfg CfgSettings = Machine.Ins.Settings; //clear vio VioTransInp.SetVio(this, false); VioBarcodeFinish.SetVio(this, false); VioTransFinish.SetVio(this, false); VioMeasureFinish.SetVio(this, false); //load axis pos Platform.AssertPosTeached("Wait", this); Platform.AssertPosTeached("GtWork1", this); Platform.AssertPosTeached("GtWork2", this); Platform.AssertPosTeached($"Barcode{Project.TypeId}", this); PosGtWork1 = Platform["GtWork1"] as PosXYZ; PosGtWork2 = Platform["GtWork2"] as PosXYZ; if (!DoGTCylinder.SetDo(this, false, ignoreOrWaringOrError: true)) { ThrowException($"GT Cylinder Reset Fail!"); } //connect gt controller and barcode controller try { if (BarcodeController.IsOpen) { BarcodeController.Close(); } BarcodeController.Open(BarcodeCOM); } catch (Exception e) { ThrowException($"Barcode Open Fail:{e.Message}"); } //home platform Platform.EnterAuto(this).Servo(); Platform.EnterAuto(this).Home(new[] { 1, 1, 0 }, -1); Platform.EnterAuto(this).MoveAbs("Wait", checkLimit: false); //move gt cylinder push pos if (!DoGTCylinder.SetDo(this, true, ignoreOrWaringOrError: true)) { //show alarm ThrowException($"GT Cylinder Set Fail!"); } return(0); }
public void MSFTests_saveAndRetrieveFile_fileOK() { MachineSettings ms = new MachineSettings(); MachineSettingsFile.Save(ms); MachineSettings msOpen = MachineSettingsFile.Open(); Assert.AreEqual(ms.AngleEpsilon, msOpen.AngleEpsilon); Assert.AreEqual(ms.AxisCount, msOpen.AxisCount); Assert.AreEqual(ms.CncIsAttached, msOpen.CncIsAttached); Assert.AreEqual(ms.Controller, msOpen.Controller); }
/// <summary> /// Initializes a new instance of the <see cref="TestingAssembly" /> class. /// </summary> /// <param name="settings">The settings.</param> public TestingAssembly(MachineSettings settings) { Settings = settings; Runtime = settings.Runtime; Machine = SettingsProvider.CreateMachine(Settings); Loader = new AssemblyLoader(Settings, _factory); //load self _factory.Register(this, this); Loader.AppDomain.Transactions.StartNew("Test"); Loader.LoadRoot(this); }
protected override int ResetLoop() { CfgSettings = Machine.Ins.Settings; //clear vio VioTransFinish.SetVio(this, false); VioMeasureFinish.SetVio(this, false); Platform.AssertPosTeached("Wait", this); Platform.AssertPosTeached("GtWork", this); Platform.EnterAuto(this).Servo(); Platform.EnterAuto(this).Home(new[] { 1, 1, 0 }, -1); Platform.EnterAuto(this).MoveAbs("Wait", checkLimit: false); return(0); }
/// <summary> /// Gets a specific application settings entry. First tries from the personal /// settings file (appSettings-{machinename}.json), then standard settings file /// (appSettings.json) and finally tries to get it from web.config. /// </summary> /// <param name="key">The String key of the key to locate</param> /// <returns>A settings value</returns> public string this[string key] { get { if (MachineSettings.ContainsKey(key)) { return(MachineSettings[key]); } if (StandardSettings.ContainsKey(key)) { return(StandardSettings[key]); } return(ConfigurationManager.AppSettings[key]); } }
public static async Task <HeightMap> OpenAsync(MachineSettings settings) { var popupService = SLWIOC.Get <IPopupServices>(); var fileName = await popupService.ShowSaveFileAsync(Constants.FileFilterHeightMap); if (fileName != null) { var heightMap = await Core.PlatformSupport.Services.Storage.GetAsync <HeightMap>(fileName); heightMap.Refresh(); return(heightMap); } else { return(null); } }
protected override int ResetLoop() { //load files CfgSettings = Machine.Ins.Settings; CfgEnableRelCoordMode = CfgSettings.EnableRelCoordMode; Project = MeasureProject.Load(CfgSettings.MeasureProjectFile, typeof(MeasureProjectA)) as MeasureProjectA; Project.AssertNoNull(this); if (CfgEnableRelCoordMode) { Platform.AssertPosTeached("FocusOrigin", this); } Platform.AssertPosTeached("Wait", this); //reset vio VioMeasureStart.SetVio(this, false); VioMeasureFinish.SetVio(this, false); //reconnect camera try { Camera.Disconnect(); var ret = Camera.Connect(); if (!ret) { Log($"{Camera} Connect Error", LogLevel.Error); } Camera.SwitchProduct(Project.TypeId); Log($"{Camera} SwitchProduct {Project.TypeId}"); } catch (Exception ex) { Log($"{Camera} Server Connect Fail: {ex.Message}", LogLevel.Error); } //reset platforms Platform.EnterAuto(this).Servo(); Platform.EnterAuto(this).Home(); Platform.EnterAuto(this).MoveAbs("Wait"); return(0); }
public static MachineSettings Open(string fileName) { if (fileName != null && fileName != "" && System.IO.File.Exists(fileName)) { var xmls = new FileIOLib.XmlSerializer <MachineSettings>(); MachineSettings ms = xmls.OpenXML(fileName); if (ms == null) { return(new MachineSettings()); } else { return(ms); } } else { return(new MachineSettings()); } }
/// <summary> /// Initialize new instance of <see cref="AssembliesManager" /> object. /// </summary> /// <param name="loader">Loader that is used for loading of assemblies.</param> /// <param name="settings">Settings used for interpretation.</param> internal AssembliesManager(AssemblyLoader loader, MachineSettings settings) { Settings = settings; Loader = loader; _assemblies = new AssembliesStorage(this); _assemblies.OnRootAdd += _onRootAssemblyAdd; _assemblies.OnRootRemove += _onRootAssemblyRemoved; _assemblies.OnUnRegistered += _onAssemblyRemoved; _assemblies.OnRegistered += _onAssemblyRegistered; Settings.BeforeInterpretation += _beforeInterpretation; Settings.AfterInterpretation += _afterInterpretation; //runtime assembly has to be always present startTransaction("Loading root assembly"); _assemblies.AddRoot(settings.Runtime); commitTransaction(); }
public void TestMethod_Calc_Method20180820() { //load settings var settings = MachineSettings.Load(@".\Config2\Settings.cfg"); //load raw data List <Thermo1Product> rawDatas = new List <Thermo1Product>(); { var fprj = FlatnessProject.Load(@".\Config2\A117NoFin_pf_30.fprj"); var file = @".\Config2\20180810 LEFT.csv"; var lines = File.ReadAllLines(file); foreach (var line in lines) { var testData = new Thermo1Product() { ProductType = fprj.ProductSettings.ProductName, SPCItems = fprj.ProductSettings.SPCItems, }; var strs = line.Split(','); //raw up { var gtZ = 0;// settings.AxisPos.LUpPlatformPos.First(p => p.Name == "GtWork").Z - fprj.ProductSettings.Height; var strIndex = 13; for (int i = 0; i < 8; i++) { var pos = new PosXYZ(fprj.ProductSettings.UpTestPositions[i].X, fprj.ProductSettings.UpTestPositions[i].Y, double.Parse(strs[i + strIndex])) { Name = "up", Description = "GT", OffsetX = double.Parse(strs[i + strIndex]), OffsetZ = gtZ, }; testData.RawDataUp.Add(pos); } } //raw ped1 { var gtZ = 0;// settings.AxisPos.LDownPlatformPos.First(p => p.Name == "GtWork1").Z; var strIndex = 22; for (int i = 0; i < 5; i++) { var pos = new PosXYZ(fprj.ProductSettings.DownTestPositions[i].X, fprj.ProductSettings.DownTestPositions[i].Y, double.Parse(strs[i + strIndex])) { Name = "ped1", Description = "GT1", OffsetX = double.Parse(strs[i + strIndex]), OffsetZ = gtZ, }; testData.RawDataDown.Add(pos); } } //raw inner standoff { var gtZ = 0;// settings.AxisPos.LDownPlatformPos.First(p => p.Name == "GtWork2").Z; var strIndex = 27; for (int i = 0; i < 4; i++) { var pos = new PosXYZ(fprj.ProductSettings.DownTestPositions[i + 5].X, fprj.ProductSettings.DownTestPositions[i + 5].Y, double.Parse(strs[i + strIndex])) { Name = "inner", Description = "GT2", OffsetX = double.Parse(strs[i + strIndex]), OffsetZ = gtZ, }; testData.RawDataDown.Add(pos); } } rawDatas.Add(testData); } } { var p = rawDatas.Last(); Console.WriteLine($"{string.Join(",", p.RawDataUp.Select(ps => ps.X.ToString("F3")))}"); Console.WriteLine($"{string.Join(",", p.RawDataUp.Select(ps => ps.Y.ToString("F3")))}"); Console.WriteLine($"{string.Join(",", p.RawDataDown.Select(ps => ps.X.ToString("F3")))}"); Console.WriteLine($"{string.Join(",", p.RawDataDown.Select(ps => ps.Y.ToString("F3")))}"); foreach (var data in p.RawDataUp) { Console.WriteLine($"pos.Add(new PosXYZ({data.X},{data.Y},{data.Z}) {{ Status = {data.Status.ToString().ToLower()} }}); "); } foreach (var data in p.RawDataDown) { Console.WriteLine($"pos.Add(new PosXYZ({data.X},{data.Y},{data.Z}) {{ Status = {data.Status.ToString().ToLower()} }}); "); } } }
protected override int ResetLoop() { //load files CfgSettings = Machine.Ins.Settings; Project = MeasureProject.Load(CfgSettings.MeasureProjectFile, typeof(MeasureProjectA)) as MeasureProjectA; Project.AssertNoNull(this); Platform.AssertPosTeached("Wait", this); //reset vio VioMeasureStart.SetVio(this, false); VioMeasureFinish.SetVio(this, false); var isProductFound = CarrierLoader.IsProductExists(); if (isProductFound) { CarrierLoader.ClampVC(); } else { CarrierLoader.ReleaseVC(); } try { Product = new Thermo2ProductA(); Product.ProductType = Project.ThermoProductType.ToString(); Product.Description = string.Join("-", new[] { Project.ProductName, CfgSettings.Version }); Product.SPCItems = Project.SPCItems; //upload data if (CfgSettings.Uploader.Enable) { //init uploader UploadHelper = DataUploadFactory.Ins.Create(CfgSettings.Uploader.UploaderName, CfgSettings.Uploader); if (UploadHelper == null) { Log($"创建上传模块失败: {CfgSettings.Uploader.UploaderName} 不存在", LogLevel.Error); } else { UploadData(); } } } catch (Exception ex) { Log($"连接FTP ERROR: {ex.Message}", LogLevel.Error); } //reset TestProcessControl.OnTestStartEvent(null); MeasureTask = Station.Machine.Find <StationTask>("MeasureTask") as MeasureTask; MeasureTask.AssertNoNull(this); MeasureTask.WaitResetFinish(this); if (isProductFound) { CarrierLoader.ReleaseVC(); Station.Machine.Beep(); } //reset platform Platform.EnterAuto(this); return(0); }
public static void Save(MachineSettings obj, string fileName) { var xmls = new FileIOLib.XmlSerializer <MachineSettings>(); xmls.SaveXML(obj, fileName); }
public void MSFTests_saveFileToDefName_SaveOK() { MachineSettings ms = new MachineSettings(); MachineSettingsFile.Save(ms); }
public void MSFTests_saveFile_SaveOK() { MachineSettings ms = new MachineSettings(); MachineSettingsFile.Save(ms, testFileName); }
public static void Save(MachineSettings obj) { Save(obj, xmlFileName); }
public void Test_UpGtFlatness() { var settings = MachineSettings.Load(@".\Config2\settings.cfg"); var project = FlatnessProject.Load(@".\Config2\A117NoFinNew.fprj"); var upPos = project.ProductSettings.UpTestPositions.Skip(0).Take(8).ToList(); int startIndex = 0; List <double> leftFlat = new List <double>(); List <double> leftMin = new List <double>(); List <double> leftMax = new List <double>(); List <double> rightFlat = new List <double>(); List <double> rightMin = new List <double>(); List <double> rightMax = new List <double>(); { //fit left with 4 pos List <double[]> rawData = new List <double[]>(); using (var fs = new FileStream(@".\Config2\left.csv", FileMode.Open)) { using (var sw = new StreamReader(fs)) { var dataStr = sw.ReadLine()?.Split(','); while (dataStr != null) { rawData.Add(new double[] { double.Parse(dataStr[13]), double.Parse(dataStr[14]), double.Parse(dataStr[15]), double.Parse(dataStr[16]), double.Parse(dataStr[17]), double.Parse(dataStr[18]), double.Parse(dataStr[19]), double.Parse(dataStr[20]), }); dataStr = sw.ReadLine()?.Split(','); } } } //fit plane for (int i = 0; i < rawData.Count; i++) { for (int j = 0; j < upPos.Count; j++) { upPos[j].Z = rawData[i][startIndex + j]; } var plane = PlaneFitHelper.FitPlane( upPos.Select(p => p.X).ToArray(), upPos.Select(p => p.Y).ToArray(), upPos.Select(p => p.Z).ToArray()); var flat1 = upPos.Select(p => PlaneFitHelper.Point2Plane(plane, p.Data())).Min(); var flat2 = upPos.Select(p => PlaneFitHelper.Point2Plane(plane, p.Data())).Max(); var flatness = flat2 - flat1; leftFlat.Add(flatness); leftMin.Add(upPos.Select(p => p.Z).Min()); leftMax.Add(upPos.Select(p => p.Z).Max()); } } { //fit left with 4 pos List <double[]> rawData = new List <double[]>(); using (var fs = new FileStream(@".\Config2\right.csv", FileMode.Open)) { using (var sw = new StreamReader(fs)) { var dataStr = sw.ReadLine()?.Split(','); while (dataStr != null) { rawData.Add(new double[] { double.Parse(dataStr[13]), double.Parse(dataStr[14]), double.Parse(dataStr[15]), double.Parse(dataStr[16]), double.Parse(dataStr[17]), double.Parse(dataStr[18]), double.Parse(dataStr[19]), double.Parse(dataStr[20]), }); dataStr = sw.ReadLine()?.Split(','); } } } //fit plane for (int i = 0; i < rawData.Count; i++) { for (int j = 0; j < upPos.Count; j++) { upPos[j].Z = rawData[i][startIndex + j]; } var plane = PlaneFitHelper.FitPlane( upPos.Select(p => p.X).ToArray(), upPos.Select(p => p.Y).ToArray(), upPos.Select(p => p.Z).ToArray()); var flat1 = upPos.Select(p => PlaneFitHelper.Point2Plane(plane, p.Data())).Min(); var flat2 = upPos.Select(p => PlaneFitHelper.Point2Plane(plane, p.Data())).Max(); var flatness = flat2 - flat1; rightFlat.Add(flatness); rightMin.Add(upPos.Select(p => p.Z).Min()); rightMax.Add(upPos.Select(p => p.Z).Max()); } } Console.WriteLine("flat:\r\n"); Console.WriteLine(string.Join(",", leftFlat.Select(f => f.ToString("F3")))); Console.WriteLine(string.Join(",", rightFlat.Select(f => f.ToString("F3")))); Console.WriteLine("zmin:\r\n"); Console.WriteLine(string.Join(",", leftMin.Select(f => f.ToString("F3")))); Console.WriteLine(string.Join(",", rightMin.Select(f => f.ToString("F3")))); Console.WriteLine("zmax:\r\n"); Console.WriteLine(string.Join(",", leftMax.Select(f => f.ToString("F3")))); Console.WriteLine(string.Join(",", rightMax.Select(f => f.ToString("F3")))); }
public void Test_GT_HEIGHT() { var settings = MachineSettings.Load(@".\Config\settings.cfg"); var project = FlatnessProject.Load(@".\Config\A117WithFinNewCalib.fprj"); var data = File.ReadAllLines(@".\Config\20180807.csv"); var calc = Thermo1CalculatorMgr.Ins.New(project.ProductSettings.ProductName); var prodata = new Thermo1Product() { RawDataUp = project.ProductSettings.UpTestPositions, RawDataDown = project.ProductSettings.DownTestPositions, SPCItems = project.ProductSettings.SPCItems, ProductType = project.ProductSettings.ProductName, }; for (int data1Index = 0; data1Index < data.Length; data1Index++) { { // //var data1Index = 11; var buffer = data[data1Index].Split(','); var up = 17; for (int i = 0; i < prodata.RawDataUp.Count; i++) { prodata.RawDataUp[i].Z = double.Parse(buffer[up + i]); } var down = 26; for (int i = 0; i < prodata.RawDataDown.Count; i++) { prodata.RawDataDown[i].Z = double.Parse(buffer[down + i]); } //prodata.RawUpGtWorkPos = new PosXYZ( // prodata.RawDataUp.Select(p => p.X).Average(), // prodata.RawDataUp.Select(p => p.Y).Average(), // settings.AxisPos.RUpPlatformPos.Find(p => p.Name == "GtWork").Z - project.ProductSettings.Height); //prodata.RawDownGt1WorkPos = new PosXYZ( // prodata.RawDataDown.FindAll(p => p.Name == "cpu").Select(p => p.X).Average(), // prodata.RawDataDown.FindAll(p => p.Name == "cpu").Select(p => p.Y).Average(), // settings.AxisPos.RDownPlatformPos.Find(p => p.Name == "GtWork1").Z); //prodata.RawDownGt2WorkPos = new PosXYZ( // prodata.RawDataDown.FindAll(p => p.Name == "pin").Select(p => p.X).Average(), // prodata.RawDataDown.FindAll(p => p.Name == "pin").Select(p => p.Y).Average(), // settings.AxisPos.RDownPlatformPos.Find(p => p.Name == "GtWork2").Z); if (data1Index == 9) { data1Index = 9; } calc.Calculate(prodata); //Console.WriteLine("up:\r\n"); //Console.WriteLine(string.Join("\r\n", prodata.RawDataUp)); //Console.WriteLine("down:\r\n"); //Console.WriteLine(string.Join("\r\n", prodata.RawDataDown)); //Console.WriteLine($"data1:"); } } }
/// <summary> /// Creates the machine. /// </summary> /// <param name="settings">The settings.</param> /// <returns>Machine.</returns> internal static Machine CreateMachine(MachineSettings settings) { return(new Machine(settings)); }
public static void RegisterMachineType(string machineType, MachineSettings callback) { PandaLogger.Log(machineType + " Registered as a Machine Type!"); _machineCallbacks[machineType] = callback; }
protected override int ResetLoop() { //load files CfgSettings = Machine.Ins.Settings; Project = MeasureProject.Load(CfgSettings.MeasureProjectFile, typeof(MeasureProjectB)) as MeasureProjectB; Project.AssertNoNull(this); Platform.AssertPosTeached("Wait", this); Platform.AssertPosTeached("SafeOrigin", this); //reset vio VioMeasureStart.SetVio(this, false); VioMeasureFinish.SetVio(this, false); try { Product = new Thermo2ProductB(); Product.ProductType = Project.ThermoProductType.ToString(); Product.Description = string.Join("-", new[] { Project.ProductName, CfgSettings.Version }); Product.SPCItems = Project.SPCItems; //upload data if (CfgSettings.Uploader.Enable) { //init uploader UploadHelper = DataUploadFactory.Ins.Create(CfgSettings.Uploader.UploaderName, CfgSettings.Uploader); if (UploadHelper == null) { Log($"创建上传模块失败: {CfgSettings.Uploader.UploaderName} 不存在", LogLevel.Error); } else { UploadData(); } } } catch (Exception ex) { Log($"连接FTP ERROR: {ex.Message}", LogLevel.Error); } //reset gui TestProcessControl.OnTestStartEvent(null); //wait task finsih MeasureTask = Station.Machine.Find <StationTask>("MeasureTask") as MeasureTask; MeasureTask.AssertNoNull(this); MeasureTask.WaitResetFinish(this); MeasureTask.Project = Project; Platform.EnterAuto(this).Servo(); Platform.EnterAuto(this).Home(); Platform.EnterAuto(this).MoveAbs("Wait"); return(0); }