using System; using System.Linq; using System.Collections.ObjectModel; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using SmartX; using INT69DB_2A.Forms; using INT69DB_2A_ImageDll; namespace INT69DB_2A.Controls { public partial class ControlCalibration6 : UserControl { #region Field private FormCalibration m_ParentForm; private Color NormalColor = Color.Black; private Color FinishColor = Color.Blue; private Collection CollButtonLane; private Collection CollLabelWeight; private Collection CollLabelADC; private Collection CollLabelConstant; private Collection CollCalStatus; #endregion #region Constructor public ControlCalibration6(FormCalibration parent) { InitializeComponent(); this.ParentForm = parent; this.CreateCollection(); this.InitilizeControls(); this.InitializeDesign(); this.DisplayRefresh(); } #endregion #region Property public FormCalibration ParentForm { get { return this.m_ParentForm; } set { this.m_ParentForm = value; } } #endregion #region Method private void CreateCollection() { this.CollButtonLane = new Collection(); this.CollLabelWeight = new Collection(); this.CollLabelADC = new Collection(); this.CollLabelConstant = new Collection(); this.CollCalStatus = new Collection(); this.CollButtonLane.Clear(); this.CollLabelWeight.Clear(); this.CollLabelADC.Clear(); this.CollLabelConstant.Clear(); this.CollCalStatus.Clear(); this.CollButtonLane.Add(this.buttonLine1); this.CollButtonLane.Add(this.buttonLine2); this.CollButtonLane.Add(this.buttonLine3); this.CollButtonLane.Add(this.buttonLine4); this.CollButtonLane.Add(this.buttonLine5); this.CollButtonLane.Add(this.buttonLine6); this.CollLabelWeight.Add(this.labelWeight1); this.CollLabelWeight.Add(this.labelWeight2); this.CollLabelWeight.Add(this.labelWeight3); this.CollLabelWeight.Add(this.labelWeight4); this.CollLabelWeight.Add(this.labelWeight5); this.CollLabelWeight.Add(this.labelWeight6); this.CollLabelADC.Add(this.labelADC1); this.CollLabelADC.Add(this.labelADC2); this.CollLabelADC.Add(this.labelADC3); this.CollLabelADC.Add(this.labelADC4); this.CollLabelADC.Add(this.labelADC5); this.CollLabelADC.Add(this.labelADC6); this.CollLabelConstant.Add(this.labelConstant1); this.CollLabelConstant.Add(this.labelConstant2); this.CollLabelConstant.Add(this.labelConstant3); this.CollLabelConstant.Add(this.labelConstant4); this.CollLabelConstant.Add(this.labelConstant5); this.CollLabelConstant.Add(this.labelConstant6); for (int i = 0; i < 6; i++) this.CollCalStatus.Add(new CalibrationStatus()); } private void InitilizeControls() { for (int i = 0; i < this.ParentForm.ParentForm.SystemConfig.EquipmentColumns; i++) { this.CollLabelWeight[i].Text = "0.0"; this.CollLabelADC[i].Text = "0.0"; this.CollLabelConstant[i].Text = "0.0"; } } private void InitializeDesign() { ImageDll images = new ImageDll(); if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Korean) { } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) { this.labelStaticLineNumber.Text = "No."; this.labelStaticLineSelect.Text = "Line\nSelect"; this.labelStaticWeight.Text = "Weight"; } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { this.labelStaticLineNumber.Text = "编号"; this.labelStaticLineSelect.Text = "选择路线"; this.labelStaticWeight.Text = "重量"; } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Japanese) { this.labelStaticLineNumber.Text = "番号"; this.labelStaticLineSelect.Text = "ライン\n選択"; this.labelStaticWeight.Text = "重量"; } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { } else { } } public void DisplayRefresh() { if (this.CollButtonLane == null || this.CollButtonLane.Count == 0) return; for (int i = 0; i < this.CollButtonLane.Count; i++) { this.CollButtonLane[i].ButtonUp(); this.CollCalStatus[i].Initialize(); } } public void CalibrationBalance() { if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Korean) { this.ParentForm.listBoxHelp.Items.Add("분동 계산중 입니다"); this.ParentForm.listBoxHelp.Items.Add("잠시만 기다리세요"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) { this.ParentForm.listBoxHelp.Items.Add("Caculating..."); this.ParentForm.listBoxHelp.Items.Add("Wait a minute."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { this.ParentForm.listBoxHelp.Items.Add("计算..."); this.ParentForm.listBoxHelp.Items.Add("请稍等"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Japanese) { this.ParentForm.listBoxHelp.Items.Add("計算中..."); this.ParentForm.listBoxHelp.Items.Add("しばらくお待ちください。"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { this.ParentForm.listBoxHelp.Items.Add("výpočet..."); this.ParentForm.listBoxHelp.Items.Add("Vyčkejte."); } else { } foreach (SmartButton bt in this.CollButtonLane) { if (bt.ButtonStatus == SmartX.SmartButton.BUTSTATUS.DOWN) this.ParentForm.ParentForm.TransferData(CommunicationCommand.CalibrationBalance, bt.Tag.ToString()); } this.ParentForm.CalibrationButtonEnable(false, false, true); } public void CalibrationStart() { string detail = ""; if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Korean) { this.ParentForm.listBoxHelp.Items.Add("중량조정을 시작합니다."); this.ParentForm.listBoxHelp.Items.Add("잠시만 기다리세요."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) { this.ParentForm.listBoxHelp.Items.Add("Calibration start."); this.ParentForm.listBoxHelp.Items.Add("Wait a minute."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { this.ParentForm.listBoxHelp.Items.Add("校准开始按钮"); this.ParentForm.listBoxHelp.Items.Add("请稍等"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Japanese) { this.ParentForm.listBoxHelp.Items.Add("キャリブレㅡション開始"); this.ParentForm.listBoxHelp.Items.Add("しばらくお待ちください。"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { this.ParentForm.listBoxHelp.Items.Add("START kalibrace"); this.ParentForm.listBoxHelp.Items.Add("Vyčkejte."); } else { } for (int i = 0; i < this.CollButtonLane.Count; i++) { if (this.CollButtonLane[i].ButtonStatus == SmartButton.BUTSTATUS.DOWN) { this.ParentForm.ParentForm.TransferData(CommunicationCommand.CalibrationStart, this.CollButtonLane[i].Tag.ToString()); // Part 11 if (this.ParentForm.ParentForm.SystemConfig.IsPart11 == true) { this.CollCalStatus[i].Initialize(); detail = string.Format("{0} Lane Start", i + 1); this.ParentForm.ParentForm.SetTrackingHistoryData(DataStore.TrackingOperation.Calibration, detail); } } this.CollButtonLane[i].Enabled = false; } this.ParentForm.CalibrationButtonEnable(false, false, false); } public void CalibrationCancel() { string detail = ""; if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Korean) { this.ParentForm.listBoxHelp.Items.Add("중량조정을 취소합니다"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) { this.ParentForm.listBoxHelp.Items.Add("Cancel the Calibration"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { this.ParentForm.listBoxHelp.Items.Add("取消校准"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Japanese) { this.ParentForm.listBoxHelp.Items.Add("キャリブレㅡションをキャンセルします。"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { this.ParentForm.listBoxHelp.Items.Add("Zrušení Kalibrace"); } else { } for (int i = 0; i < this.CollButtonLane.Count; i++) { if (this.CollButtonLane[i].ButtonStatus == SmartX.SmartButton.BUTSTATUS.DOWN) { this.ParentForm.ParentForm.TransferData(CommunicationCommand.CalibrationCancel, this.CollButtonLane[i].Tag.ToString()); // Part 11 if (this.ParentForm.ParentForm.SystemConfig.IsPart11 == true) { if (this.CollCalStatus[i].IsCancel == false) { this.CollCalStatus[i].IsCancel = true; detail = string.Format("{0} Lane Cancel", i + 1); this.ParentForm.ParentForm.SetTrackingHistoryData(DataStore.TrackingOperation.Calibration, detail); } } } this.CollButtonLane[i].Enabled = true; } this.ParentForm.CalibrationButtonEnable(true, false, false); } public void UpdateConfiguration(DataStore.EquipmentStatus status, CalibrationItem config) { string value = ""; value = Helper.StringToDecimalPlaces(config.Constant1.Trim(), 6); if (this.labelConstant1.Text != value) this.labelConstant1.Text = value; value = Helper.StringToDecimalPlaces(config.Constant2.Trim(), 6); if (this.labelConstant2.Text != value) this.labelConstant2.Text = value; value = Helper.StringToDecimalPlaces(config.Constant3.Trim(), 6); if (this.labelConstant3.Text != value) this.labelConstant3.Text = value; value = Helper.StringToDecimalPlaces(config.Constant4.Trim(), 6); if (this.labelConstant4.Text != value) this.labelConstant4.Text = value; value = Helper.StringToDecimalPlaces(config.Constant5.Trim(), 6); if (this.labelConstant5.Text != value) this.labelConstant5.Text = value; value = Helper.StringToDecimalPlaces(config.Constant6.Trim(), 6); if (this.labelConstant6.Text != value) this.labelConstant6.Text = value; } public void UpdateWeightDisplay(DataStore.EquipmentStatus status, Collection weights) { if (this.CollLabelWeight == null || weights.Count < this.CollLabelWeight.Count || status == DataStore.EquipmentStatus.Start) return; for (int i = 0; i < weights.Count; i++) { if (this.CollButtonLane[i].ButtonStatus == SmartX.SmartButton.BUTSTATUS.DOWN) { this.UpdateLabelWeight(i, this.CollLabelWeight[i], this.CollLabelADC[i], weights[i], true); } else { this.UpdateLabelWeight(i, this.CollLabelWeight[i], this.CollLabelADC[i], weights[i], false); } } } private void UpdateLabelWeight(int index, SmartLabel labelWeight, SmartLabel labelADC, WeightData weightData, bool rbChecked) { string detail = ""; switch (weightData.Status) { case DataStore.WeightStatus.CalNomal: labelWeight.Text = Helper.DoubleToString(weightData.Weight, this.ParentForm.ParentForm.SystemConfig.DecimalPlaces); labelWeight.ForeColor = this.NormalColor; labelADC.Text = weightData.ADCValue; break; case DataStore.WeightStatus.CalStandby: if (rbChecked == true) { // 분동중량 표시 labelWeight.Text = string.Format("-{0}", this.ParentForm.labelBalanceWeight.Text); labelWeight.ForeColor = this.NormalColor; labelADC.Text = weightData.ADCValue; this.ParentForm.ClearListBox(); if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Korean) { this.ParentForm.listBoxHelp.Items.Add("분동을 올려주세요."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) { this.ParentForm.listBoxHelp.Items.Add("Put the balance."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { this.ParentForm.listBoxHelp.Items.Add("放平衡重"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Japanese) { this.ParentForm.listBoxHelp.Items.Add("分銅を上げてください。"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { this.ParentForm.listBoxHelp.Items.Add("Položit vyvážení hmotnosti."); } else { } this.ParentForm.CalibrationButtonEnable(false, true, true); } break; case DataStore.WeightStatus.CalBalans: if (rbChecked == true) { // 분동중량표시 labelWeight.Text = string.Format("-{0}", this.ParentForm.labelBalanceWeight.Text); labelWeight.ForeColor = this.NormalColor; labelADC.Text = weightData.ADCValue; this.ParentForm.CalibrationButtonEnable(false, false, true); } break; case DataStore.WeightStatus.CalFinish: if (rbChecked == true) { this.ParentForm.ClearListBox(); if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Korean) { this.ParentForm.listBoxHelp.Items.Add("중량조정이 완료 되었습니다."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) { this.ParentForm.listBoxHelp.Items.Add("Finished."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { this.ParentForm.listBoxHelp.Items.Add("完"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Japanese) { this.ParentForm.listBoxHelp.Items.Add("キャリブレㅡション完了"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { this.ParentForm.listBoxHelp.Items.Add("Ukončený."); } else { } this.ParentForm.CalibrationButtonEnable(true, false, false); foreach (SmartX.SmartButton bt in this.CollButtonLane) bt.Enabled = true; // Part11 if (this.ParentForm.ParentForm.SystemConfig.IsPart11 == true) { if (this.CollCalStatus[index].IsFinish == false) { this.CollCalStatus[index].IsFinish = true; detail = string.Format("{0} Lane Success", index + 1); this.ParentForm.ParentForm.SetTrackingHistoryData(DataStore.TrackingOperation.Calibration, detail); } } } labelWeight.Text = Helper.DoubleToString(weightData.Weight, this.ParentForm.ParentForm.SystemConfig.DecimalPlaces); labelWeight.ForeColor = this.FinishColor; labelADC.Text = weightData.ADCValue; break; case DataStore.WeightStatus.CalError: if (rbChecked == true) { this.ParentForm.ClearListBox(); if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Korean) { this.ParentForm.listBoxHelp.Items.Add("중량조정 에러"); this.ParentForm.listBoxHelp.Items.Add("다시 시도해 주세요"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) { this.ParentForm.listBoxHelp.Items.Add("Calibration error."); this.ParentForm.listBoxHelp.Items.Add("Please try again."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { this.ParentForm.listBoxHelp.Items.Add("错误发生,重试"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Japanese) { this.ParentForm.listBoxHelp.Items.Add("キャリブレㅡションエラㅡ"); this.ParentForm.listBoxHelp.Items.Add("もう一度試してください。"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { this.ParentForm.listBoxHelp.Items.Add("Kalibrace chyba."); this.ParentForm.listBoxHelp.Items.Add("Zkuste znovu."); } else { } this.ParentForm.CalibrationButtonEnable(true, false, false); foreach (SmartX.SmartButton bt in this.CollButtonLane) bt.Enabled = true; // Part11 if (this.ParentForm.ParentForm.SystemConfig.IsPart11 == true) { if (this.CollCalStatus[index].IsError == false) { this.CollCalStatus[index].IsError = true; detail = string.Format("{0} Lane Error", index + 1); this.ParentForm.ParentForm.SetTrackingHistoryData(DataStore.TrackingOperation.Calibration, detail); } } } labelWeight.Text = Helper.DoubleToString(weightData.Weight, this.ParentForm.ParentForm.SystemConfig.DecimalPlaces); labelWeight.ForeColor = this.NormalColor; labelADC.Text = weightData.ADCValue; break; default: break; } } #endregion #region Event Handler private void buttonLine_Click(object sender, EventArgs e) { SmartButton bt = sender as SmartButton; if (bt == null) return; this.ParentForm.ClearListBox(); if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Korean) { this.ParentForm.listBoxHelp.Items.Add("중량조정"); this.ParentForm.listBoxHelp.Items.Add("LANE을 선택 후"); this.ParentForm.listBoxHelp.Items.Add("시작을 누르세요"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.English) { this.ParentForm.listBoxHelp.Items.Add("Calibration"); this.ParentForm.listBoxHelp.Items.Add("After selecting lane, "); this.ParentForm.listBoxHelp.Items.Add("push the [Start] button."); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Chinese) { this.ParentForm.listBoxHelp.Items.Add("校准"); this.ParentForm.listBoxHelp.Items.Add("选择线后,按[开始]按钮。"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Japanese) { this.ParentForm.listBoxHelp.Items.Add("キャリブレㅡション"); this.ParentForm.listBoxHelp.Items.Add("レㅡンを選択したら、"); this.ParentForm.listBoxHelp.Items.Add("[スタㅡト]ボタンを押します。"); } else if (this.ParentForm.ParentForm.SystemConfig.Language == DataStore.LanguageID.Czech) { this.ParentForm.listBoxHelp.Items.Add("Kalibrace"); this.ParentForm.listBoxHelp.Items.Add("Po výběru řádku, "); this.ParentForm.listBoxHelp.Items.Add("stiskněte tlačítko [Start]."); } else { } this.ParentForm.CalibrationButtonEnable(true, false, false); } #endregion } }