コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
 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[]>();
 }
コード例 #3
0
        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;
        }
コード例 #4
0
 public SettingsViewModel(IMachine machine, MachineSettings settings) //: base(machine)
 {
     Cameras   = new List <Models.Camera>();
     _settings = settings;
     _machine  = machine;
     InitComamnds();
     Init();
 }
コード例 #5
0
        /// <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");
            }
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        public void ShouldGetSettingFromEnvironmentVariable()
        {
            CreateEnvironmentVariable("TestSetting");

            var settingProvider = new MachineSettings();

            var setting = settingProvider.GetSetting("TestSetting");

            Assert.That(setting, Is.EqualTo("TestSettingValue"));
        }
コード例 #8
0
        /// <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);
        }
コード例 #9
0
 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;
 }
コード例 #10
0
 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;
 }
コード例 #11
0
        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);
        }
コード例 #12
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);
        }
コード例 #13
0
        /// <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);
        }
コード例 #14
0
        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);
        }
コード例 #15
0
ファイル: AppSetting.cs プロジェクト: rambo406/TimeLogApiSdk
        /// <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]);
            }
        }
コード例 #16
0
        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);
            }
        }
コード例 #17
0
ファイル: MeasureTask.cs プロジェクト: xusongfei/LeadChina
        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);
        }
コード例 #18
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());
     }
 }
コード例 #19
0
        /// <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();
        }
コード例 #20
0
        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()} }}); ");
                }
            }
        }
コード例 #21
0
ファイル: TransTask.cs プロジェクト: xusongfei/LeadChina
        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);
        }
コード例 #22
0
        public static void Save(MachineSettings obj, string fileName)
        {
            var xmls = new FileIOLib.XmlSerializer <MachineSettings>();

            xmls.SaveXML(obj, fileName);
        }
コード例 #23
0
        public void MSFTests_saveFileToDefName_SaveOK()
        {
            MachineSettings ms = new MachineSettings();

            MachineSettingsFile.Save(ms);
        }
コード例 #24
0
        public void MSFTests_saveFile_SaveOK()
        {
            MachineSettings ms = new MachineSettings();

            MachineSettingsFile.Save(ms, testFileName);
        }
コード例 #25
0
 public static void Save(MachineSettings obj)
 {
     Save(obj, xmlFileName);
 }
コード例 #26
0
        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"))));
        }
コード例 #27
0
        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:");
                }
            }
        }
コード例 #28
0
 /// <summary>
 /// Creates the machine.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <returns>Machine.</returns>
 internal static Machine CreateMachine(MachineSettings settings)
 {
     return(new Machine(settings));
 }
コード例 #29
0
 public static void RegisterMachineType(string machineType, MachineSettings callback)
 {
     PandaLogger.Log(machineType + " Registered as a Machine Type!");
     _machineCallbacks[machineType] = callback;
 }
コード例 #30
0
ファイル: TransTask.cs プロジェクト: xusongfei/LeadChina
        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);
        }