// 載入 /CPxP/conf/setup.xml 或自訂的設定檔 // 如果該變數會受 Conf 檔影響, 請記得在此補上 internal static void LoadConfig() { //Debug DebugTool.WriteLog("SystemVariable.cs", "LoadConfig() # 載入 /CPxP/conf/setup.xml "); XDocument XConf = GetConfig(); XElement MapVariable = XConf.Element("Config").Element("MapVariable"); try { PxPVariable.ImgRowsSet = int.Parse(MapVariable.Element("ImgRowsSet").Value); PxPVariable.ImgColsSet = int.Parse(MapVariable.Element("ImgColsSet").Value); MapWindowVariable.MapProportion = int.Parse(MapVariable.Element("MapProportion").Value); MapWindowVariable.ShowGridSet = (int.Parse(MapVariable.Element("ShowGridSet").Value) == 1) ? true : false; MapWindowVariable.MapGridSet = int.Parse(MapVariable.Element("MapGridSet").Value); MapWindowVariable.MapMDSet = double.Parse(MapVariable.Element("MapMDSet").Value); MapWindowVariable.MapCDSet = double.Parse(MapVariable.Element("MapCDSet").Value); MapWindowVariable.SeriesSet = int.Parse(MapVariable.Element("SeriesSet").Value); MapWindowVariable.BottomAxe = int.Parse(MapVariable.Element("BottomAxe").Value); MapWindowVariable.MDInver = int.Parse(MapVariable.Element("MDInver").Value); MapWindowVariable.CDInver = int.Parse(MapVariable.Element("CDInver").Value); MapWindowVariable.ShowFlag = int.Parse(MapVariable.Element("ShowFlag").Value); MapWindowVariable.LastMapCDConvertion = double.Parse(MapVariable.Element("LastMapCDConvertion").Value); MapWindowVariable.LastMapMDConvertion = double.Parse(MapVariable.Element("LastMapMDConvertion").Value); PxPVariable.PageSize = PxPVariable.ImgRowsSet * PxPVariable.ImgColsSet; } catch (Exception ex) { PxPVariable.ImgRowsSet = 2; PxPVariable.ImgColsSet = 2; MapWindowVariable.MapProportion = 0; MapWindowVariable.ShowGridSet = true; MapWindowVariable.MapGridSet = 1; MapWindowVariable.MapMDSet = 3; MapWindowVariable.MapCDSet = 3; MapWindowVariable.SeriesSet = 0; MapWindowVariable.BottomAxe = 0; MapWindowVariable.MDInver = 0; MapWindowVariable.CDInver = 0; MapWindowVariable.LastMapCDConvertion = 1.00; MapWindowVariable.LastMapMDConvertion = 1.00; //Debug DebugTool.WriteLog("SystemVariable.cs", "*** LoadConfig() # 載入 /CPxP/conf/setup.xml 錯誤 "); } IEnumerable<XElement> xMapFlawTypeName = XConf.Element("Config").Element("MapVariable").Elements("FlawTypeName"); try { PxPVariable.FlawTypeName.Clear(); foreach (XElement el in xMapFlawTypeName) { FlawTypeNameExtend tmp = new FlawTypeNameExtend(); tmp.Display = (int.Parse(el.Element("Display").Value) == 1) ? true : false; tmp.Color = el.Element("Color").Value.ToString(); tmp.Name = el.Element("Name").Value.ToString(); tmp.Shape = ((Shape)Enum.Parse(typeof(Shape), el.Element("Shape").Value.ToString(), false)).ToGraphic(); tmp.FlawType = int.Parse(el.Element("FlawType").Value.ToString()); PxPVariable.FlawTypeName.Add(tmp); } } catch (Exception ex) { DebugTool.WriteLog("SystemVariable.cs", "*** Load Roi mode Error:" + ex.Message, MapWindowVariable.FlawPieces.Count.ToString(), MapWindowVariable.CurrentPiece.ToString()); } //Debug DebugTool.WriteLog("SystemVariable.cs", "LoadConfig() # 載入 /CPxP/conf/setup.xml 完畢 "); }
// 載入所有物件預設值 void InitAllObject() { // 組態檔繫結 bsConfList.DataSource = GetConfList(); cboxConfList.DataSource = bsConfList.DataSource; cboxConfList.SelectedItem = SystemVariable.ConfigFileName.ToString().Substring(0, SystemVariable.ConfigFileName.ToString().LastIndexOf(".")); ndImgCols.Value = PxPVariable.ImgColsSet; ndImgRows.Value = PxPVariable.ImgRowsSet; cboxMapSize.SelectedIndex = MapWindowVariable.MapProportion; // 紀錄 Map 比例 0->1:1, 2->2:1, 2->4:3, 3->3:4, 4->16:9 rbMapGridOff.Checked = !MapWindowVariable.ShowGridSet; rbMapGridOn.Checked = MapWindowVariable.ShowGridSet; switch (MapWindowVariable.SeriesSet) { case 0: // 形伏 rbSharp.Checked = true; break; case 1: // 字母 rbLetter.Checked = true; break; } switch (MapWindowVariable.MapGridSet) { case 0: // EachCellSize rbFixCellSize.Checked = true; tboxFixSizeCD.Text = MapWindowVariable.MapCDSet.ToString(); tboxFixSizeMD.Text = MapWindowVariable.MapMDSet.ToString(); tboxCountSizeCD.Text = ""; tboxCountSizeMD.Text = ""; break; case 1: // EachCellCount rbCountSize.Checked = true; tboxFixSizeCD.Text = ""; tboxFixSizeMD.Text = ""; tboxCountSizeCD.Text = MapWindowVariable.MapCDSet.ToString(); tboxCountSizeMD.Text = MapWindowVariable.MapMDSet.ToString(); break; } tboxFixSizeCD.Enabled = rbFixCellSize.Checked; tboxFixSizeMD.Enabled = rbFixCellSize.Checked; tboxCountSizeCD.Enabled = rbCountSize.Checked; tboxCountSizeMD.Enabled = rbCountSize.Checked; cboxButtomAxe.SelectedIndex = MapWindowVariable.BottomAxe; cbCDInverse.Checked = (MapWindowVariable.CDInver == 1) ? true : false; cbMDInverse.Checked = (MapWindowVariable.MDInver == 1) ? true : false; // Change Specify Cell Size Unit Label lbSCCD.Text = PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw Map CD"]].ItemArray[1].ToString(); lbSCMD.Text = PxPVariable.UnitsData.Tables["unit"].Rows[PxPVariable.UnitsKeys["Flaw Map MD"]].ItemArray[1].ToString(); // Add List here and binding to datagridvew if (PxPVariable.FlawTypeName != null && PxPVariable.FlawTypeName.Count > 0) { TmpFlawTypeName = new List<FlawTypeNameExtend>(); foreach (FlawTypeNameExtend ft in PxPVariable.FlawTypeName) { FlawTypeNameExtend tmp = new FlawTypeNameExtend(); tmp.Color = ft.Color; tmp.FlawType = ft.FlawType; tmp.Name = ft.Name; tmp.Shape = ft.Shape; tmp.Display = ft.Display; tmp.Count = ft.Count; tmp.JobNum = ft.JobNum; tmp.DoffNum = ft.DoffNum; TmpFlawTypeName.Add(tmp); } bsFlawTypeName.DataSource = TmpFlawTypeName; gvSeries.DataSource = bsFlawTypeName; gvSeries.AutoGenerateColumns = false; foreach (DoffGridColumns column in MapWindowVariable.DoffTypeGridSetup) { gvSeries.Columns[column.ColumnName].SortMode = DataGridViewColumnSortMode.Automatic; gvSeries.Columns[column.ColumnName].HeaderText = column.HeaderText; gvSeries.Columns[column.ColumnName].DisplayIndex = column.Index; gvSeries.Columns[column.ColumnName].Width = column.Width; if (column.ColumnName == "Shape") { DataGridViewComboBoxColumn cboxShape = new DataGridViewComboBoxColumn(); cboxShape.DataPropertyName = "Shape"; cboxShape.HeaderText = column.HeaderText; cboxShape.DisplayIndex = column.Index; cboxShape.Width = column.Width; cboxShape.DataSource = EnumHelper.ToList(typeof(Shape)); cboxShape.DisplayMember = "Value"; cboxShape.ValueMember = "Value"; this.gvSeries.Columns.Add(cboxShape); } } // Display and Change Order gvSeries.Columns["FlawType"].DisplayIndex = 0; gvSeries.Columns["Display"].Visible = false; gvSeries.Columns["Count"].Visible = false; gvSeries.Columns["DoffNum"].Visible = false; gvSeries.Columns["Shape"].Visible = false; gvSeries.Columns["JobNum"].Visible = false; } }
// 載入 /CPxP/conf/setup.xml 或自訂的設定檔 // 如果該變數會受 Conf 檔影響, 請記得在此補上 internal static void LoadConfig() { XDocument XConf = GetConfig(); XElement MapVariable = XConf.Element("Config").Element("MapVariable"); try { PxPVariable.ImgRowsSet = int.Parse(MapVariable.Element("ImgRowsSet").Value); PxPVariable.ImgColsSet = int.Parse(MapVariable.Element("ImgColsSet").Value); MapWindowVariable.MapProportion = int.Parse(MapVariable.Element("MapProportion").Value); MapWindowVariable.ShowGridSet = (int.Parse(MapVariable.Element("ShowGridSet").Value) == 1) ? true : false; MapWindowVariable.MapGridSet = int.Parse(MapVariable.Element("MapGridSet").Value); MapWindowVariable.MapMDSet = double.Parse(MapVariable.Element("MapMDSet").Value); MapWindowVariable.MapCDSet = double.Parse(MapVariable.Element("MapCDSet").Value); MapWindowVariable.SeriesSet = int.Parse(MapVariable.Element("SeriesSet").Value); MapWindowVariable.BottomAxe = int.Parse(MapVariable.Element("BottomAxe").Value); MapWindowVariable.MDInver = int.Parse(MapVariable.Element("MDInver").Value); MapWindowVariable.CDInver = int.Parse(MapVariable.Element("CDInver").Value); MapWindowVariable.ShowFlag = int.Parse(MapVariable.Element("ShowFlag").Value); MapWindowVariable.LastMapCDConvertion = double.Parse(MapVariable.Element("LastMapCDConvertion").Value); MapWindowVariable.LastMapMDConvertion = double.Parse(MapVariable.Element("LastMapMDConvertion").Value); PxPVariable.PageSize = PxPVariable.ImgRowsSet * PxPVariable.ImgColsSet; } catch (Exception ex) { System.Windows.Forms.MessageBox.Show("Initialize Load Config Fail : \n" + ex.Message); PxPVariable.ImgRowsSet = 2; PxPVariable.ImgColsSet = 2; MapWindowVariable.MapProportion = 0; MapWindowVariable.ShowGridSet = true; MapWindowVariable.MapGridSet = 1; MapWindowVariable.MapMDSet = 3; MapWindowVariable.MapCDSet = 3; MapWindowVariable.SeriesSet = 0; MapWindowVariable.BottomAxe = 0; MapWindowVariable.MDInver = 0; MapWindowVariable.CDInver = 0; MapWindowVariable.LastMapCDConvertion = 1.00; MapWindowVariable.LastMapMDConvertion = 1.00; } IEnumerable<XElement> xMapFlawTypeName = XConf.Element("Config").Element("MapVariable").Elements("FlawTypeName"); try { PxPVariable.FlawTypeName.Clear(); foreach (XElement el in xMapFlawTypeName) { FlawTypeNameExtend tmp = new FlawTypeNameExtend(); tmp.Display = (int.Parse(el.Element("Display").Value) == 1) ? true : false; tmp.Color = el.Element("Color").Value.ToString(); tmp.Name = el.Element("Name").Value.ToString(); tmp.Shape = ((Shape)Enum.Parse(typeof(Shape), el.Element("Shape").Value.ToString(), false)).ToGraphic(); tmp.FlawType = int.Parse(el.Element("FlawType").Value.ToString()); PxPVariable.FlawTypeName.Add(tmp); } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show("Initialize Load Config Fail : MapDoffTypeGrid \n" + ex.Message); } }
public void OnJobLoaded(IList<IFlawTypeName> flawTypes, IList<ILaneInfo> lanes, IList<ISeverityInfo> severityInfo, IJobInfo jobInfo) { #region 註解 /* * 1. 使用Model來存取介面取得之參數. * 2. 啟動並回復執行緒 */ #endregion //MessageBox.Show("OnJobLoaded"); //DebugTool.WriteLog("PxPTab.cs", "OnJobLoaded"); //PxPVariable.FlawTypeName.Clear(); //PxPVariable.FlawTypeName = flawTypes; //Clear Some relative data MapWindowVariable.Flaws.Clear(); MapWindowVariable.FlawPiece.Clear(); MapWindowVariable.FlawPieces.Clear(); GradeVariable.SplitPiecesContainer.Clear(); MapWindowVariable.CurrentPiece = 0; MapWindowVariable.MapWindowController.InitLabel(); PxPVariable.CurrentCutPosition = 0; //Reload Grade config useing mcs value SystemVariable.LoadGradeConfig(); //開啟歷史資料時重新計算 P/F PxPVariable.DoffNum = 0; PxPVariable.FailNum = 0; PxPVariable.PassNum = 0; foreach (var ft in PxPVariable.FlawTypeName) { ft.DoffNum = 0; ft.JobNum = 0; } //完整處理完tmpList在丟到PxPVariable.FlawTypeName List<FlawTypeNameExtend> tmpList = new List<FlawTypeNameExtend>(); tmpList.AddRange(PxPVariable.FlawTypeName); // 一開始Conf會載入儲存Config中所有的設定到PxPVariable.FlawTypeName //把flawTypes沒有的項目先從tmp移除 var DifferencesConfigList = PxPVariable.FlawTypeName.Where(x => !flawTypes.Any(x1 => x1.Name == x.Name && x1.FlawType == x.FlawType)); foreach (var r in DifferencesConfigList) { tmpList.Remove(r); } //差異比對 補上conf沒有 但是flawTypes有的 一樣的就跳過不處理 var DifferencesList = flawTypes.Where(x => !tmpList.Any(x1 => x1.Name == x.Name && x1.FlawType == x.FlawType )); foreach (var i in DifferencesList) { //Default FlawTypeNameExtend tmp = new FlawTypeNameExtend(); tmp.FlawType = i.FlawType; tmp.Name = i.Name; tmp.Display = true; foreach (var f in PxPVariable.FlawLegend) { if (f.Name.Trim() == tmp.Name.Trim()) { //tmp.Color = String.Format("#{0:X6}", Convert.ToString(f.Color, 16).PadRight(6,'0')); tmp.Color = String.Format("#{0:X2}{1:X2}{2:X2}", ColorTranslator.FromWin32((int)f.Color).R, ColorTranslator.FromWin32((int)f.Color).G, ColorTranslator.FromWin32((int)f.Color).B); //tmp.Color = String.Format("#{0:X6}", Reverse((f.Color).ToString("X6").PadRight(6, '0'))); break; } else { tmp.Color = "#000000"; } } tmp.Shape = Shape.Cone.ToGraphic(); tmpList.Add(tmp); } //var random = new Random(); //foreach (var i in flawTypes) //{ // FlawTypeNameExtend tmp = new FlawTypeNameExtend(); // foreach (var f in PxPVariable.FlawTypeName) // { // if (i.Name != f.Name) // { // //Default // tmp.FlawType = i.FlawType; // tmp.Name = i.Name; // tmp.Display = true; // //tmp.Color =String.Format("#{0:X6}", random.Next(0x1000000)); // //tmp.Shape = Shape.Cross.ToGraphic(); // tmp.Color = "#000000"; // tmp.Shape = Shape.Cone.ToGraphic(); // tmpList.Add(tmp); // } // } //} PxPVariable.FlawTypeName.Clear(); PxPVariable.FlawTypeName.AddRange(tmpList); PxPVariable.FlawTypeName.Sort(delegate(FlawTypeNameExtend f1, FlawTypeNameExtend f2) { return f1.FlawType.CompareTo(f2.FlawType); }); //Copy a temp for setup gridview display. Not save to global variable just for display. PxPVariable.TmpFlawTypeNameForSetup.Clear(); foreach (var ft in PxPVariable.FlawTypeName) { FlawTypeNameExtend tmp = new FlawTypeNameExtend(); tmp.FlawType = ft.FlawType; tmp.Name = ft.Name; tmp.Display = ft.Display; tmp.Count = ft.Count; tmp.Color = ft.Color; tmp.Shape = ft.Shape; PxPVariable.TmpFlawTypeNameForSetup.Add(tmp); } PxPVariable.JobInfo = jobInfo; PxPVariable.SeverityInfo = severityInfo; PxPThreadStatus.IsOnJobLoaded = true; //Disable MapSetup Button MapWindowVariable.MapWindowController.btnMapSetup.Enabled = true; MapWindowVariable.MapWindowController.SetJobInfo(); MapWindowVariable.MapWindowController.SetMapAxis(); MapWindowVariable.MapWindowController.bsFlawType.ResetBindings(false); MapWindowVariable.MapWindowController.InitSubPiece(); PxPThreadEvent.Set(); }