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.Forms; using INT_LKD.DataStore; namespace INT_LKD.Controls { public partial class ControlMainDisplayDotGraph : UserControl { #region Field private int FlagIgnoreCNT; private FormMain m_ParentForm; #endregion #region Constructor public ControlMainDisplayDotGraph(int lane, FormMain parent) { InitializeComponent(); this.ParentForm = parent; this.InitializeDraw(); this.Initialize(lane); } #endregion #region Property public FormMain ParentForm { get { return this.m_ParentForm; } private set { this.m_ParentForm = value; } } #endregion #region Method private void Initialize(int lane) { this.FlagIgnoreCNT = 0; this.labelLane.Text = string.Format("Lane {0}", lane); this.labelCurrentValue.Text = "0.000"; this.labelMaxValue.Text = "0.000"; this.labelStDev.Text = "0.0000"; this.labelResult.Text = "-"; this.labelResultSD.Text = "0.0000"; this.smartDraw.Chart.PutDataAllClear(); } private void InitializeDraw() { // SetChartConfig this.smartDraw.Chart.SetChartConfig(100, 442, 700, 442, 2, SmartDraw.ChartRefresh.LEFTSCROLL); // BackLayer 기준선 표시 this.smartDraw.BackLayer.SetPenStyle(Color.Gray, 2); // BackLayer 세로 this.smartDraw.BackLayer.Line(100, 0, 100, 442); // BackLayer 가로 -2.000 this.smartDraw.BackLayer.Line(100, 442, 800, 442); // BackLayer 기준선 표시 this.smartDraw.BackLayer.SetPenStyle(Color.Gray, 1); // BackLayer 가로 -1.000 this.smartDraw.BackLayer.Line(100, 416, 800, 416); // BackLayer 가로 0.000 this.smartDraw.BackLayer.Line(100, 390, 800, 390); // BackLayer 가로 1.000 this.smartDraw.BackLayer.Line(100, 364, 800, 364); // BackLayer 가로 2.000 this.smartDraw.BackLayer.Line(100, 338, 800, 338); // BackLayer 가로 3.000 this.smartDraw.BackLayer.Line(100, 312, 800, 312); // BackLayer 가로 4.000 this.smartDraw.BackLayer.Line(100, 286, 800, 286); // BackLayer 가로 5.000 this.smartDraw.BackLayer.Line(100, 260, 800, 260); // BackLayer 가로 6.000 this.smartDraw.BackLayer.Line(100, 234, 800, 234); // BackLayer 가로 7.000 this.smartDraw.BackLayer.Line(100, 208, 800, 208); // BackLayer 가로 8.000 this.smartDraw.BackLayer.Line(100, 182, 800, 182); // BackLayer 가로 9.000 this.smartDraw.BackLayer.Line(100, 156, 800, 156); // BackLayer 가로 10.000 this.smartDraw.BackLayer.Line(100, 130, 800, 130); // BackLayer 가로 11.000 this.smartDraw.BackLayer.Line(100, 104, 800, 104); // BackLayer 가로 12.000 this.smartDraw.BackLayer.Line(100, 78, 800, 78); // BackLayer 가로 13.000 this.smartDraw.BackLayer.Line(100, 52, 800, 52); // BackLayer 가로 14.000 this.smartDraw.BackLayer.Line(100, 26, 800, 26); // TextOut // SetFont this.smartDraw.BackLayer.SetFont("Arial", 18, Color.Gray, true, false, false); this.smartDraw.BackLayer.TextOut(20, 16, "{0,6:F3}", 14.000); this.smartDraw.BackLayer.TextOut(20, 42, "{0,6:F3}", 13.000); this.smartDraw.BackLayer.TextOut(20, 68, "{0,6:F3}", 12.000); this.smartDraw.BackLayer.TextOut(20, 94, "{0,6:F3}", 11.000); this.smartDraw.BackLayer.TextOut(20, 120, "{0,6:F3}", 10.000); this.smartDraw.BackLayer.TextOut(20, 146, "{0,6:F3}", 9.000); this.smartDraw.BackLayer.TextOut(20, 172, "{0,6:F3}", 8.000); this.smartDraw.BackLayer.TextOut(20, 198, "{0,6:F3}", 7.000); this.smartDraw.BackLayer.TextOut(20, 224, "{0,6:F3}", 6.000); this.smartDraw.BackLayer.TextOut(20, 250, "{0,6:F3}", 5.000); this.smartDraw.BackLayer.TextOut(20, 276, "{0,6:F3}", 4.000); this.smartDraw.BackLayer.TextOut(20, 302, "{0,6:F3}", 3.000); this.smartDraw.BackLayer.TextOut(20, 328, "{0,6:F3}", 2.000); this.smartDraw.BackLayer.TextOut(20, 354, "{0,6:F3}", 1.000); this.smartDraw.BackLayer.TextOut(20, 380, "{0,6:F3}", 0.000); this.smartDraw.BackLayer.TextOut(20, 406, "{0,6:F3}", -1.000); this.smartDraw.BackLayer.TextOut(20, 432, "{0,6:F3}", -2.000); this.smartDraw.Chart.ChartChannelPenStyle = this.smartDraw_ChartChannelPenStyle1; } private void UpdateDotGraphDisplay(DiffData diff, DispData disp) { int iValue = 0; double dValue = 0.0; // 값 표시 범위 // 15.000 ~ -2.000 (17.000 ~ 0) // 그래프 영역 높이 460 // 17000 / 460 = 36.95652173913043 //dValue = (int.Parse(data.CurrentValueSign + data.CurrentValue) + 2000) / 36.95652173913043; if (dValue > 460) dValue = 460; if (dValue < 1) dValue = 1; iValue = int.Parse(string.Format("{0:f0}", dValue)); this.smartDraw.Chart.PutData(iValue); } public void UpdateNomalLeakDataDisplay(DiffData diff, DispData disp) { string value = ""; bool bValue = false; if (this.ParentForm.SystemConfig.CHART2_DRAW_STEP == 1) { bValue = true; } else { if (this.FlagIgnoreCNT == this.ParentForm.SystemConfig.CHART2_DRAW_STEP) { bValue = true; this.FlagIgnoreCNT = 0; } else this.FlagIgnoreCNT++; } // Current Value //value = Helper.StringToDecimalPlaces(data.CurrentValue, this.ParentForm.DecimalPlaces3); //if (data.CurrentValueSign == "-") // value = string.Format("{0}{1}", data.CurrentValueSign, value); if (this.labelCurrentValue.Text != value) this.labelCurrentValue.Text = value; // Max Value //value = Helper.StringToDecimalPlaces(data.MaxValue, this.ParentForm.DecimalPlaces3); //if(data.MaxValueSign == "-") // value = string.Format("{0}{1}", data.MaxValueSign, value); if (this.labelMaxValue.Text != value) this.labelMaxValue.Text = value; // Standard Deviation //value = Helper.StringToDecimalPlaces(data.StDev, this.ParentForm.DecimalPlaces4); if (this.labelStDev.Text != value) this.labelStDev.Text = value; // Draw if (bValue == true) this.UpdateDotGraphDisplay(diff, disp); } public void UpdateStartLeakDataDisplay(DiffData diff, DispData disp, LeakResult judg) { string value = ""; value = judg.Result.ToString(); if (this.labelResult.Text != value) this.labelResult.Text = value; //value = Helper.StringToDecimalPlaces(data.ResultSD, this.ParentForm.DecimalPlaces4); if (this.labelResultSD.Text != value) this.labelResultSD.Text = value; } public void ClearAllData() { this.labelCurrentValue.Text = "0.000"; this.labelMaxValue.Text = "0.000"; this.labelStDev.Text = "0.0000"; this.labelResult.Text = "-"; this.labelResultSD.Text = "0.0000"; this.smartDraw.Chart.PutDataAllClear(); } #endregion private void smartButton1_Click(object sender, EventArgs e) { } } }