From 5b6ffebeeee53e375cf8f8d5c30c51f03ad1d96e Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期四, 09 七月 2020 19:12:42 +0800 Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071 --- src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx | 2 src/Bro.Device.GTSCard/GTSCardDriver.cs | 22 +- src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs | 10 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs | 4 src/Bro.M071.DBManager/ExcelExportHelper.cs | 178 +++++++++-------- src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs | 12 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs | 51 +++- src/Bro.M071.Process/M071Process.cs | 161 +++++++++++++++ src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs | 28 +- src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs | 2 src/Bro.M071.Process/Bro.M071.Process.csproj | 4 src/Bro.M071.DBManager/MeasurementUnitResultManager.cs | 6 src/Bro.M071.Process/M071Config.cs | 6 src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx | 2 src/Bro.M071.Process/M071Models.cs | 1 src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs | 31 +- src/Bro.M071.Model/Model/MeasurementUnitResult.cs | 38 +++ 17 files changed, 400 insertions(+), 158 deletions(-) diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs index 5e34794..3a167dd 100644 --- a/src/Bro.Device.GTSCard/GTSCardDriver.cs +++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs @@ -387,7 +387,7 @@ public override async Task<bool> SingleAxisMoving(MovingOption optionPara) { return await Task.Run(() => - { + { axisImmediatePauseHandleDict[optionPara.AxisIndex].WaitOne(); bool isSuccessAndStop = false; try @@ -459,7 +459,8 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇瑙勫垝浣嶇疆寮傚父锛岄敊璇爜锛�" + ret); } - position = prfpos / IConfig.AxisVelocityRatio; + var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio; + position = prfpos / AxisRatio; return position; } @@ -479,7 +480,8 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇鐩爣浣嶇疆寮傚父锛岄敊璇爜锛�" + ret); } - position = pPos / IConfig.AxisVelocityRatio; + var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio; + position = pPos / AxisRatio; return position; } } @@ -488,7 +490,7 @@ /// 鑾峰彇瑙勫垝閫熷害 /// </summary> /// <param name="axisNum">Axis number</param> - /// <returns></returns> + /// <returns>閫熷害鑴夊啿</returns> public double GetPrfVelocity(int axisNum) { double prfVel = 0; @@ -498,7 +500,6 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇瑙勫垝閫熷害寮傚父锛岄敊璇爜锛�" + ret); } - prfVel = prfVel / IConfig.AxisVelocityRatio; return prfVel; } @@ -506,7 +507,7 @@ /// 鑾峰彇褰撳墠閫熷害 /// </summary> /// <param name="axisNum">Axis number</param> - /// <returns></returns> + /// <returns>閫熷害鑴夊啿</returns> public double GetVelocity(int axisNum) { double vel = 0; @@ -515,7 +516,6 @@ { throw new Exception("杞�" + axisNum + "鑾峰彇褰撳墠閫熷害寮傚父锛岄敊璇爜锛�" + ret); } - vel = vel / IConfig.AxisVelocityRatio; return vel; } @@ -600,11 +600,12 @@ int currentPosition = (int)GetPosition(optionPara.AxisIndex); int dPosition = optionPara.Destination + currentPosition; int timeout = optionPara.MovingTimeout; + var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == optionPara.AxisIndex) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == optionPara.AxisIndex).AxisRatio; while (CurrentState == DeviceState.DSOpen) { //璁剧疆 杩愬姩鍙傛暟 isSuccessSetAxisParam = SetAxisParam(optionPara); - ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(dPosition * IConfig.AxisVelocityRatio));// 璁剧疆瑙勫垝浣嶇疆 + ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(dPosition * AxisRatio));// 璁剧疆瑙勫垝浣嶇疆 ret = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (optionPara.AxisIndex - 1));//鏇存柊杩愬姩 if (ret != (short)GTSRetCode.GRCRunOK) @@ -675,11 +676,12 @@ short ret = 0; bool isSuccessSetAxisParam = false; int timeout = optionPara.MovingTimeout; - while (CurrentState == DeviceState.DSOpen&&!_isPause) + var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == optionPara.AxisIndex) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == optionPara.AxisIndex).AxisRatio; + while (CurrentState == DeviceState.DSOpen && !_isPause) { //璁剧疆 杩愬姩鍙傛暟 isSuccessSetAxisParam = SetAxisParam(optionPara); - ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(optionPara.Destination * IConfig.AxisVelocityRatio));// 璁剧疆瑙勫垝浣嶇疆 + ret = GTSCardAPI.GT_SetPrfPos((short)IConfig.CardNum, (short)optionPara.AxisIndex, (int)(optionPara.Destination * AxisRatio));// 璁剧疆瑙勫垝浣嶇疆 ret = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (optionPara.AxisIndex - 1));//鏇存柊杩愬姩 if (ret != (short)GTSRetCode.GRCRunOK) diff --git a/src/Bro.M071.DBManager/ExcelExportHelper.cs b/src/Bro.M071.DBManager/ExcelExportHelper.cs index b894e68..0ea0c16 100644 --- a/src/Bro.M071.DBManager/ExcelExportHelper.cs +++ b/src/Bro.M071.DBManager/ExcelExportHelper.cs @@ -8,6 +8,19 @@ namespace Bro.M071.DBManager { + + public class ExcelExportSet + { + public List<string> Worksheets { get; set; } + + /// <summary> + /// Key锛� Worksheet鐨勫悕绉� Value:Worksheet瀵瑰簲鐨勫垪鍚嶉泦鍚�(key 涓鸿瀵煎嚭鐨勫垪鍚� value 涓哄鍑哄悗鏄剧ず鐨勫垪鍚�) + /// </summary> + public Dictionary<string, Dictionary<string, string>> WorksheetColumns { get; set; } + public Dictionary<string, DataTable> WorksheetDataTable { get; set; } + + } + /// <summary> /// Excel瀵煎嚭甯姪绫� /// </summary> @@ -20,21 +33,27 @@ /// <typeparam name="T"></typeparam> /// <param name="data"></param> /// <returns></returns> - public static DataTable ListToDataTable<T>(List<T> data) + public static DataTable ListToDataTable<T>(List<T> data, Dictionary<string, string> worksheetColumns) { PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T)); DataTable dataTable = new DataTable(); - for (int i = 0; i < properties.Count; i++) + Dictionary<string, string> tempColumns = new Dictionary<string, string>(); + foreach (var column in worksheetColumns) { - PropertyDescriptor property = properties[i]; - dataTable.Columns.Add(property.Name, Nullable.GetUnderlyingType(property.PropertyType) ?? property.PropertyType); + PropertyDescriptor property = properties.Find(column.Key, true); + if (property != null) + { + dataTable.Columns.Add(column.Value, Nullable.GetUnderlyingType(property.PropertyType) ?? property.PropertyType); + tempColumns[column.Key] = column.Value; + } } - object[] values = new object[properties.Count]; + object[] values = new object[tempColumns.Count]; foreach (T item in data) { - for (int i = 0; i < values.Length; i++) + for (int i = 0; i < tempColumns.Count; i++) { - values[i] = properties[i].GetValue(item); + PropertyDescriptor property = properties.Find(tempColumns.ElementAt(i).Key, true); + values[i] = property.GetValue(item); } dataTable.Rows.Add(values); } @@ -45,99 +64,94 @@ /// 瀵煎嚭Excel /// </summary> /// <param name="dataTable">鏁版嵁婧�</param> - /// <param name="heading">宸ヤ綔绨縒orksheet</param> + /// <param name="worksheet">宸ヤ綔绨縒orksheet</param> /// <param name="showSrNo">//鏄惁鏄剧ず琛岀紪鍙�</param> /// <param name="columnsToTake">瑕佸鍑虹殑鍒�</param> /// <returns></returns> - public static byte[] ExportExcel(DataTable dataTable, string heading = "", bool showSrNo = false, params string[] columnsToTake) + public static byte[] ExportExcel(ExcelExportSet excelExportDto, bool showSrNo = false) { - byte[] result; + byte[] result = null; using (ExcelPackage package = new ExcelPackage()) { - ExcelWorksheet workSheet = package.Workbook.Worksheets.Add($"{heading}Data"); - int startRowFrom = string.IsNullOrEmpty(heading) ? 1 : 3; //寮�濮嬬殑琛� - //鏄惁鏄剧ず琛岀紪鍙� - if (showSrNo) + foreach (var worksheet in excelExportDto.Worksheets) { - DataColumn dataColumn = dataTable.Columns.Add("#", typeof(int)); - dataColumn.SetOrdinal(0); - int index = 1; - foreach (DataRow item in dataTable.Rows) + var dataTable = excelExportDto.WorksheetDataTable[worksheet]; + ExcelWorksheet workSheet = package.Workbook.Worksheets.Add($"{worksheet}"); + int startRowFrom = string.IsNullOrEmpty(worksheet) ? 1 : 3; //寮�濮嬬殑琛� + //鏄惁鏄剧ず琛岀紪鍙� + if (showSrNo) { - item[0] = index; - index++; + DataColumn dataColumn = dataTable.Columns.Add("#", typeof(int)); + dataColumn.SetOrdinal(0); + int index = 1; + foreach (DataRow item in dataTable.Rows) + { + item[0] = index; + index++; + } } - } - //Add Content Into the Excel File - workSheet.Cells["A" + startRowFrom].LoadFromDataTable(dataTable, true); - // autofit width of cells with small content - int columnIndex = 1; - foreach (DataColumn item in dataTable.Columns) - { - ExcelRange columnCells = workSheet.Cells[workSheet.Dimension.Start.Row, columnIndex, workSheet.Dimension.End.Row, columnIndex]; - int maxLength = columnCells.Max(cell => cell.Value.ToString().Count()); - if (maxLength < 150) + //Add Content Into the Excel File + workSheet.Cells["A" + startRowFrom].LoadFromDataTable(dataTable, true); + // autofit width of cells with small content + int columnIndex = 1; + foreach (DataColumn item in dataTable.Columns) { - workSheet.Column(columnIndex).AutoFit(); + ExcelRange columnCells = workSheet.Cells[workSheet.Dimension.Start.Row, columnIndex, workSheet.Dimension.End.Row, columnIndex]; + int maxLength = columnCells.Max(cell => cell.Value.ToString().Count()); + if (maxLength < 150) + { + workSheet.Column(columnIndex).AutoFit(); + } + columnIndex++; } - columnIndex++; - } - // format header - bold, yellow on black - using (ExcelRange r = workSheet.Cells[startRowFrom, 1, startRowFrom, dataTable.Columns.Count]) - { - r.Style.Font.Color.SetColor(System.Drawing.Color.White); - r.Style.Font.Bold = true; - r.Style.Fill.PatternType = ExcelFillStyle.Solid; - r.Style.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml("#1fb5ad")); - } - // format cells - add borders - using (ExcelRange r = workSheet.Cells[startRowFrom + 1, 1, startRowFrom + dataTable.Rows.Count, dataTable.Columns.Count]) - { - r.Style.Border.Top.Style = ExcelBorderStyle.Thin; - r.Style.Border.Bottom.Style = ExcelBorderStyle.Thin; - r.Style.Border.Left.Style = ExcelBorderStyle.Thin; - r.Style.Border.Right.Style = ExcelBorderStyle.Thin; - r.Style.Border.Top.Color.SetColor(System.Drawing.Color.Black); - r.Style.Border.Bottom.Color.SetColor(System.Drawing.Color.Black); - r.Style.Border.Left.Color.SetColor(System.Drawing.Color.Black); - r.Style.Border.Right.Color.SetColor(System.Drawing.Color.Black); - } - // removed ignored columns - for (int i = dataTable.Columns.Count - 1; i >= 0; i--) - { - if (i == 0 && showSrNo) + // format header - bold, yellow on black + using (ExcelRange r = workSheet.Cells[startRowFrom, 1, startRowFrom, dataTable.Columns.Count]) { - continue; + r.Style.Font.Color.SetColor(System.Drawing.Color.White); + r.Style.Font.Bold = true; + r.Style.Fill.PatternType = ExcelFillStyle.Solid; + r.Style.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml("#1fb5ad")); } - if (!columnsToTake.Contains(dataTable.Columns[i].ColumnName)) + // format cells - add borders + using (ExcelRange r = workSheet.Cells[startRowFrom + 1, 1, startRowFrom + dataTable.Rows.Count, dataTable.Columns.Count]) { - workSheet.DeleteColumn(i + 1); + r.Style.Border.Top.Style = ExcelBorderStyle.Thin; + r.Style.Border.Bottom.Style = ExcelBorderStyle.Thin; + r.Style.Border.Left.Style = ExcelBorderStyle.Thin; + r.Style.Border.Right.Style = ExcelBorderStyle.Thin; + r.Style.Border.Top.Color.SetColor(System.Drawing.Color.Black); + r.Style.Border.Bottom.Color.SetColor(System.Drawing.Color.Black); + r.Style.Border.Left.Color.SetColor(System.Drawing.Color.Black); + r.Style.Border.Right.Color.SetColor(System.Drawing.Color.Black); } + if (!string.IsNullOrEmpty(worksheet)) + { + workSheet.Cells["A1"].Value = worksheet; + workSheet.Cells["A1"].Style.Font.Size = 20; + workSheet.InsertColumn(1, 1); + workSheet.InsertRow(1, 1); + workSheet.Column(1).Width = 5; + } + result = package.GetAsByteArray(); } - if (!string.IsNullOrEmpty(heading)) - { - workSheet.Cells["A1"].Value = heading; - workSheet.Cells["A1"].Style.Font.Size = 20; - workSheet.InsertColumn(1, 1); - workSheet.InsertRow(1, 1); - workSheet.Column(1).Width = 5; - } - result = package.GetAsByteArray(); } return result; } - /// <summary> - /// 瀵煎嚭Excel - /// </summary> - /// <typeparam name="T"></typeparam> - /// <param name="data"></param> - /// <param name="heading"></param> - /// <param name="isShowSlNo"></param> - /// <param name="columnsToTake"></param> - /// <returns></returns> - public static byte[] ExportExcel<T>(List<T> data, string heading = "", bool isShowSlNo = false, params string[] columnsToTake) - { - return ExportExcel(ListToDataTable(data), heading, isShowSlNo, columnsToTake); - } + + ///// <summary> + ///// 瀵煎嚭Excel + ///// </summary> + ///// <typeparam name="T"></typeparam> + ///// <param name="data"></param> + ///// <param name="heading"></param> + ///// <param name="isShowSlNo"></param> + ///// <param name="columnsToTake"></param> + ///// <returns></returns> + //public static byte[] ExportExcel<T>(List<T> data, string heading = "", bool isShowSlNo = false, params string[] columnsToTake) + //{ + // ExcelExportSet excelExport = new ExcelExportSet(); + // excelExport. + // return ExportExcel(ListToDataTable(data), heading, isShowSlNo, columnsToTake); + //} } } diff --git a/src/Bro.M071.DBManager/MeasurementUnitResultManager.cs b/src/Bro.M071.DBManager/MeasurementUnitResultManager.cs index 346af64..be0bb9e 100644 --- a/src/Bro.M071.DBManager/MeasurementUnitResultManager.cs +++ b/src/Bro.M071.DBManager/MeasurementUnitResultManager.cs @@ -72,11 +72,11 @@ //into pmList select new MeasurementUnitResult_DTO { - ProductionMeasurementRecord= productionMeasurementRecords, - MeasurementUnitResult= measurementUnitResult + ProductionCode = productionMeasurementRecords.ProductionCode, + ProductionBarcode = productionMeasurementRecords.ProductionBarcode }; - var pageList = query.OrderBy(u => u.ProductionMeasurementRecord.OperationStartTime).ToPagedList(request); + var pageList = query.OrderBy(u => u.CREATE_TIME).ToPagedList(request); request.TotalNum = mList.Count(); return pageList; } diff --git a/src/Bro.M071.Model/Model/MeasurementUnitResult.cs b/src/Bro.M071.Model/Model/MeasurementUnitResult.cs index 3d39b4c..62898f4 100644 --- a/src/Bro.M071.Model/Model/MeasurementUnitResult.cs +++ b/src/Bro.M071.Model/Model/MeasurementUnitResult.cs @@ -1,5 +1,6 @@ 锘� using System; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace Bro.M071.Model.Model @@ -68,17 +69,48 @@ public string MeasurementResult { get; set; } } - public class MeasurementUnitResult_DTO + public class MeasurementUnitResult_DTO : MeasurementUnitResult { + //浜у搧鐩稿叧 /// <summary> - /// 浜у搧璁板綍 + /// 浜у搧缂栫爜 /// </summary> + public string ProductionCode { get; set; } + + /// <summary> + /// 浜у搧鏉$爜 + /// </summary> + public string ProductionBarcode { get; set; } + + + } + + public class ProductionMeasurementUnitResultAndKeyUnitDataSet + { + public ProductionMeasurementRecords ProductionMeasurementRecord { get; set; } + + /// <summary> + /// 鍏崇郴鏁版嵁 + /// </summary> + public List<MeasurementAndKeyDataRelation> MeasurementAndKeyDataRelationList{ get; set; } /// <summary> /// 妫�娴嬬粨鏋� /// </summary> - public MeasurementUnitResult MeasurementUnitResult { get; set; } + public List<MeasurementUnitResult> MeasurementUnitResultList { get; set; } + + /// <summary> + /// 鍘熷鏁版嵁 + /// </summary> + public List<KeyUnitData> KeyUnitDataList { get; set; } + + public ProductionMeasurementUnitResultAndKeyUnitDataSet() + { + ProductionMeasurementRecord = new ProductionMeasurementRecords(); + MeasurementUnitResultList = new List<MeasurementUnitResult>(); + KeyUnitDataList = new List<KeyUnitData>(); + } } diff --git a/src/Bro.M071.Process/Bro.M071.Process.csproj b/src/Bro.M071.Process/Bro.M071.Process.csproj index eb681d3..e8c6f29 100644 --- a/src/Bro.M071.Process/Bro.M071.Process.csproj +++ b/src/Bro.M071.Process/Bro.M071.Process.csproj @@ -179,6 +179,10 @@ <Project>{1A3CBFE7-3F78-42C3-95C5-10360450DBEA}</Project> <Name>Bro.Common.Model</Name> </ProjectReference> + <ProjectReference Include="..\Bro.M071.DBManager\Bro.M071.DBManager.csproj"> + <Project>{230B0FFF-F6AF-45FE-AAF7-B4B66250DD58}</Project> + <Name>Bro.M071.DBManager</Name> + </ProjectReference> <ProjectReference Include="..\Bro.M071.Model\Bro.M071.Model.csproj"> <Project>{AD645C48-5811-4B1E-B81F-D35D5E6B577F}</Project> <Name>Bro.M071.Model</Name> diff --git a/src/Bro.M071.Process/M071Config.cs b/src/Bro.M071.Process/M071Config.cs index 9f8559f..f2b54c1 100644 --- a/src/Bro.M071.Process/M071Config.cs +++ b/src/Bro.M071.Process/M071Config.cs @@ -67,6 +67,12 @@ [Editor(typeof(ComplexCollectionEditor<MeasurementUnit>), typeof(UITypeEditor))] public List<MeasurementUnit> MeasurementUnitCollection { get; set; } = new List<MeasurementUnit>(); + [Category("妫�娴嬭缃�")] + [DisplayName("缁撴灉鏁版嵁淇濆瓨璺緞")] + [Description("妫�娴嬬粨鏋滄暟鎹繚瀛樿矾寰�")] + [Editor(typeof(FoldDialogEditor), typeof(UITypeEditor))] + public string ResultDataSaveFolder { get; set; } = ""; + [Category("鍥剧墖淇濆瓨閰嶇疆")] [Description("鍗曢敭鍥剧墖淇濆瓨閰嶇疆")] [TypeConverter(typeof(ComplexObjectConvert))] diff --git a/src/Bro.M071.Process/M071Models.cs b/src/Bro.M071.Process/M071Models.cs index 434029f..5ccaad2 100644 --- a/src/Bro.M071.Process/M071Models.cs +++ b/src/Bro.M071.Process/M071Models.cs @@ -219,6 +219,7 @@ public class ProductionMeasurement : INotifyPropertyChanged, IDisposable { public string Barcode; + public string PResult; public List<MeasurementUnit> Measurements = new List<MeasurementUnit>(); diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs index 1d8c532..6b0702d 100644 --- a/src/Bro.M071.Process/M071Process.cs +++ b/src/Bro.M071.Process/M071Process.cs @@ -2,7 +2,9 @@ using Bro.Common.Helper; using Bro.Common.Interface; using Bro.Common.Model; +using Bro.M071.DBManager; using Bro.M071.Model; +using Bro.M071.Model.Model; using Bro.Process; using HalconDotNet; using Newtonsoft.Json; @@ -59,8 +61,8 @@ private void InitialSetting() { - ////鏁版嵁搴撹縼绉绘鏌� - //DatabaseInitialize.Initialize(); + //鏁版嵁搴撹縼绉绘鏌� + DatabaseInitialize.Initialize(); MotionCardSettingCheck(); @@ -364,19 +366,23 @@ pMeasure.EndTime = DateTime.Now; bool pResult = pMeasure.Measurements.All(u => u.Spec.MeasureResult == true); + pMeasure.PResult = pResult ? "OK" : "NG"; OnUpdateResult?.Invoke(DateTime.Now, pResult ? 1 : 0); OnUpdateCT?.Invoke((float)(pMeasure.EndTime.Value - pMeasure.StartTime.Value).TotalSeconds); - LogAsync(DateTime.Now, $"{pMeasure.Barcode} 妫�娴嬪畬鎴愶紝缁撴灉 {(pResult ? "OK" : "NG")}", ""); + LogAsync(DateTime.Now, $"{pMeasure.Barcode} 妫�娴嬪畬鎴愶紝缁撴灉 {pMeasure.PResult}", ""); if (MachineState == MachineState.Running) MachineState = MachineState.Ready; + var measurementUnitResultAndKeyUnitDataSet = GetMeasurementUnitResultAndKeyUnitData(pMeasure); + //MES杈撳嚭 todo - //Excel鎶ヨ〃杈撳嚭 todo - - //鏁版嵁搴撲繚瀛� todo + //Excel鎶ヨ〃杈撳嚭 锛堝崟涓骇鍝佺殑excel瀵煎嚭锛� + ExportProductionExcel(measurementUnitResultAndKeyUnitDataSet); + //鏁版嵁搴撲繚瀛� + SaveProductionData(measurementUnitResultAndKeyUnitDataSet); SaveWholeImage(pMeasure); @@ -385,6 +391,149 @@ } } + KeyUnitDataManager keyUnitDataManager = new KeyUnitDataManager(); + MeasurementUnitResultManager measurementUnitResultManager = new MeasurementUnitResultManager(); + MeasurementAndKeyDataRelationManager measurementAndKeyDataRelationManager = new MeasurementAndKeyDataRelationManager(); + ProductionMeasurementRecordsManager productionMeasurementRecordsManager = new ProductionMeasurementRecordsManager(); + + static object dataSaveLock = new object(); + + private async void SaveProductionData(ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet) + { + await Task.Run(() => + { + try + { + lock (dataSaveLock) + { + // 鑾峰彇 浜у搧鏁版嵁 骞朵繚瀛� + var productionMeasurementRecords = measurementUnitResultAndKeyUnitDataSet.ProductionMeasurementRecord; + productionMeasurementRecordsManager.CreateModel(productionMeasurementRecords); + + // 鑾峰彇 鍘熷鏁版嵁 骞朵繚瀛� + var keyUnitDatas = measurementUnitResultAndKeyUnitDataSet.KeyUnitDataList; + keyUnitDataManager.BatchAddKeyUnitData(keyUnitDatas); + + // 鑾峰彇 妫�娴嬬粨鏋滄暟鎹� 骞朵繚瀛� + var measurementUnitResults = measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList; + measurementUnitResultManager.BatchAddMeasurementUnitResult(measurementUnitResults); + + // 鑾峰彇 鍏崇郴鏁版嵁骞朵繚瀛� + var measurementAndKeyDataRelationList = measurementUnitResultAndKeyUnitDataSet.MeasurementAndKeyDataRelationList; + measurementAndKeyDataRelationManager.BatchAddMeasurementAndKeyDataRelation(measurementAndKeyDataRelationList); + } + } + catch (Exception ex) + { + LogAsync(DateTime.Now, "鏁版嵁淇濆瓨寮傚父", ex.GetExceptionMessage()); + } + }); + } + + private ProductionMeasurementUnitResultAndKeyUnitDataSet GetMeasurementUnitResultAndKeyUnitData(ProductionMeasurement pData) + { + ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet = new ProductionMeasurementUnitResultAndKeyUnitDataSet(); + + try + { + + //浜у搧鏁版嵁 + ProductionMeasurementRecords productionMeasurementRecords = new ProductionMeasurementRecords(); + //鍏崇郴鏁版嵁 + List<MeasurementAndKeyDataRelation> measurementAndKeyDataRelationList = new List<MeasurementAndKeyDataRelation>(); + //鍘熷鏁版嵁 + List<KeyUnitData> keyUnitDatas = new List<KeyUnitData>(); + // 鍗曚釜浜у搧鐨勬祴閲忔眹鎬� + List<MeasurementUnitResult> measurementUnitResults = new List<MeasurementUnitResult>(); + + productionMeasurementRecords.ProductionBarcode = pData.Barcode; + productionMeasurementRecords.ProductionCode = ProductionCode; + productionMeasurementRecords.ProductionResult = pData.PResult; + productionMeasurementRecords.OperationStartTime = pData.StartTime.GetValueOrDefault(); + productionMeasurementRecords.OperationEndTime = pData.EndTime.GetValueOrDefault(); + + measurementUnitResultAndKeyUnitDataSet.ProductionMeasurementRecord = productionMeasurementRecords; + + foreach (var MeasurementUnitResult in pData.Measurements)//鑾峰彇鍒板崟涓祴閲忛」缁撴灉 + { + MeasurementUnitResult measurementUnitResult = new MeasurementUnitResult(); + measurementUnitResult.ProductionMeasurementRecordsId = productionMeasurementRecords.ID; + measurementUnitResult.MeasurementName = MeasurementUnitResult.Name; + measurementUnitResult.MeasurementType = MeasurementUnitResult.MeasureType; + measurementUnitResult.MeasurementValue = ""; + measurementUnitResult.MeasurementResult = MeasurementUnitResult.Spec.MeasureResult.Value ? "OK" : "NG"; + + measurementUnitResults.Add(measurementUnitResult); + + foreach (var keyUnit in MeasurementUnitResult.KeyUnitCollection)//鑾峰彇鍗曚釜閿殑娴嬮噺缁撴灉 + { + foreach (var keyValue in keyUnit.MeasureValueDict)//鑾峰彇鍗曚釜閿殑鍗曚釜娴嬮噺item 缁撴灉 + { + KeyUnitData keyUnitData = new KeyUnitData(); + keyUnitData.Key = keyUnit.Key; + keyUnitData.MeasurementItem = keyValue.Key; + keyUnitData.ItemValue = keyValue.Value.ToString(); + keyUnitDatas.Add(keyUnitData); + + MeasurementAndKeyDataRelation measurementAndKeyDataRelation = new MeasurementAndKeyDataRelation(); + measurementAndKeyDataRelation.MeasurementUnitResultId = measurementUnitResult.ID; + measurementAndKeyDataRelation.KeyUnitDataId = keyUnitData.ID; + measurementAndKeyDataRelationList.Add(measurementAndKeyDataRelation); + + } + } + } + measurementUnitResultAndKeyUnitDataSet.ProductionMeasurementRecord = productionMeasurementRecords; + measurementUnitResultAndKeyUnitDataSet.MeasurementAndKeyDataRelationList = measurementAndKeyDataRelationList; + measurementUnitResultAndKeyUnitDataSet.KeyUnitDataList = keyUnitDatas; + measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList = measurementUnitResults; + } + catch (Exception ex) + { + LogAsync(DateTime.Now, "鏁版嵁鑾峰彇寮傚父", ex.GetExceptionMessage()); + } + return measurementUnitResultAndKeyUnitDataSet; + } + + private async void ExportProductionExcel(ProductionMeasurementUnitResultAndKeyUnitDataSet measurementUnitResultAndKeyUnitDataSet) + { + await Task.Run(() => + { + ExcelExportSet excelExportDto = new ExcelExportSet(); + excelExportDto.Worksheets = new List<string>() { "鍘熷鏁版嵁", "妫�娴嬬粨鏋�" }; + var keyUnitColumns = new Dictionary<string, string>() + { + {"Key", "閿�"}, + {"MeasurementItem", "妫�娴嬮」"}, + {"ItemValue", "妫�娴嬪��"} + }; + var measurementUnitResultColumns = new Dictionary<string, string>() + { + {"MeasurementName", "妫�娴嬪悕绉�"}, + {"MeasurementType", "妫�娴嬬被鍨�"}, + {"MeasurementValue", "妫�娴嬪��"}, + {"MeasurementResult", "妫�娴嬬粨鏋�"}, + }; + excelExportDto.WorksheetColumns[excelExportDto.Worksheets[0]] = keyUnitColumns; + excelExportDto.WorksheetColumns[excelExportDto.Worksheets[1]] = measurementUnitResultColumns; + + excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[0]] = ExcelExportHelper.ListToDataTable(measurementUnitResultAndKeyUnitDataSet.KeyUnitDataList, keyUnitColumns); + excelExportDto.WorksheetDataTable[excelExportDto.Worksheets[1]] = ExcelExportHelper.ListToDataTable(measurementUnitResultAndKeyUnitDataSet.MeasurementUnitResultList, measurementUnitResultColumns); ; + + byte[] filecontent = ExcelExportHelper.ExportExcel(excelExportDto, false); + string dir = Path.Combine(Config.ImageSaveFolder, DateTime.Now.ToString("yyyyMMdd")); + if (!Directory.Exists(dir)) + { + Directory.CreateDirectory(dir); + } + + FileStream fs = new FileStream(Path.Combine(dir, $"{measurementUnitResultAndKeyUnitDataSet.ProductionMeasurementRecord.ProductionBarcode}_{DateTime.Now.ToString("HHmmss")}.xlsx"), FileMode.Create, FileAccess.Write); + fs.Write(filecontent, 0, filecontent.Length); + fs.Flush(); + fs.Close(); + }); + } + #region 鍥惧儚淇濆瓨 private void SaveWholeImage(ProductionMeasurement pMeasure) { diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs index 1bbcd47..629efc2 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.Designer.cs @@ -228,6 +228,8 @@ this.buttonNegative.Text = "璐熷悜"; this.buttonNegative.UseVisualStyleBackColor = true; this.buttonNegative.Click += new System.EventHandler(this.buttonNegative_Click); + this.buttonNegative.MouseDown += new System.Windows.Forms.MouseEventHandler(this.buttonNegative_MouseDown); + this.buttonNegative.MouseUp += new System.Windows.Forms.MouseEventHandler(this.buttonNegative_MouseUp); // // textBoxJogDec // @@ -245,6 +247,8 @@ this.buttonPositive.Text = "姝e悜"; this.buttonPositive.UseVisualStyleBackColor = true; this.buttonPositive.Click += new System.EventHandler(this.buttonPositive_Click); + this.buttonPositive.MouseDown += new System.Windows.Forms.MouseEventHandler(this.buttonPositive_MouseDown); + this.buttonPositive.MouseUp += new System.Windows.Forms.MouseEventHandler(this.buttonPositive_MouseUp); // // textBoxJogAcc // diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs index 488561c..f6ab955 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisOperation.cs @@ -37,21 +37,8 @@ groupBoxAxisOperration.Text = $"杩愬姩杞达細{axisIndex}-{axisName}"; } - private void buttonPositive_Click(object sender, EventArgs e) - { - var opConfig = new MotionOperationCollection(); - MovingOption movingOption = new MovingOption(); - movingOption.AxisIndex = _axisIndex; - movingOption.MoveMode = MotionMode.Jog; - movingOption.VelocityPara.Acc = Convert.ToDouble(textBoxJogAcc.Text); - movingOption.VelocityPara.Dec = Convert.ToDouble(textBoxJogDec.Text); - movingOption.VelocityPara.Velocity= Convert.ToDouble(textBoxJogVel.Text); - opConfig.MovingOps.Add(movingOption); - MotionCard.MoveToPoint(opConfig); - } - - private void buttonNegative_Click(object sender, EventArgs e) + private void buttonPositive_MouseDown(object sender, MouseEventArgs e) { var opConfig = new MotionOperationCollection(); MovingOption movingOption = new MovingOption(); @@ -63,6 +50,40 @@ opConfig.MovingOps.Add(movingOption); MotionCard.MoveToPoint(opConfig); + } + + private void buttonPositive_MouseUp(object sender, MouseEventArgs e) + { + MotionCard.MoveStop(_axisIndex, 0); + } + + private void buttonNegative_MouseUp(object sender, MouseEventArgs e) + { + MotionCard.MoveStop(_axisIndex, 0); + } + + private void buttonNegative_MouseDown(object sender, MouseEventArgs e) + { + var opConfig = new MotionOperationCollection(); + MovingOption movingOption = new MovingOption(); + movingOption.AxisIndex = _axisIndex; + movingOption.MoveMode = MotionMode.Jog; + movingOption.VelocityPara.Acc = Convert.ToDouble(textBoxJogAcc.Text); + movingOption.VelocityPara.Dec = Convert.ToDouble(textBoxJogDec.Text); + movingOption.VelocityPara.Velocity = -Convert.ToDouble(textBoxJogVel.Text); + + opConfig.MovingOps.Add(movingOption); + MotionCard.MoveToPoint(opConfig); + } + + private void buttonPositive_Click(object sender, EventArgs e) + { + + } + + private void buttonNegative_Click(object sender, EventArgs e) + { + } private void buttonStart_Click(object sender, EventArgs e) @@ -82,7 +103,7 @@ private void buttonStop_Click(object sender, EventArgs e) { - MotionCard.StateChange(DeviceState.DSPause); + MotionCard.MoveStop(_axisIndex, 0); } } } diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs index e35b793..b5ff08a 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.Designer.cs @@ -44,7 +44,7 @@ this.label4 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); - this.timer1 = new System.Windows.Forms.Timer(this.components); + this.timerAxisStatus = new System.Windows.Forms.Timer(this.components); this.groupBoxAxisStatus.SuspendLayout(); this.SuspendLayout(); // @@ -194,9 +194,11 @@ this.label2.TabIndex = 2; this.label2.Text = "瑙勫垝浣嶇疆锛�"; // - // timer1 + // timerAxisStatus // - this.timer1.Tick += new System.EventHandler(this.RefreshStatus); + this.timerAxisStatus.Enabled = true; + this.timerAxisStatus.Interval = 200; + this.timerAxisStatus.Tick += new System.EventHandler(this.RefreshStatus); // // CtrlMotionCardAxisStatus // @@ -228,6 +230,6 @@ private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label2; - private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Timer timerAxisStatus; } } diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx index 1f666f2..83e9b35 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardAxisStatus.resx @@ -117,7 +117,7 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="timerAxisStatus.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> </root> \ No newline at end of file diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs index f89c6b7..60a09b0 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.Designer.cs @@ -64,7 +64,7 @@ this.ioIn6 = new Bro.UI.Model.Winform.IOIndicatorCtrl(); this.ioIn5 = new Bro.UI.Model.Winform.IOIndicatorCtrl(); this.ioIn1 = new Bro.UI.Model.Winform.IOIndicatorCtrl(); - this.timer1 = new System.Windows.Forms.Timer(this.components); + this.timerIOStatus = new System.Windows.Forms.Timer(this.components); this.tableLayoutPanel1.SuspendLayout(); this.groupBoxIOOut.SuspendLayout(); this.groupBoxIOIn.SuspendLayout(); @@ -425,11 +425,11 @@ this.ioIn1.Size = new System.Drawing.Size(90, 24); this.ioIn1.TabIndex = 4; // - // timer1 + // timerIOStatus // - this.timer1.Enabled = true; - this.timer1.Interval = 200; - this.timer1.Tick += new System.EventHandler(this.RefreshIOStatus); + this.timerIOStatus.Enabled = true; + this.timerIOStatus.Interval = 200; + this.timerIOStatus.Tick += new System.EventHandler(this.RefreshIOStatus); // // CtrlMotionCardIOStatus // @@ -482,6 +482,6 @@ private Model.Winform.IOIndicatorCtrl ioOut6; private Model.Winform.IOIndicatorCtrl ioOut5; private Model.Winform.IOIndicatorCtrl ioOut1; - private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Timer timerIOStatus; } } diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx index 1f666f2..2a16bac 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardIOStatus.resx @@ -117,7 +117,7 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <metadata name="timerIOStatus.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> </root> \ No newline at end of file diff --git a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs index 1583630..23144a3 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/CtrlMotionCardRunBase.cs @@ -9,6 +9,7 @@ using System.Windows.Forms; using Bro.Common.Interface; using Bro.Common.Base; +using Bro.Common.Model; namespace Bro.UI.Device.Winform { @@ -27,6 +28,13 @@ InitialLayout(); } + public IDevice Device { get; set; } + + protected MotionCardBase MotionCard + { + get => Device as MotionCardBase; + } + private void MotionCard_OnMonitorInvoke(DateTime arg1, string arg2, IDevice arg3, IMonitorSet arg4) { throw new NotImplementedException(); @@ -36,25 +44,23 @@ { foreach (var axisConfig in MotionCard.IConfig.AxisSettings.FindAll(u => u.IsAxisEnabled)) { - var axisMovingStatus = MotionCard.AxisMovingOptionValues.FirstOrDefault(u=>u.AxisIndex== axisConfig.AxisIndex); - if (axisMovingStatus!=null) + var axisMovingStatus = MotionCard.AxisMovingOptionValues.FirstOrDefault(u => u.AxisIndex == axisConfig.AxisIndex); + if (axisMovingStatus == null) { - CtrlMotionCardAxisStatus ctrlMotionCardAxisStatus = new CtrlMotionCardAxisStatus(axisMovingStatus); - ctrlMotionCardAxisStatus.Dock = DockStyle.Fill; - flowLayoutPanel1.Controls.Add(ctrlMotionCardAxisStatus); + axisMovingStatus = new AxisMovingStatus(); } + CtrlMotionCardAxisStatus ctrlMotionCardAxisStatus = new CtrlMotionCardAxisStatus(axisMovingStatus); + //ctrlMotionCardAxisStatus.Dock = DockStyle.Fill; + flowLayoutPanel1.Controls.Add(ctrlMotionCardAxisStatus); + } - CtrlMotionCardIOStatus ctrlMotionCardIOStatus = new CtrlMotionCardIOStatus(); + CtrlMotionCardIOStatus ctrlMotionCardIOStatus = new CtrlMotionCardIOStatus(MotionCard.MonitorValues); + //ctrlMotionCardIOStatus.Dock = DockStyle.Fill; flowLayoutPanel2.Controls.Add(ctrlMotionCardIOStatus); } - public IDevice Device { get; set; } - protected MotionCardBase MotionCard - { - get => Device as MotionCardBase; - } private void buttonMotionCardOperation_Click(object sender, EventArgs e) { diff --git a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs index ce4360e..54154ad 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.Designer.cs @@ -63,7 +63,7 @@ this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 1; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(484, 681); + this.tableLayoutPanel1.Size = new System.Drawing.Size(574, 681); this.tableLayoutPanel1.TabIndex = 0; // // tabControl1 @@ -74,7 +74,7 @@ this.tabControl1.Location = new System.Drawing.Point(3, 3); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(478, 675); + this.tabControl1.Size = new System.Drawing.Size(568, 675); this.tabControl1.TabIndex = 12; // // tabPage1 @@ -83,7 +83,7 @@ this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(470, 649); + this.tabPage1.Size = new System.Drawing.Size(560, 649); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "蹇嵎鎿嶄綔"; this.tabPage1.UseVisualStyleBackColor = true; @@ -93,7 +93,7 @@ this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 3); this.flowLayoutPanel1.Name = "flowLayoutPanel1"; - this.flowLayoutPanel1.Size = new System.Drawing.Size(464, 643); + this.flowLayoutPanel1.Size = new System.Drawing.Size(554, 643); this.flowLayoutPanel1.TabIndex = 0; // // tabPage2 @@ -102,7 +102,7 @@ this.tabPage2.Location = new System.Drawing.Point(4, 22); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(470, 649); + this.tabPage2.Size = new System.Drawing.Size(560, 649); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "閫氱敤鎿嶄綔"; this.tabPage2.UseVisualStyleBackColor = true; @@ -119,7 +119,7 @@ this.tableLayoutPanel3.RowCount = 2; this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(464, 643); + this.tableLayoutPanel3.Size = new System.Drawing.Size(554, 643); this.tableLayoutPanel3.TabIndex = 0; // // groupBoxPara @@ -128,7 +128,7 @@ this.groupBoxPara.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBoxPara.Location = new System.Drawing.Point(3, 123); this.groupBoxPara.Name = "groupBoxPara"; - this.groupBoxPara.Size = new System.Drawing.Size(458, 517); + this.groupBoxPara.Size = new System.Drawing.Size(548, 517); this.groupBoxPara.TabIndex = 13; this.groupBoxPara.TabStop = false; this.groupBoxPara.Text = "鍙傛暟"; @@ -139,7 +139,7 @@ this.propGrid.Location = new System.Drawing.Point(3, 17); this.propGrid.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); this.propGrid.Name = "propGrid"; - this.propGrid.Size = new System.Drawing.Size(452, 497); + this.propGrid.Size = new System.Drawing.Size(542, 497); this.propGrid.TabIndex = 1; // // groupBoxCommBtn @@ -153,7 +153,7 @@ this.groupBoxCommBtn.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBoxCommBtn.Location = new System.Drawing.Point(3, 3); this.groupBoxCommBtn.Name = "groupBoxCommBtn"; - this.groupBoxCommBtn.Size = new System.Drawing.Size(458, 114); + this.groupBoxCommBtn.Size = new System.Drawing.Size(548, 114); this.groupBoxCommBtn.TabIndex = 1; this.groupBoxCommBtn.TabStop = false; this.groupBoxCommBtn.Text = "鍏叡鎿嶄綔"; @@ -167,9 +167,9 @@ this.btnStart.Font = new System.Drawing.Font("瀹嬩綋", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnStart.Image = ((System.Drawing.Image)(resources.GetObject("btnStart.Image"))); this.btnStart.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; - this.btnStart.Location = new System.Drawing.Point(309, 23); + this.btnStart.Location = new System.Drawing.Point(374, 23); this.btnStart.Name = "btnStart"; - this.btnStart.Size = new System.Drawing.Size(143, 54); + this.btnStart.Size = new System.Drawing.Size(168, 54); this.btnStart.TabIndex = 5; this.btnStart.Text = " 鍚� 鍔�"; this.btnStart.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; @@ -188,7 +188,7 @@ // // buttonEmergencyStop // - this.buttonEmergencyStop.Location = new System.Drawing.Point(86, 56); + this.buttonEmergencyStop.Location = new System.Drawing.Point(108, 56); this.buttonEmergencyStop.Name = "buttonEmergencyStop"; this.buttonEmergencyStop.Size = new System.Drawing.Size(70, 25); this.buttonEmergencyStop.TabIndex = 4; @@ -198,7 +198,7 @@ // // buttonServoEnable // - this.buttonServoEnable.Location = new System.Drawing.Point(86, 21); + this.buttonServoEnable.Location = new System.Drawing.Point(108, 21); this.buttonServoEnable.Name = "buttonServoEnable"; this.buttonServoEnable.Size = new System.Drawing.Size(70, 25); this.buttonServoEnable.TabIndex = 4; @@ -218,7 +218,7 @@ // // buttonPositionReset // - this.buttonPositionReset.Location = new System.Drawing.Point(168, 21); + this.buttonPositionReset.Location = new System.Drawing.Point(213, 21); this.buttonPositionReset.Name = "buttonPositionReset"; this.buttonPositionReset.Size = new System.Drawing.Size(70, 25); this.buttonPositionReset.TabIndex = 4; @@ -230,9 +230,10 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(484, 681); + this.ClientSize = new System.Drawing.Size(574, 681); this.Controls.Add(this.tableLayoutPanel1); this.Name = "FrmMotionCardOperationBase"; + this.Text = "鏉垮崱鎿嶄綔"; this.tableLayoutPanel1.ResumeLayout(false); this.tabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); diff --git a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs index 6118331..7aa4294 100644 --- a/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs +++ b/src/Bro.UI.Device.Winform/MotionCard/FrmMotionCardOperationBase.cs @@ -40,7 +40,7 @@ foreach (var axisConfig in MotionCard.IConfig.AxisSettings.FindAll(u => u.IsAxisEnabled)) { CtrlMotionCardAxisOperation axisOperation = new CtrlMotionCardAxisOperation(Device, axisConfig.AxisIndex, axisConfig.AxisName); - axisOperation.Dock = DockStyle.Fill; + //axisOperation.Dock = DockStyle.Fill; flowLayoutPanel1.Controls.Add(axisOperation); } -- Gitblit v1.8.0