INT-LKD/INT_LKD/Controls/Recipe/ControlMenuRecipeData.cs

441 lines
15 KiB
C#

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using SmartX;
using INT_LKD.DataStore;
using INT_LKD.Forms;
namespace INT_LKD.Controls
{
public partial class ControlMenuRecipeData : UserControl
{
#region Field
private FormMenu m_ParentForm;
private double m_ScaleDiff;
#endregion
#region Constructor
public ControlMenuRecipeData(FormMenu parent)
{
InitializeComponent();
this.ParentForm = parent;
this.Initialize();
this.InitializeData();
this.InitializeDrawDiff();
this.InitializeDrawDisp();
this.InitializeDesign();
}
#endregion
#region Property
public FormMenu ParentForm
{
get { return this.m_ParentForm; }
set { this.m_ParentForm = value; }
}
public double ScaleDiff
{
get { return this.m_ScaleDiff; }
set { this.m_ScaleDiff = value; }
}
#endregion
#region Method
private void Initialize()
{
}
public void InitializeData()
{
this.labelMesResult.Text = "-";
this.labelMesResult.TextColor = Define.ColorTextResultNone;
this.labelMesResultDiff.TextColor = Define.ColorTextResultNone;
this.labelMesResultDisp.TextColor = Define.ColorTextResultNone;
this.labelMesPressureMaster.Text = "0.0";
this.labelMesPressureWork.Text = "0.0";
this.labelMesDiffMadc.Text = "0.00";
this.labelMesDiffSecDiff.Text = "0.00";
this.labelMesDiffSecMax.Text = "0.00";
this.labelMesDispRData.Text = "0.00";
this.labelMesDispMData.Text = "0.00";
this.labelMesDispMDataDiff.Text = "0.00";
this.labelMesDispMDataMax.Text = "0.00";
}
public void InitializeDesign()
{
switch (this.ParentForm.ParentForm.SystemConfig.LANGUAGE)
{
case Define.E_LanguageID.Chinese:
this.groupBoxPressure.Text = "压差";
this.groupBoxDisplacement.Text = "位移";
this.groupBoxMeasuring1.Text = "测量中";
this.labelMesResultDiff.Text = "压差";
this.labelMesResultDisp.Text = "位移";
this.labelTitleMaster.Text = "主腔";
this.labelTitleWork.Text = "工作腔";
this.labelTitleLRSec.Text = "每秒变化率";
this.labelTitleLRMax.Text = "最大变化率";
this.labelTitleLevel.Text = "等级";
this.labelTitleHeight.Text = "高度";
this.labelTitleMaxHeight.Text = "最大高度";
this.labelTitleDiff.Text = "差异";
break;
default:
this.groupBoxPressure.Text = "Differential Pressure";
this.groupBoxDisplacement.Text = "Displacement";
this.groupBoxMeasuring1.Text = "Measuring";
this.labelMesResultDiff.Text = "Diff";
this.labelMesResultDisp.Text = "Disp";
this.labelTitleMaster.Text = "Master";
this.labelTitleWork.Text = "Work";
this.labelTitleLRSec.Text = "LR.Sec";
this.labelTitleLRMax.Text = "LR.Max";
this.labelTitleLevel.Text = "Level";
this.labelTitleHeight.Text = "Height";
this.labelTitleMaxHeight.Text = "Max Height";
this.labelTitleDiff.Text = "Diff";
break;
}
}
private void InitializeDrawDiff()
{
// SetChartConfig
this.smartDrawDiff.Chart.SetChartConfig(10, 242, 405, 230, 2, SmartDraw.ChartRefresh.LEFTSCROLL);
// BackLayer 기준선 표시
this.smartDrawDiff.BackLayer.SetPenStyle(Color.Gray, 2);
// BackLayer 세로
this.smartDrawDiff.BackLayer.Line(10, 12, 10, 242);
// BackLayer 가로
this.smartDrawDiff.BackLayer.Line(10, 242, 415, 242);
}
private void InitializeDrawDisp()
{
// SetChartConfig
this.smartDrawDisp.Chart.SetChartConfig(10, 242, 405, 230, 2, SmartDraw.ChartRefresh.LEFTSCROLL);
// BackLayer 기준선 표시
this.smartDrawDisp.BackLayer.SetPenStyle(Color.Gray, 2);
// BackLayer 세로
this.smartDrawDisp.BackLayer.Line(10, 12, 10, 242);
// BackLayer 가로
this.smartDrawDisp.BackLayer.Line(10, 242, 415, 242);
}
public void DrawPutDataAllClear()
{
this.smartDrawDiff.Chart.PutDataAllClear();
this.smartDrawDisp.Chart.PutDataAllClear();
}
public void CalScaleDiff(string limit)
{
int iValue = 0;
// Lr Limit 설정값
// double to int
// 소수점 2자리 고정
iValue = int.Parse(limit.Replace(".", ""));
// 그래프 높이 230
this.ScaleDiff = (iValue * 10) / 230;
}
/// <summary>
/// 차압센서 그래프 기준선
/// </summary>
/// <param name="value">Lr.Limit</param>
public void DrawDiffReferenceLine(string value)
{
string sValue = "";
int iValue = 0;
double dValue = 0.0;
sValue = value.Replace(".", "");
dValue = int.Parse(sValue) / this.ScaleDiff;
if (dValue > 230)
dValue = 230;
if (dValue < 1)
dValue = 3;
iValue = int.Parse(string.Format("{0:f0}", dValue));
this.smartDrawDiff.BackLayer.Erase();
this.InitializeDrawDiff();
// 가로 기준선
//this.smartDrawDiff.BackLayer.Line(10, 242, 415, 242);
this.smartDrawDiff.BackLayer.SetPenStyle(Color.Blue, 2);
this.smartDrawDiff.BackLayer.Line(10, 242 - iValue, 415, 242 - iValue);
}
/// <summary>
/// 변위센서 그래프 기준선
/// </summary>
/// <param name="value">Min Hight</param>
public void DrawDispReferenceLine(string value)
{
string sValue = "";
int iValue = 0;
double dValue = 0.0;
// 값 표시 범위
// 0.00 ~ 15.00
// 그래프 영역 높이 230
// 1500 / 230 = 6.521739130434783
sValue = value.Replace(".", "");
dValue = int.Parse(sValue) / 6.521739130434783;
if (dValue > 230)
dValue = 230;
if (dValue < 1)
dValue = 3;
iValue = int.Parse(string.Format("{0:f0}", dValue));
this.smartDrawDisp.BackLayer.Erase();
this.InitializeDrawDisp();
// 가로 기준선
//this.smartDrawDisp.BackLayer.Line(10, 242, 415, 242);
this.smartDrawDisp.BackLayer.SetPenStyle(Color.Blue, 2);
this.smartDrawDisp.BackLayer.Line(10, 242 - iValue, 415, 242 - iValue);
}
private void UpdateDisplayDotGraphDiff(DiffData diff)
{
string value = "";
int iValue = 0;
double dValue = 0.0;
value = diff.SecBuf.Replace(".", "");
dValue = int.Parse(value) / this.ScaleDiff;
if (dValue > 230)
dValue = 230;
if (dValue < 1)
dValue = 3;
iValue = int.Parse(string.Format("{0:f0}", dValue));
this.smartDrawDiff.Chart.PutData(iValue);
}
private void UpdateDisplayDotGraphDisp(DispData disp)
{
string value = "";
int iValue = 0;
double dValue = 0.0;
// 값 표시 범위
// 0.00 ~ 15.00
// 그래프 영역 높이 230
// 1500 / 230 = 6.521739130434783
value = disp.MData.Replace(".","");
dValue = int.Parse(value) / 6.521739130434783;
if (dValue > 230)
dValue = 230;
if (dValue < 1)
dValue = 3;
iValue = int.Parse(string.Format("{0:f0}", dValue));
this.smartDrawDisp.Chart.PutData(iValue);
}
private void GetJudgmentResult(Define.E_JudgmentStatus judg, SmartLabel label2)
{
string value = "";
switch (judg)
{
case Define.E_JudgmentStatus.None:
value = "-";
label2.TextColor = Define.ColorTextResultNone;
break;
case Define.E_JudgmentStatus.Pass:
value = "Pass";
label2.TextColor = Define.ColorTextResultPass;
break;
case Define.E_JudgmentStatus.Ng:
value = "Leak";
label2.TextColor = Define.ColorTextResultNG;
break;
case Define.E_JudgmentStatus.Empty:
value = "Empty";
label2.TextColor = Define.ColorTextResultNone;
break;
case Define.E_JudgmentStatus.Error:
value = "Error";
label2.TextColor = Define.ColorTextResultNone;
break;
default:
break;
}
if (label2.Text != value)
label2.Text = value;
}
private void GetJudgmentResultDiff(Define.E_JudgmentStatus judg, SmartLabel label)
{
switch (judg)
{
case Define.E_JudgmentStatus.None:
label.TextColor = Define.ColorTextResultNone;
break;
case Define.E_JudgmentStatus.Pass:
label.TextColor = Define.ColorTextResultPass;
break;
case Define.E_JudgmentStatus.Ng:
label.TextColor = Define.ColorTextResultNG;
break;
case Define.E_JudgmentStatus.Empty:
label.TextColor = Define.ColorTextResultNone;
break;
case Define.E_JudgmentStatus.Error:
label.TextColor = Define.ColorTextResultNone;
break;
default:
break;
}
}
private void GetJudgmentResultDisp(Define.E_JudgmentStatus judg, SmartLabel label)
{
switch (judg)
{
case Define.E_JudgmentStatus.None:
label.TextColor = Define.ColorTextResultNone;
break;
case Define.E_JudgmentStatus.Pass:
label.TextColor = Define.ColorTextResultPass;
break;
case Define.E_JudgmentStatus.Ng:
label.TextColor = Define.ColorTextResultNG;
break;
case Define.E_JudgmentStatus.Empty:
label.TextColor = Define.ColorTextResultNone;
break;
case Define.E_JudgmentStatus.Error:
label.TextColor = Define.ColorTextResultNone;
break;
default:
break;
}
}
public void UpdateDisplayMeasuringLeakDataDiff(DiffData data)
{
string value = "";
// 차압센서 데이터
value = data.MAdc;
if (this.labelMesDiffMadc.Text != value)
this.labelMesDiffMadc.Text = value;
value = data.SecBuf;
if (this.labelMesDiffSecDiff.Text != value)
this.labelMesDiffSecDiff.Text = value;
value = data.SecBufMax;
if (this.labelMesDiffSecMax.Text != value)
this.labelMesDiffSecMax.Text = value;
if (this.ParentForm.ParentForm.CurrentSystemStatus.EquipmentStatus == Define.E_EquipmentStatus.Start)
this.UpdateDisplayDotGraphDiff(data);
}
public void UpdateDisplayMeasuringLeakDataDisp(DispData data)
{
string value = "";
// 변위센서 데이터
value = data.RData;
if (this.labelMesDispRData.Text != value)
this.labelMesDispRData.Text = value;
value = data.MData;
if (this.labelMesDispMData.Text != value)
this.labelMesDispMData.Text = value;
value = data.MDataDiff;
if (this.labelMesDispMDataDiff.Text != value)
this.labelMesDispMDataDiff.Text = value;
value = data.MDataMax;
if (this.labelMesDispMDataMax.Text != value)
this.labelMesDispMDataMax.Text = value;
if (this.ParentForm.ParentForm.CurrentSystemStatus.EquipmentStatus == Define.E_EquipmentStatus.Start)
this.UpdateDisplayDotGraphDisp(data);
}
public void UpdateDisplayMeasuringLeakDataPres(PressureData data)
{
string value = "";
// 압력 데이터
value = data.WorkingChamber;
if (this.labelMesPressureWork.Text != value)
this.labelMesPressureWork.Text = value;
value = data.MasterChamber;
if (this.labelMesPressureMaster.Text != value)
this.labelMesPressureMaster.Text = value;
}
public void UpdateDisplayMeasuringLeadDataResult(LeakData1 data)
{
this.GetJudgmentResult(data.Judgment.Result, this.labelMesResult);
if (data.Judgment.Result == Define.E_JudgmentStatus.Empty)
{
this.GetJudgmentResultDiff(Define.E_JudgmentStatus.Empty, this.labelMesResultDiff);
this.GetJudgmentResultDisp(Define.E_JudgmentStatus.Empty, this.labelMesResultDisp);
}
else
{
this.GetJudgmentResultDiff(data.Judgment.DIFF_Result, this.labelMesResultDiff);
this.GetJudgmentResultDisp(data.Judgment.DISP_Result, this.labelMesResultDisp);
}
}
public void UpdateDisplayDispControl(bool enable)
{
if (enable == false)
{
this.labelMesDispRData.Enabled = false;
this.labelMesDispMData.Enabled = false;
this.labelMesDispMDataDiff.Enabled = false;
this.labelMesDispMDataMax.Enabled = false;
this.labelTitleLevel.Enabled = false;
this.labelTitleHeight.Enabled = false;
this.labelTitleDiff.Enabled = false;
this.labelTitleMaxHeight.Enabled = false;
}
else
{
this.labelMesDispRData.Enabled = true;
this.labelMesDispMData.Enabled = true;
this.labelMesDispMDataDiff.Enabled = true;
this.labelMesDispMDataMax.Enabled = true;
this.labelTitleLevel.Enabled = true;
this.labelTitleHeight.Enabled = true;
this.labelTitleDiff.Enabled = true;
this.labelTitleMaxHeight.Enabled = true;
}
}
#endregion
}
}