using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using SA_LTT.Parameter; namespace SA_LTT_UI.Screen { public partial class ScreenParameter : UserControl { private MainFrame _mainFrame; private SettingParameter settingParameter; private ModeParameter modeParameter; public ScreenParameter(MainFrame mainFrame) { InitializeComponent(); _mainFrame = mainFrame; settingParameter = _mainFrame.equipment.settingParameterManager.SettingParameter; modeParameter = _mainFrame.equipment.modeParameterManager.ModeParameter; UpdateModeParameterUI(); UpdateSettingParameterUI(); } private void btn_Mode_Click(object sender, EventArgs e) { Button btn = (Button)sender; if(btn == btn_EnergyDropCheckUse) { modeParameter.EnergyDropCheckUse = true; } else if(btn == btn_EnergyDropCheckNotUse) { modeParameter.EnergyDropCheckUse = false; } if (btn == btn_AttenuatorCalUse) { modeParameter.AttenuatorCalUse = true; } else if (btn == btn_AttenuatorCalNotUse) { modeParameter.AttenuatorCalUse = false; } if (btn == btn_EnergyMeasurementUse) { modeParameter.EnergyMeasurementUse = true; } else if (btn == btn_EnergyMeasurementNotUse) { modeParameter.EnergyMeasurementUse = false; } if(btn == btn_ShutterAlwaysOnUse) { modeParameter.ShutterAlwaysUse = true; } else if(btn == btn_ShutterAlwaysOnNotUse) { modeParameter.ShutterAlwaysUse = false; } if(btn == btn_AlignUse) { modeParameter.AlignUse = true; } else if (btn == btn_AlignNotUse) { modeParameter.AlignUse = false; } UpdateModeParameterUI(); } private void SetSettingData(object sender) { TextBox tb = (TextBox)sender; double doubleData; float floatData; int intData; if (tb == tb_EnergyDropCheckCycle) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyDropCheckCycle = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyDropCheckMeasurementTime) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyDropCheckMeasurementTime = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyDropCheckTargetAngle) { float.TryParse(tb.Text, out floatData); floatData = float.Parse(floatData.ToString("F3")); if (floatData < 0) { floatData = 0; } settingParameter.EnergyDropCheckTargetAngle = floatData; tb.Text = $"{floatData}"; } else if (tb == tb_EnergyDropCheckTargetEnergy) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F4")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyDropCheckTargetEnergy = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyDropCheckErrorOccuredRange) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyDropCheckErrorOccuredRange = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_AttenuatorCalCycle) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.AttenuatorCalCycle = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_AttenuatorCalMeasurementTime) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.AttenuatorCalMeasurementTime = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_AttenuatorCalCoolingTime) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.AttenuatorCalCoolingTime = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_AttenuatorCalStartAngle) { float.TryParse(tb.Text, out floatData); floatData = float.Parse(floatData.ToString("F3")); if (floatData < 0) { floatData = 0; } settingParameter.AttenuatorCalStartAngle = floatData; tb.Text = $"{floatData}"; } else if (tb == tb_AttenuatorCalEndAngle) { float.TryParse(tb.Text, out floatData); floatData = float.Parse(floatData.ToString("F3")); if (floatData < settingParameter.AttenuatorCalStartAngle) { floatData = settingParameter.AttenuatorCalStartAngle; } settingParameter.AttenuatorCalEndAngle = floatData; tb.Text = $"{floatData}"; } else if (tb == tb_AttenuatorCalAngleStep) { float.TryParse(tb.Text, out floatData); floatData = float.Parse(floatData.ToString("F3")); if (floatData <= 0) { floatData = 0.01f; } settingParameter.AttenuatorCalAngleStep = floatData; tb.Text = $"{floatData}"; } else if (tb == tb_EnergyMeasurementCycle) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyMeasurementCycle = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyMeasurementWaferCountCycle) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyMeasurementWaferCountCycle = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyMeasurementErrorOccuredRange) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyMeasurementErrorOccuredRange = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyMeasurementTime) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyMeasurementTime = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyMeasurementStep) { float.TryParse(tb.Text, out floatData); floatData = float.Parse(floatData.ToString("F3")); if (floatData <= 0) { floatData = 0.1f; } settingParameter.EnergyMeasurmentStepAngle = floatData; tb.Text = $"{floatData}"; } else if (tb == tb_EnergyMeasurementTime) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyMeasurementTime = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_BeamHeight) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData <= 0) { doubleData = 0.1; } settingParameter.BeamHeight = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_BeamWidth) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData <= 0) { doubleData = 0.1; } settingParameter.BeamWidth = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyMeterHeatingTime) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 0) { doubleData = 0; } settingParameter.EnergyMeterHeatingTime = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_EnergyMeasurementRetryCount) { int.TryParse(tb.Text, out intData); if (intData < 0) { intData = 0; } settingParameter.EnergyMeasurementRetryCount = intData; tb.Text = $"{intData}"; } else if (tb == tb_VisionTimeOut) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 1) { doubleData = 1; } settingParameter.VisionTimeOut = doubleData; tb.Text = $"{doubleData}"; } else if (tb == tb_VisionHeartBeatTimeOut) { double.TryParse(tb.Text, out doubleData); doubleData = double.Parse(doubleData.ToString("F3")); if (doubleData < 1) { doubleData = 1; } settingParameter.VisionHeartBeatTimeOut = doubleData; tb.Text = $"{doubleData}"; } UpdateSettingParameterUI(); } private void UpdateModeParameterUI() { ModeParameter modeParameter = _mainFrame.equipment.modeParameterManager.ModeParameter; btn_EnergyDropCheckUse.BackColor = this.modeParameter.EnergyDropCheckUse ? this.modeParameter.EnergyDropCheckUse != modeParameter.EnergyDropCheckUse ? Color.Red : Color.DodgerBlue : Color.White; btn_EnergyDropCheckNotUse.BackColor = !this.modeParameter.EnergyDropCheckUse ? this.modeParameter.EnergyDropCheckUse != modeParameter.EnergyDropCheckUse ? Color.Red : Color.DodgerBlue : Color.White; btn_AttenuatorCalUse.BackColor = this.modeParameter.AttenuatorCalUse ? this.modeParameter.AttenuatorCalUse != modeParameter.AttenuatorCalUse ? Color.Red : Color.DodgerBlue : Color.White; btn_AttenuatorCalNotUse.BackColor = !this.modeParameter.AttenuatorCalUse ? this.modeParameter.AttenuatorCalUse != modeParameter.AttenuatorCalUse ? Color.Red : Color.DodgerBlue : Color.White; btn_EnergyMeasurementUse.BackColor = this.modeParameter.EnergyMeasurementUse ? this.modeParameter.EnergyMeasurementUse != modeParameter.EnergyMeasurementUse ? Color.Red : Color.DodgerBlue : Color.White; btn_EnergyMeasurementNotUse.BackColor = !this.modeParameter.EnergyMeasurementUse ? this.modeParameter.EnergyMeasurementUse != modeParameter.EnergyMeasurementUse ? Color.Red : Color.DodgerBlue : Color.White; btn_ShutterAlwaysOnUse.BackColor = this.modeParameter.ShutterAlwaysUse ? this.modeParameter.ShutterAlwaysUse != modeParameter.ShutterAlwaysUse ? Color.Red : Color.DodgerBlue : Color.White; btn_ShutterAlwaysOnNotUse.BackColor = !this.modeParameter.ShutterAlwaysUse ? this.modeParameter.ShutterAlwaysUse != modeParameter.ShutterAlwaysUse ? Color.Red : Color.DodgerBlue : Color.White; btn_AlignUse.BackColor = this.modeParameter.AlignUse ? this.modeParameter.AlignUse != modeParameter.AlignUse ? Color.Red : Color.DodgerBlue : Color.White; btn_AlignNotUse.BackColor = !this.modeParameter.AlignUse ? this.modeParameter.AlignUse != modeParameter.AlignUse ? Color.Red : Color.DodgerBlue : Color.White; } private void UpdateSettingParameterUI() { SettingParameter settingParameter = _mainFrame.equipment.settingParameterManager.SettingParameter; tb_EnergyDropCheckCycle.BackColor = this.settingParameter.EnergyDropCheckCycle != settingParameter.EnergyDropCheckCycle ? Color.Red : Color.White; tb_EnergyDropCheckMeasurementTime.BackColor = this.settingParameter.EnergyDropCheckMeasurementTime != settingParameter.EnergyDropCheckMeasurementTime ? Color.Red : Color.White; tb_EnergyDropCheckTargetAngle.BackColor = this.settingParameter.EnergyDropCheckTargetAngle != settingParameter.EnergyDropCheckTargetAngle ? Color.Red : Color.White; tb_EnergyDropCheckTargetEnergy.BackColor = this.settingParameter.EnergyDropCheckTargetEnergy != settingParameter.EnergyDropCheckTargetEnergy ? Color.Red : Color.White; tb_EnergyDropCheckErrorOccuredRange.BackColor = this.settingParameter.EnergyDropCheckErrorOccuredRange != settingParameter.EnergyDropCheckErrorOccuredRange ? Color.Red : Color.White; tb_AttenuatorCalCycle.BackColor = this.settingParameter.AttenuatorCalCycle != settingParameter.AttenuatorCalCycle ? Color.Red : Color.White; tb_AttenuatorCalMeasurementTime.BackColor = this.settingParameter.AttenuatorCalMeasurementTime != settingParameter.AttenuatorCalMeasurementTime ? Color.Red : Color.White; tb_AttenuatorCalCoolingTime.BackColor = this.settingParameter.AttenuatorCalCoolingTime != settingParameter.AttenuatorCalCoolingTime ? Color.Red : Color.White; tb_AttenuatorCalStartAngle.BackColor = this.settingParameter.AttenuatorCalStartAngle != settingParameter.AttenuatorCalStartAngle ? Color.Red : Color.White; tb_AttenuatorCalEndAngle.BackColor = this.settingParameter.AttenuatorCalEndAngle != settingParameter.AttenuatorCalEndAngle ? Color.Red : Color.White; tb_AttenuatorCalAngleStep.BackColor = this.settingParameter.AttenuatorCalAngleStep != settingParameter.AttenuatorCalAngleStep ? Color.Red : Color.White; tb_EnergyMeasurementCycle.BackColor = this.settingParameter.EnergyMeasurementCycle != settingParameter.EnergyMeasurementCycle ? Color.Red : Color.White; tb_EnergyMeasurementWaferCountCycle.BackColor = this.settingParameter.EnergyMeasurementWaferCountCycle != settingParameter.EnergyMeasurementWaferCountCycle ? Color.Red : Color.White; tb_EnergyMeasurementErrorOccuredRange.BackColor = this.settingParameter.EnergyMeasurementErrorOccuredRange != settingParameter.EnergyMeasurementErrorOccuredRange ? Color.Red : Color.White; tb_EnergyMeasurementTime.BackColor = this.settingParameter.EnergyMeasurementTime != settingParameter.EnergyMeasurementTime ? Color.Red : Color.White; tb_EnergyMeasurementStep.BackColor = this.settingParameter.EnergyMeasurmentStepAngle != settingParameter.EnergyMeasurmentStepAngle ? Color.Red : Color.White; tb_EnergyMeasurementRetryCount.BackColor = this.settingParameter.EnergyMeasurementRetryCount != settingParameter.EnergyMeasurementRetryCount ? Color.Red : Color.White; tb_BeamHeight.BackColor = this.settingParameter.BeamHeight != settingParameter.BeamHeight ? Color.Red : Color.White; tb_BeamWidth.BackColor = this.settingParameter.BeamWidth != settingParameter.BeamWidth ? Color.Red : Color.White; tb_EnergyMeterHeatingTime.BackColor = this.settingParameter.EnergyMeterHeatingTime != settingParameter.EnergyMeterHeatingTime ? Color.Red : Color.White; tb_VisionTimeOut.BackColor = this.settingParameter.VisionTimeOut != settingParameter.VisionTimeOut ? Color.Red : Color.White; tb_VisionHeartBeatTimeOut.BackColor = this.settingParameter.VisionHeartBeatTimeOut != settingParameter.VisionHeartBeatTimeOut ? Color.Red : Color.White; //=== tb_EnergyDropCheckCycle.Text = this.settingParameter.EnergyDropCheckCycle.ToString(); tb_EnergyDropCheckMeasurementTime.Text = this.settingParameter.EnergyDropCheckMeasurementTime.ToString(); tb_EnergyDropCheckTargetAngle.Text = this.settingParameter.EnergyDropCheckTargetAngle.ToString(); tb_EnergyDropCheckTargetEnergy.Text = this.settingParameter.EnergyDropCheckTargetEnergy.ToString(); tb_EnergyDropCheckErrorOccuredRange.Text = this.settingParameter.EnergyDropCheckErrorOccuredRange.ToString(); tb_AttenuatorCalCycle.Text = this.settingParameter.AttenuatorCalCycle.ToString(); tb_AttenuatorCalMeasurementTime.Text = this.settingParameter.AttenuatorCalMeasurementTime.ToString(); tb_AttenuatorCalCoolingTime.Text = this.settingParameter.AttenuatorCalCoolingTime.ToString(); tb_AttenuatorCalStartAngle.Text = this.settingParameter.AttenuatorCalStartAngle.ToString(); tb_AttenuatorCalEndAngle.Text = this.settingParameter.AttenuatorCalEndAngle.ToString(); tb_AttenuatorCalAngleStep.Text = this.settingParameter.AttenuatorCalAngleStep.ToString(); tb_EnergyMeasurementCycle.Text = this.settingParameter.EnergyMeasurementCycle.ToString(); tb_EnergyMeasurementWaferCountCycle.Text = this.settingParameter.EnergyMeasurementWaferCountCycle.ToString(); tb_EnergyMeasurementErrorOccuredRange.Text = this.settingParameter.EnergyMeasurementErrorOccuredRange.ToString(); tb_EnergyMeasurementTime.Text = this.settingParameter.EnergyMeasurementTime.ToString(); tb_EnergyMeasurementStep.Text = this.settingParameter.EnergyMeasurmentStepAngle.ToString(); tb_EnergyMeasurementRetryCount.Text = this.settingParameter.EnergyMeasurementRetryCount.ToString(); tb_BeamHeight.Text = this.settingParameter.BeamHeight.ToString(); tb_BeamWidth.Text = this.settingParameter.BeamWidth.ToString(); tb_EnergyMeterHeatingTime.Text = this.settingParameter.EnergyMeterHeatingTime.ToString(); tb_VisionTimeOut.Text = this.settingParameter.VisionTimeOut.ToString(); tb_VisionHeartBeatTimeOut.Text = this.settingParameter.VisionHeartBeatTimeOut.ToString(); } private void btn_Mode_Save_Click(object sender, EventArgs e) { string strMsg = $"Mode Parameter를 저장 하시겠습니까 ?"; if (MessageBox.Show(strMsg, "확인", MessageBoxButtons.YesNo) == DialogResult.Yes) { _mainFrame.equipment.modeParameterManager.Save(modeParameter); UpdateModeParameterUI(); } } private void btn_Mode_Reset_Click(object sender, EventArgs e) { string strMsg = $"Mode Parameter를 Reset 하시겠습니까 ?"; if (MessageBox.Show(strMsg, "확인", MessageBoxButtons.YesNo) == DialogResult.Yes) { modeParameter = _mainFrame.equipment.modeParameterManager.ModeParameter; UpdateModeParameterUI(); } } private void tb_SettingData_Leave(object sender, EventArgs e) { SetSettingData(sender); } private void tb_SettingData_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Enter) { SetSettingData(sender); } } private void btn_Setting_Save_Click(object sender, EventArgs e) { string strMsg = $"Setting Parameter를 저장 하시겠습니까 ?"; if (MessageBox.Show(strMsg, "확인", MessageBoxButtons.YesNo) == DialogResult.Yes) { _mainFrame.equipment.settingParameterManager.Save(settingParameter); UpdateSettingParameterUI(); } } private void btn_Setting_Reset_Click(object sender, EventArgs e) { string strMsg = $"Setting Parameter를 Reset 하시겠습니까 ?"; if (MessageBox.Show(strMsg, "확인", MessageBoxButtons.YesNo) == DialogResult.Yes) { settingParameter = _mainFrame.equipment.settingParameterManager.SettingParameter; UpdateSettingParameterUI(); } } } }