public static ProductDataEntity ToEntity(this Thermo2ProductB data) { var en = new ProductDataEntity(); en.StartTime = data.StartTime.ToString("yyyyMMdd-HHmmss"); en.FinishTime = data.FinishTime.ToString("yyyyMMdd-HHmmss"); en.Status = data.Status.ToString(); en.Error = data.Error; en.CT = decimal.Parse(data.CT.ToString("F1")); en.Barcode = data.Barcode; en.ProductType = data.ProductType; en.Description = data.Description; en.Spcs = string.Join(",", data.SPCItems.Select(f => $"{f.SPC}:{f.Value:F3}")); var sb = new StringBuilder(); sb.Append("Camera1,"); sb.Append(string.Join(",", data.RawData_C1Profile.Select(p => p.Max(v => v.Z)))); sb.Append("Camera2,"); sb.Append(string.Join(",", data.RawData_C2Profile.Select(p => p.Max(v => v.Z)))); sb.Append("Up,"); sb.Append(string.Join(",", data.RawData_UpProfile.Select(p => p.Max(v => v.Z)))); sb.Append("Down,"); sb.Append(string.Join(",", data.RawData_DownProfile.Select(p => p.Max(v => v.Z)))); en.Raws = sb.ToString(); return(en); }
protected override int RunLoop() { //start assert Platform.AssertAutoMode(this); Platform.LocateInPos("Wait"); Project.AssertNoNull(this); //show barcode read form; var barcode = RunBarcodeScanner(); if (CfgSettings.QuitOnProductError && string.IsNullOrEmpty(barcode)) { return(0); } //Wait start button DualStartButton.WaitStart(this, CfgSettings.AutoDryRun); //check position sensor ok if (CfgSettings.SensorEnable && !MultiSensorCheck.Check(this)) { return(0); } //create product Product = new Thermo2ProductB() { Barcode = barcode, ProductType = Project.ThermoProductType.ToString(), Description = string.Join("-", new[] { Project.ProductName, CfgSettings.Version }), SPCItems = Project.SPCItems, }; Product.ClearSpc(); MeasureTask.Product = Product; //start measure MultiClampCylinders.Clamp(this, 300); TestProcessControl.OnTestStartEvent(Product); VioMeasureStart.SetVio(this, true); { TestProcessControl.OnTestingEvent(Product); } VioMeasureFinish.WaitVioAndClear(this); Platform.MoveAbs("SafeOrigin"); Platform.MoveAbs("Wait"); MultiClampCylinders.Reset(this); //save product data Product.MachineName = CfgSettings.Uploader.AVC_Machine_ID; SaveProductData(); if (CfgSettings.Uploader.Enable) { Product.ToSQL().Save(Project.PartID); } return(0); }
public static string ToSQL(this Thermo2ProductB data) { var en = new StringBuilder(); en.Append(" Values('" + data.StartTime.ToString("yyyy-MM-dd HH:mm:ss.fff") + "',"); en.Append("'" + data.FinishTime.ToString("yyyy-MM-dd HH:mm:ss") + "',"); en.Append("'" + data.Barcode + "',"); en.Append("'" + data.Status.ToString() + "',"); en.Append("'" + data.MachineName + "',"); en.Append("'" + data.Error + "',"); en.Append("'" + data.ProductType + "',"); en.Append("'" + data.Description + "',"); en.Append("'" + string.Join(",", data.SPCItems.Select(f => $"{f.SPC}:{f.Value:F3}")) + "',"); en.Append("'" + decimal.Parse(data.CT.ToString("F1")) + "')"); return(en.ToString()); }
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); }