김성배 김성배 2022-06-23
초기 커밋.
@2c41f585ca3a0496c31d159d8ea3ff8f02b66964
 
KHPANEL.sln (added)
+++ KHPANEL.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32002.261
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KHPANEL", "KHPANEL\KHPANEL.csproj", "{B73643C5-A31F-42CD-85BB-BCBE01FD15C6}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{B73643C5-A31F-42CD-85BB-BCBE01FD15C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B73643C5-A31F-42CD-85BB-BCBE01FD15C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B73643C5-A31F-42CD-85BB-BCBE01FD15C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B73643C5-A31F-42CD-85BB-BCBE01FD15C6}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {FABB63F8-B5D8-44C7-AEED-6FFE910BEC07}
+	EndGlobalSection
+EndGlobal
 
KHPANEL/App.config (added)
+++ KHPANEL/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>(No newline at end of file)
 
KHPANEL/CircularProgressBar.cs (added)
+++ KHPANEL/CircularProgressBar.cs
@@ -0,0 +1,378 @@
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Windows.Forms;
+namespace KHPANEL
+{
+
+public class CircularProgressBar : Control
+    {
+        #region Enums
+
+        public enum _ProgressShape
+        {
+            Round,
+            Flat
+        }
+
+        public enum _TextMode
+        {
+            None,
+            Value,
+            Percentage,
+            Custom
+        }
+
+        #endregion
+
+        #region Private Variables
+
+        private long _Value;
+        private long _Maximum = 100;
+        private int _LineWitdh = 1;
+        private float _BarWidth = 14f;
+
+        private Color _ProgressColor1 = Color.Orange;
+        private Color _ProgressColor2 = Color.Orange;
+        private Color _LineColor = Color.Silver;
+        private LinearGradientMode _GradientMode = LinearGradientMode.ForwardDiagonal;
+        private _ProgressShape ProgressShapeVal;
+        private _TextMode ProgressTextMode;
+
+        #endregion
+
+        #region Contructor
+
+        public CircularProgressBar()
+        {
+            SetStyle(ControlStyles.SupportsTransparentBackColor, true);
+            SetStyle(ControlStyles.Opaque, true);
+            this.BackColor = SystemColors.Control;
+            this.ForeColor = Color.DimGray;
+
+            this.Size = new Size(130, 130);
+            this.Font = new Font("Segoe UI", 15);
+            this.MinimumSize = new Size(100, 100);
+            this.DoubleBuffered = true;
+
+            this.LineWidth = 1;
+            this.LineColor = Color.DimGray;
+
+            Value = 57;
+            ProgressShape = _ProgressShape.Flat;
+            TextMode = _TextMode.Percentage;
+        }
+
+        #endregion
+
+        #region Public Custom Properties
+
+        /// <summary>Determina el Valor del Progreso</summary>
+        [Description("Valor Entero que determina la posision de la Barra de Progreso."), Category("Behavior")]
+        public long Value
+        {
+            get { return _Value; }
+            set
+            {
+                if (value > _Maximum)
+                    value = _Maximum;
+                _Value = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Obtiene o Establece el Valor Maximo de la barra de Progreso."), Category("Behavior")]
+        public long Maximum
+        {
+            get { return _Maximum; }
+            set
+            {
+                if (value < 1)
+                    value = 1;
+                _Maximum = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Color Inicial de la Barra de Progreso"), Category("Appearance")]
+        public Color BarColor1
+        {
+            get { return _ProgressColor1; }
+            set
+            {
+                _ProgressColor1 = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Color Final de la Barra de Progreso"), Category("Appearance")]
+        public Color BarColor2
+        {
+            get { return _ProgressColor2; }
+            set
+            {
+                _ProgressColor2 = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Ancho de la Barra de Progreso"), Category("Appearance")]
+        public float BarWidth
+        {
+            get { return _BarWidth; }
+            set
+            {
+                _BarWidth = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Modo del Gradiente de Color"), Category("Appearance")]
+        public LinearGradientMode GradientMode
+        {
+            get { return _GradientMode; }
+            set
+            {
+                _GradientMode = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Color de la Linea Intermedia"), Category("Appearance")]
+        public Color LineColor
+        {
+            get { return _LineColor; }
+            set
+            {
+                _LineColor = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Ancho de la Linea Intermedia"), Category("Appearance")]
+        public int LineWidth
+        {
+            get { return _LineWitdh; }
+            set
+            {
+                _LineWitdh = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Obtiene o Establece la Forma de los terminales de la barra de progreso."), Category("Appearance")]
+        public _ProgressShape ProgressShape
+        {
+            get { return ProgressShapeVal; }
+            set
+            {
+                ProgressShapeVal = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Obtiene o Establece el Modo como se muestra el Texto dentro de la barra de Progreso."), Category("Behavior")]
+        public _TextMode TextMode
+        {
+            get { return ProgressTextMode; }
+            set
+            {
+                ProgressTextMode = value;
+                Invalidate();
+            }
+        }
+
+        [Description("Obtiene el Texto que se muestra dentro del Control"), Category("Behavior")]
+        public override string Text { get; set; }
+
+        #endregion
+
+        #region EventArgs
+
+        protected override void OnResize(EventArgs e)
+        {
+            base.OnResize(e);
+            SetStandardSize();
+        }
+
+        protected override void OnSizeChanged(EventArgs e)
+        {
+            base.OnSizeChanged(e);
+            SetStandardSize();
+        }
+
+        protected override void OnPaintBackground(PaintEventArgs p)
+        {
+            base.OnPaintBackground(p);
+        }
+
+        #endregion
+
+        #region Methods
+
+        private void SetStandardSize()
+        {
+            int _Size = Math.Max(Width, Height);
+            Size = new Size(_Size, _Size);
+        }
+
+        public void Increment(int Val)
+        {
+            this._Value += Val;
+            Invalidate();
+        }
+
+        public void Decrement(int Val)
+        {
+            this._Value -= Val;
+            Invalidate();
+        }
+        #endregion
+
+        #region Events
+
+        protected override void OnPaint(PaintEventArgs e)
+        {
+            base.OnPaint(e);
+            using (Bitmap bitmap = new Bitmap(this.Width, this.Height))
+            {
+                using (Graphics graphics = Graphics.FromImage(bitmap))
+                {
+                    graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
+                    graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
+                    graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
+                    graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
+
+                    //graphics.Clear(Color.Transparent); //<-- this.BackColor, SystemColors.Control, Color.Transparent
+
+                    PaintTransparentBackground(this, e);
+
+                    //Dibuja el circulo blanco interior:
+                    using (Brush mBackColor = new SolidBrush(this.BackColor))
+                    {
+                        graphics.FillEllipse(mBackColor,
+                                18, 18,
+                                (this.Width - 0x30) + 12,
+                                (this.Height - 0x30) + 12);
+                    }
+                    // Dibuja la delgada Linea gris del medio:
+                    using (Pen pen2 = new Pen(LineColor, this.LineWidth))
+                    {
+                        graphics.DrawEllipse(pen2,
+                            18, 18,
+                          (this.Width - 0x30) + 12,
+                          (this.Height - 0x30) + 12);
+                    }
+
+                    //Dibuja la Barra de Progreso
+                    using (LinearGradientBrush brush = new LinearGradientBrush(this.ClientRectangle,
+                        this._ProgressColor1, this._ProgressColor2, this.GradientMode))
+                    {
+                        using (Pen pen = new Pen(brush, this.BarWidth))
+                        {
+                            switch (this.ProgressShapeVal)
+                            {
+                                case _ProgressShape.Round:
+                                    pen.StartCap = LineCap.Round;
+                                    pen.EndCap = LineCap.Round;
+                                    break;
+
+                                case _ProgressShape.Flat:
+                                    pen.StartCap = LineCap.Flat;
+                                    pen.EndCap = LineCap.Flat;
+                                    break;
+                            }
+
+                            //Aqui se dibuja realmente la Barra de Progreso
+                            graphics.DrawArc(pen,
+                                0x12, 0x12,
+                                (this.Width - 0x23) - 2,
+                                (this.Height - 0x23) - 2,
+                                -90,
+                                (int)Math.Round((double)((360.0 / ((double)this._Maximum)) * this._Value)));
+                        }
+                    }
+
+                    #region Dibuja el Texto de Progreso
+
+                    switch (this.TextMode)
+                    {
+                        case _TextMode.None:
+                            this.Text = string.Empty;
+                            break;
+
+                        case _TextMode.Value:
+                            this.Text = _Value.ToString();
+                            break;
+
+                        case _TextMode.Percentage:
+                            this.Text = Convert.ToString(Convert.ToInt32((100 / _Maximum) * _Value));
+                            break;
+
+                        default:
+                            break;
+                    }
+
+                    if (this.Text != string.Empty)
+                    {
+                        using (Brush FontColor = new SolidBrush(this.ForeColor))
+                        {
+                            int ShadowOffset = 2;
+                            SizeF MS = graphics.MeasureString(this.Text, this.Font);
+                            SolidBrush shadowBrush = new SolidBrush(Color.FromArgb(100, this.ForeColor));
+
+                            //Sombra del Texto:
+                            graphics.DrawString(this.Text, this.Font, shadowBrush,
+                                Convert.ToInt32(Width / 2 - MS.Width / 2) + ShadowOffset,
+                                Convert.ToInt32(Height / 2 - MS.Height / 2) + ShadowOffset
+                            );
+
+                            //Texto del Control:
+                            graphics.DrawString(this.Text, this.Font, FontColor,
+                                Convert.ToInt32(Width / 2 - MS.Width / 2),
+                                Convert.ToInt32(Height / 2 - MS.Height / 2));
+                        }
+                    }
+
+                    #endregion
+
+                    //Aqui se Dibuja todo el Control:
+                    e.Graphics.DrawImage(bitmap, 0, 0);
+                    graphics.Dispose();
+                    bitmap.Dispose();
+                }
+            }
+        }
+
+        private static void PaintTransparentBackground(Control c, PaintEventArgs e)
+        {
+            if (c.Parent == null || !Application.RenderWithVisualStyles)
+                return;
+
+            ButtonRenderer.DrawParentBackground(e.Graphics, c.ClientRectangle, c);
+        }
+
+        /// <summary>Dibuja un Circulo Relleno de Color con los Bordes perfectos.</summary>
+        /// <param name="g">'Canvas' del Objeto donde se va a dibujar</param>
+        /// <param name="brush">Color y estilo del relleno</param>
+        /// <param name="centerX">Centro del Circulo, en el eje X</param>
+        /// <param name="centerY">Centro del Circulo, en el eje Y</param>
+        /// <param name="radius">Radio del Circulo</param>
+        private void FillCircle(Graphics g, Brush brush, float centerX, float centerY, float radius)
+        {
+            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
+            g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
+            g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
+            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
+
+            using (System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath())
+            {
+                g.FillEllipse(brush, centerX - radius, centerY - radius,
+                          radius + radius, radius + radius);
+            }
+        }
+
+        #endregion
+    }
+}
 
KHPANEL/DBConnectionSingleton.cs (added)
+++ KHPANEL/DBConnectionSingleton.cs
@@ -0,0 +1,177 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace KHPANEL
+{
+    public class DBConnectionSingleton
+    {
+        private static DBConnectionSingleton DBConnection;
+
+        // Connection 정보를 세팅한다.
+        private string DBURL = "192.168.1.17,1433";
+        private string DBPASSWORD = "signus1!";
+        //private string DBURL = "signus-smes.koreacentral.cloudapp.azure.com,14443";
+        //private string DBPASSWORD = "tlrmsjtm~1@3";
+        private string DBNAME = "U3SMES";
+        private string DBID = "sa";
+        SqlConnection mConn;
+
+        public struct DBValue
+        {
+            public string name;
+            public string value;
+            public SqlDbType type;
+        };
+
+
+        public static DBConnectionSingleton Instance()
+        {
+            if (DBConnection == null)
+            {
+                DBConnection = new DBConnectionSingleton();
+            }
+            return DBConnection;
+        }
+
+        public bool isConnect()
+        {
+            if (mConn == null) return false;
+            if(mConn.State == ConnectionState.Open)
+            {
+                return true;
+            }
+            return false;
+        }
+
+        public bool Connect()
+        {
+            string strconn = string.Format(" Data Source={0};Initial Catalog={1};Persist Security Info=false;Integrated Security=false;User ID={2};Password={3};enlist=true;Connect Timeout=2", DBURL, DBNAME, DBID, DBPASSWORD);
+            mConn = new SqlConnection(strconn);
+            try
+            {
+                // DB 연결
+                mConn.Open();
+
+                // 연결여부에 따라 다른 메시지를 보여준다
+                if (mConn.State == ConnectionState.Open)
+                {
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+            catch (Exception ex)
+            {
+                return false;
+            }
+        }
+
+
+        public bool Close()
+        {
+            try
+            {
+                // DB 연결해제
+                mConn.Close();
+
+                // 연결여부에 따라 다른 메시지를 보여준다
+                if (mConn.State == ConnectionState.Closed)
+                {
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+            catch (Exception ex)
+            {
+                return false;
+            }
+        }
+
+
+        public DBValue getParams(string name, string value)
+        {
+            DBValue d = new DBValue();
+
+            d.value = value;
+            d.name = name;
+
+            return d;
+
+        }
+
+
+        public bool SetCommand(string sql, params DBValue[] data)
+        {
+            if (!isConnect())
+            {
+                Connect();
+            }
+            try
+            {
+                SqlCommand com = new SqlCommand(sql, mConn);
+                com.CommandType = CommandType.StoredProcedure;
+                for (int i = 0; i < data.Length; i++)
+                {
+                    SqlParameter pInput = new SqlParameter("@" + data[i].name, SqlDbType.NVarChar, data[i].value.Length);
+                    pInput.Direction = ParameterDirection.Input;
+                    pInput.Value = data[i].value;
+                    com.Parameters.Add(pInput);
+                    //com.Parameters.AddWithValue("@" + data[i].name, data[i].value);
+                }
+
+                com.ExecuteNonQuery();
+
+                Close();
+            }
+            catch(Exception ex)
+            {
+                return false;
+            }
+            return true;
+
+        }
+
+
+        public DataTable GetSqlData(string sql)
+        {
+            try
+            {
+                if (!isConnect())
+                {
+                    if (!Connect())
+                    {
+                        return null;
+                    }
+                }
+                SqlDataAdapter da = new SqlDataAdapter(sql, mConn);
+                
+
+                DataTable dt = new DataTable();
+
+
+                da.Fill(dt);
+
+                Close();
+                return dt;
+            }catch(Exception ex)
+            {
+                return null;
+            }
+        }
+
+
+
+
+
+    }
+}
 
KHPANEL/FormHTPanel_1.Designer.cs (added)
+++ KHPANEL/FormHTPanel_1.Designer.cs
@@ -0,0 +1,466 @@
+
+namespace KHPANEL
+{
+    partial class FormHTPanel_1
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormHTPanel_1));
+            this.panel_Title = new System.Windows.Forms.Panel();
+            this.label_Timer = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.timer_DataInput = new System.Windows.Forms.Timer(this.components);
+            this.textBox_State = new System.Windows.Forms.TextBox();
+            this.timer_Time = new System.Windows.Forms.Timer(this.components);
+            this.ucTempControl15 = new KHPANEL.ucTempControl();
+            this.ucTempControl16 = new KHPANEL.ucTempControl();
+            this.ucTempControl17 = new KHPANEL.ucTempControl();
+            this.ucTempControl18 = new KHPANEL.ucTempControl();
+            this.ucTempControl19 = new KHPANEL.ucTempControl();
+            this.ucTempControl20 = new KHPANEL.ucTempControl();
+            this.ucTempControl21 = new KHPANEL.ucTempControl();
+            this.ucTempControl8 = new KHPANEL.ucTempControl();
+            this.ucTempControl9 = new KHPANEL.ucTempControl();
+            this.ucTempControl10 = new KHPANEL.ucTempControl();
+            this.ucTempControl11 = new KHPANEL.ucTempControl();
+            this.ucTempControl12 = new KHPANEL.ucTempControl();
+            this.ucTempControl13 = new KHPANEL.ucTempControl();
+            this.ucTempControl14 = new KHPANEL.ucTempControl();
+            this.ucTempControl7 = new KHPANEL.ucTempControl();
+            this.ucTempControl6 = new KHPANEL.ucTempControl();
+            this.ucTempControl5 = new KHPANEL.ucTempControl();
+            this.ucTempControl4 = new KHPANEL.ucTempControl();
+            this.ucTempControl3 = new KHPANEL.ucTempControl();
+            this.ucTempControl2 = new KHPANEL.ucTempControl();
+            this.ucTempControl1 = new KHPANEL.ucTempControl();
+            this.panel_Title.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // panel_Title
+            // 
+            this.panel_Title.BackgroundImage = global::KHPANEL.Properties.Resources.Title;
+            this.panel_Title.Controls.Add(this.label_Timer);
+            this.panel_Title.Controls.Add(this.label1);
+            this.panel_Title.Dock = System.Windows.Forms.DockStyle.Top;
+            this.panel_Title.Location = new System.Drawing.Point(0, 0);
+            this.panel_Title.Name = "panel_Title";
+            this.panel_Title.Size = new System.Drawing.Size(1920, 105);
+            this.panel_Title.TabIndex = 0;
+            this.panel_Title.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
+            // 
+            // label_Timer
+            // 
+            this.label_Timer.AutoSize = true;
+            this.label_Timer.BackColor = System.Drawing.Color.Transparent;
+            this.label_Timer.Font = new System.Drawing.Font("Calibri", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.label_Timer.ForeColor = System.Drawing.Color.LightGray;
+            this.label_Timer.Location = new System.Drawing.Point(1536, 35);
+            this.label_Timer.Name = "label_Timer";
+            this.label_Timer.Size = new System.Drawing.Size(245, 39);
+            this.label_Timer.TabIndex = 1;
+            this.label_Timer.Text = "0000-00-00 00:00";
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.BackColor = System.Drawing.Color.Transparent;
+            this.label1.Font = new System.Drawing.Font("맑은 고딕", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label1.ForeColor = System.Drawing.Color.LightGray;
+            this.label1.Location = new System.Drawing.Point(870, 27);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(212, 45);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "가동생산현황";
+            // 
+            // timer_DataInput
+            // 
+            this.timer_DataInput.Enabled = true;
+            this.timer_DataInput.Interval = 10000;
+            this.timer_DataInput.Tick += new System.EventHandler(this.timer_DataInput_Tick);
+            // 
+            // textBox_State
+            // 
+            this.textBox_State.Location = new System.Drawing.Point(1758, 767);
+            this.textBox_State.Multiline = true;
+            this.textBox_State.Name = "textBox_State";
+            this.textBox_State.Size = new System.Drawing.Size(328, 283);
+            this.textBox_State.TabIndex = 22;
+            this.textBox_State.Visible = false;
+            // 
+            // timer_Time
+            // 
+            this.timer_Time.Enabled = true;
+            this.timer_Time.Interval = 1000;
+            this.timer_Time.Tick += new System.EventHandler(this.timer_Time_Tick);
+            // 
+            // ucTempControl15
+            // 
+            this.ucTempControl15.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl15.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl15.BackgroundImage")));
+            this.ucTempControl15.LabelText = "HBT01";
+            this.ucTempControl15.Location = new System.Drawing.Point(102, 749);
+            this.ucTempControl15.Name = "ucTempControl15";
+            this.ucTempControl15.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl15.State = 1;
+            this.ucTempControl15.TabIndex = 21;
+            this.ucTempControl15.Temp = "Null";
+            this.ucTempControl15.Time = "Null";
+            // 
+            // ucTempControl16
+            // 
+            this.ucTempControl16.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl16.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl16.BackgroundImage")));
+            this.ucTempControl16.LabelText = "HBT01";
+            this.ucTempControl16.Location = new System.Drawing.Point(354, 749);
+            this.ucTempControl16.Name = "ucTempControl16";
+            this.ucTempControl16.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl16.State = 1;
+            this.ucTempControl16.TabIndex = 20;
+            this.ucTempControl16.Temp = "Null";
+            this.ucTempControl16.Time = "Null";
+            // 
+            // ucTempControl17
+            // 
+            this.ucTempControl17.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl17.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl17.BackgroundImage")));
+            this.ucTempControl17.LabelText = "HBT01";
+            this.ucTempControl17.Location = new System.Drawing.Point(606, 749);
+            this.ucTempControl17.Name = "ucTempControl17";
+            this.ucTempControl17.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl17.State = 0;
+            this.ucTempControl17.TabIndex = 19;
+            this.ucTempControl17.Temp = "Null";
+            this.ucTempControl17.Time = "Null";
+            // 
+            // ucTempControl18
+            // 
+            this.ucTempControl18.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl18.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl18.BackgroundImage")));
+            this.ucTempControl18.LabelText = "HBT01";
+            this.ucTempControl18.Location = new System.Drawing.Point(858, 749);
+            this.ucTempControl18.Name = "ucTempControl18";
+            this.ucTempControl18.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl18.State = 0;
+            this.ucTempControl18.TabIndex = 18;
+            this.ucTempControl18.Temp = "Null";
+            this.ucTempControl18.Time = "Null";
+            this.ucTempControl18.Visible = false;
+            // 
+            // ucTempControl19
+            // 
+            this.ucTempControl19.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl19.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl19.BackgroundImage")));
+            this.ucTempControl19.LabelText = "HBT01";
+            this.ucTempControl19.Location = new System.Drawing.Point(1110, 749);
+            this.ucTempControl19.Name = "ucTempControl19";
+            this.ucTempControl19.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl19.State = 1;
+            this.ucTempControl19.TabIndex = 17;
+            this.ucTempControl19.Temp = "Null";
+            this.ucTempControl19.Time = "Null";
+            // 
+            // ucTempControl20
+            // 
+            this.ucTempControl20.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl20.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl20.BackgroundImage")));
+            this.ucTempControl20.LabelText = "HBT01";
+            this.ucTempControl20.Location = new System.Drawing.Point(1362, 749);
+            this.ucTempControl20.Name = "ucTempControl20";
+            this.ucTempControl20.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl20.State = 1;
+            this.ucTempControl20.TabIndex = 16;
+            this.ucTempControl20.Temp = "Null";
+            this.ucTempControl20.Time = "Null";
+            // 
+            // ucTempControl21
+            // 
+            this.ucTempControl21.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl21.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl21.BackgroundImage")));
+            this.ucTempControl21.LabelText = "HBT01";
+            this.ucTempControl21.Location = new System.Drawing.Point(1614, 749);
+            this.ucTempControl21.Name = "ucTempControl21";
+            this.ucTempControl21.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl21.State = 0;
+            this.ucTempControl21.TabIndex = 15;
+            this.ucTempControl21.Temp = "Null";
+            this.ucTempControl21.Time = "Null";
+            this.ucTempControl21.Visible = false;
+            // 
+            // ucTempControl8
+            // 
+            this.ucTempControl8.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl8.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl8.BackgroundImage")));
+            this.ucTempControl8.LabelText = "HBT01";
+            this.ucTempControl8.Location = new System.Drawing.Point(102, 464);
+            this.ucTempControl8.Name = "ucTempControl8";
+            this.ucTempControl8.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl8.State = 1;
+            this.ucTempControl8.TabIndex = 14;
+            this.ucTempControl8.Temp = "Null";
+            this.ucTempControl8.Time = "Null";
+            // 
+            // ucTempControl9
+            // 
+            this.ucTempControl9.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl9.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl9.BackgroundImage")));
+            this.ucTempControl9.LabelText = "HBT01";
+            this.ucTempControl9.Location = new System.Drawing.Point(354, 464);
+            this.ucTempControl9.Name = "ucTempControl9";
+            this.ucTempControl9.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl9.State = 1;
+            this.ucTempControl9.TabIndex = 13;
+            this.ucTempControl9.Temp = "Null";
+            this.ucTempControl9.Time = "Null";
+            // 
+            // ucTempControl10
+            // 
+            this.ucTempControl10.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl10.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl10.BackgroundImage")));
+            this.ucTempControl10.LabelText = "HBT01";
+            this.ucTempControl10.Location = new System.Drawing.Point(606, 464);
+            this.ucTempControl10.Name = "ucTempControl10";
+            this.ucTempControl10.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl10.State = 1;
+            this.ucTempControl10.TabIndex = 12;
+            this.ucTempControl10.Temp = "Null";
+            this.ucTempControl10.Time = "Null";
+            // 
+            // ucTempControl11
+            // 
+            this.ucTempControl11.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl11.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl11.BackgroundImage")));
+            this.ucTempControl11.LabelText = "HBT01";
+            this.ucTempControl11.Location = new System.Drawing.Point(858, 464);
+            this.ucTempControl11.Name = "ucTempControl11";
+            this.ucTempControl11.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl11.State = 1;
+            this.ucTempControl11.TabIndex = 11;
+            this.ucTempControl11.Temp = "Null";
+            this.ucTempControl11.Time = "Null";
+            // 
+            // ucTempControl12
+            // 
+            this.ucTempControl12.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl12.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl12.BackgroundImage")));
+            this.ucTempControl12.LabelText = "HBT01";
+            this.ucTempControl12.Location = new System.Drawing.Point(1110, 464);
+            this.ucTempControl12.Name = "ucTempControl12";
+            this.ucTempControl12.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl12.State = 1;
+            this.ucTempControl12.TabIndex = 10;
+            this.ucTempControl12.Temp = "Null";
+            this.ucTempControl12.Time = "Null";
+            // 
+            // ucTempControl13
+            // 
+            this.ucTempControl13.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl13.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl13.BackgroundImage")));
+            this.ucTempControl13.LabelText = "HBT01";
+            this.ucTempControl13.Location = new System.Drawing.Point(1362, 464);
+            this.ucTempControl13.Name = "ucTempControl13";
+            this.ucTempControl13.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl13.State = 1;
+            this.ucTempControl13.TabIndex = 9;
+            this.ucTempControl13.Temp = "Null";
+            this.ucTempControl13.Time = "Null";
+            // 
+            // ucTempControl14
+            // 
+            this.ucTempControl14.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl14.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl14.BackgroundImage")));
+            this.ucTempControl14.LabelText = "HBT01";
+            this.ucTempControl14.Location = new System.Drawing.Point(1614, 464);
+            this.ucTempControl14.Name = "ucTempControl14";
+            this.ucTempControl14.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl14.State = 1;
+            this.ucTempControl14.TabIndex = 8;
+            this.ucTempControl14.Temp = "Null";
+            this.ucTempControl14.Time = "Null";
+            // 
+            // ucTempControl7
+            // 
+            this.ucTempControl7.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl7.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl7.BackgroundImage")));
+            this.ucTempControl7.LabelText = "HBT01";
+            this.ucTempControl7.Location = new System.Drawing.Point(1614, 180);
+            this.ucTempControl7.Name = "ucTempControl7";
+            this.ucTempControl7.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl7.State = 1;
+            this.ucTempControl7.TabIndex = 7;
+            this.ucTempControl7.Temp = "Null";
+            this.ucTempControl7.Time = "Null";
+            // 
+            // ucTempControl6
+            // 
+            this.ucTempControl6.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl6.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl6.BackgroundImage")));
+            this.ucTempControl6.LabelText = "HBT01";
+            this.ucTempControl6.Location = new System.Drawing.Point(1362, 180);
+            this.ucTempControl6.Name = "ucTempControl6";
+            this.ucTempControl6.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl6.State = 1;
+            this.ucTempControl6.TabIndex = 6;
+            this.ucTempControl6.Temp = "Null";
+            this.ucTempControl6.Time = "Null";
+            // 
+            // ucTempControl5
+            // 
+            this.ucTempControl5.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl5.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl5.BackgroundImage")));
+            this.ucTempControl5.LabelText = "HBT01";
+            this.ucTempControl5.Location = new System.Drawing.Point(1110, 180);
+            this.ucTempControl5.Name = "ucTempControl5";
+            this.ucTempControl5.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl5.State = 0;
+            this.ucTempControl5.TabIndex = 5;
+            this.ucTempControl5.Temp = "Null";
+            this.ucTempControl5.Time = "Null";
+            // 
+            // ucTempControl4
+            // 
+            this.ucTempControl4.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl4.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl4.BackgroundImage")));
+            this.ucTempControl4.LabelText = "HBT01";
+            this.ucTempControl4.Location = new System.Drawing.Point(858, 180);
+            this.ucTempControl4.Name = "ucTempControl4";
+            this.ucTempControl4.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl4.State = 1;
+            this.ucTempControl4.TabIndex = 4;
+            this.ucTempControl4.Temp = "Null";
+            this.ucTempControl4.Time = "Null";
+            // 
+            // ucTempControl3
+            // 
+            this.ucTempControl3.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl3.BackgroundImage")));
+            this.ucTempControl3.LabelText = "HBT01";
+            this.ucTempControl3.Location = new System.Drawing.Point(606, 180);
+            this.ucTempControl3.Name = "ucTempControl3";
+            this.ucTempControl3.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl3.State = 1;
+            this.ucTempControl3.TabIndex = 3;
+            this.ucTempControl3.Temp = "Null";
+            this.ucTempControl3.Time = "Null";
+            // 
+            // ucTempControl2
+            // 
+            this.ucTempControl2.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl2.BackgroundImage")));
+            this.ucTempControl2.LabelText = "HBT01";
+            this.ucTempControl2.Location = new System.Drawing.Point(354, 180);
+            this.ucTempControl2.Name = "ucTempControl2";
+            this.ucTempControl2.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl2.State = 1;
+            this.ucTempControl2.TabIndex = 2;
+            this.ucTempControl2.Temp = "Null";
+            this.ucTempControl2.Time = "Null";
+            // 
+            // ucTempControl1
+            // 
+            this.ucTempControl1.BackColor = System.Drawing.Color.Transparent;
+            this.ucTempControl1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("ucTempControl1.BackgroundImage")));
+            this.ucTempControl1.LabelText = "HBT01";
+            this.ucTempControl1.Location = new System.Drawing.Point(102, 180);
+            this.ucTempControl1.Name = "ucTempControl1";
+            this.ucTempControl1.Size = new System.Drawing.Size(192, 242);
+            this.ucTempControl1.State = 1;
+            this.ucTempControl1.TabIndex = 1;
+            this.ucTempControl1.Temp = "Null";
+            this.ucTempControl1.Time = "Null";
+            // 
+            // FormHTPanel_1
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60)))));
+            this.ClientSize = new System.Drawing.Size(1920, 1080);
+            this.Controls.Add(this.textBox_State);
+            this.Controls.Add(this.ucTempControl15);
+            this.Controls.Add(this.ucTempControl16);
+            this.Controls.Add(this.ucTempControl17);
+            this.Controls.Add(this.ucTempControl18);
+            this.Controls.Add(this.ucTempControl19);
+            this.Controls.Add(this.ucTempControl20);
+            this.Controls.Add(this.ucTempControl21);
+            this.Controls.Add(this.ucTempControl8);
+            this.Controls.Add(this.ucTempControl9);
+            this.Controls.Add(this.ucTempControl10);
+            this.Controls.Add(this.ucTempControl11);
+            this.Controls.Add(this.ucTempControl12);
+            this.Controls.Add(this.ucTempControl13);
+            this.Controls.Add(this.ucTempControl14);
+            this.Controls.Add(this.ucTempControl7);
+            this.Controls.Add(this.ucTempControl6);
+            this.Controls.Add(this.ucTempControl5);
+            this.Controls.Add(this.ucTempControl4);
+            this.Controls.Add(this.ucTempControl3);
+            this.Controls.Add(this.ucTempControl2);
+            this.Controls.Add(this.ucTempControl1);
+            this.Controls.Add(this.panel_Title);
+            this.ForeColor = System.Drawing.Color.Black;
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+            this.Name = "FormHTPanel_1";
+            this.Text = "FormHTPanel_1";
+            this.panel_Title.ResumeLayout(false);
+            this.panel_Title.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Panel panel_Title;
+        private System.Windows.Forms.Label label1;
+        private ucTempControl ucTempControl1;
+        private ucTempControl ucTempControl2;
+        private ucTempControl ucTempControl3;
+        private ucTempControl ucTempControl4;
+        private ucTempControl ucTempControl5;
+        private ucTempControl ucTempControl6;
+        private ucTempControl ucTempControl7;
+        private ucTempControl ucTempControl8;
+        private ucTempControl ucTempControl9;
+        private ucTempControl ucTempControl10;
+        private ucTempControl ucTempControl11;
+        private ucTempControl ucTempControl12;
+        private ucTempControl ucTempControl13;
+        private ucTempControl ucTempControl14;
+        private ucTempControl ucTempControl15;
+        private ucTempControl ucTempControl16;
+        private ucTempControl ucTempControl17;
+        private ucTempControl ucTempControl18;
+        private ucTempControl ucTempControl19;
+        private ucTempControl ucTempControl20;
+        private ucTempControl ucTempControl21;
+        private System.Windows.Forms.Timer timer_DataInput;
+        private System.Windows.Forms.TextBox textBox_State;
+        private System.Windows.Forms.Label label_Timer;
+        private System.Windows.Forms.Timer timer_Time;
+    }
+}(No newline at end of file)
 
KHPANEL/FormHTPanel_1.cs (added)
+++ KHPANEL/FormHTPanel_1.cs
@@ -0,0 +1,649 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace KHPANEL
+{
+    public partial class FormHTPanel_1 : Form
+    {
+        public FormHTPanel_1()
+        {
+            InitializeComponent();
+        }
+
+        private void panel1_Paint(object sender, PaintEventArgs e)
+        {
+
+        }
+
+        private void timer_DataInput_Tick(object sender, EventArgs e)
+        {
+
+            if (DBConnectionSingleton.Instance().isConnect())
+            {
+                DataReading();
+            }
+            else
+            {
+                textBox_State.Text = "DB_Connected Error\r\n";
+            }
+            //ucTempControl1.LabelText = "HBT_1";
+            //ucTempControl2.LabelText = "HBT_2";
+            //ucTempControl3.LabelText = "HBT_3";
+            //ucTempControl4.LabelText = "HBT_5";
+            //ucTempControl5.LabelText = "HBT_6";
+            //ucTempControl6.LabelText = "HBT_7";
+            //ucTempControl7.LabelText = "HBT_8";
+            //ucTempControl8.LabelText = "HBT_9";
+            //ucTempControl9.LabelText = "HBT_10";
+            //ucTempControl10.LabelText = "HBT_11";
+            //ucTempControl11.LabelText = "HBT_12";
+            //ucTempControl12.LabelText = "HBT_14";
+            //ucTempControl13.LabelText = "HBT_15";
+            //ucTempControl14.LabelText = "HBT_16";
+            //ucTempControl15.LabelText = "HBT_17";
+            //ucTempControl16.LabelText = "HBT_18";
+            //ucTempControl17.LabelText = "HBT_19";
+            //ucTempControl18.LabelText = "HBT_20";
+            //ucTempControl19.LabelText = "HBT_21";
+            //ucTempControl20.LabelText = "HBT_24";
+            //ucTempControl21.LabelText = "HBT_?";
+
+
+
+
+            //ucTempControl1.Temp = "38";
+            //ucTempControl2.Temp = "39.4";
+            //ucTempControl3.Temp = "31.7";
+            //ucTempControl4.Temp = "31.5";
+            //ucTempControl5.Temp = "24.6";
+            //ucTempControl6.Temp = "37.9";
+            //ucTempControl7.Temp = "30.3";
+            //ucTempControl8.Temp = "19.9";
+            //ucTempControl9.Temp = "23.2";
+            //ucTempControl10.Temp = "30";
+            //ucTempControl11.Temp = "29";
+            //ucTempControl12.Temp = "21.8";
+            //ucTempControl13.Temp = "34.7";
+            //ucTempControl14.Temp = "31.6";
+            //ucTempControl15.Temp = "25.8";
+            //ucTempControl16.Temp = "45.2";
+            //ucTempControl17.Temp = "34";
+            //ucTempControl18.Temp = "0";
+            //ucTempControl19.Temp = "24.5";
+            //ucTempControl20.Temp = "29.3";
+            //ucTempControl21.Temp = "HBT_?";
+
+
+            //ucTempControl1.labelControl_SetTemp.Text = "38˚";
+            //ucTempControl2.labelControl_SetTemp.Text = "40˚";
+            //ucTempControl3.labelControl_SetTemp.Text = "32˚";
+            //ucTempControl4.labelControl_SetTemp.Text = "32˚";
+            //ucTempControl5.labelControl_SetTemp.Text = "0˚";
+            //ucTempControl6.labelControl_SetTemp.Text = "38˚";
+            //ucTempControl7.labelControl_SetTemp.Text = "30˚";
+            //ucTempControl8.labelControl_SetTemp.Text = "20˚";
+            //ucTempControl9.labelControl_SetTemp.Text = "24˚";
+            //ucTempControl10.labelControl_SetTemp.Text = "30˚";
+            //ucTempControl11.labelControl_SetTemp.Text = "30˚";
+            //ucTempControl12.labelControl_SetTemp.Text = "22˚";
+            //ucTempControl13.labelControl_SetTemp.Text = "35˚";
+            //ucTempControl14.labelControl_SetTemp.Text = "32˚";
+            //ucTempControl15.labelControl_SetTemp.Text = "30˚";
+            //ucTempControl16.labelControl_SetTemp.Text = "45˚";
+            //ucTempControl17.labelControl_SetTemp.Text = "0˚";
+            //ucTempControl18.labelControl_SetTemp.Text = "0˚";
+            //ucTempControl19.labelControl_SetTemp.Text = "30˚";
+            //ucTempControl20.labelControl_SetTemp.Text = "30˚";
+            //ucTempControl21.labelControl_SetTemp.Text = "HBT_?";
+
+
+
+
+
+            //ucTempControl1.Time = "15";
+            //ucTempControl2.Time = "454";
+            //ucTempControl3.Time = "225";
+            //ucTempControl4.Time = "299";
+            //ucTempControl5.Time = "0";
+            //ucTempControl6.Time = "372";
+            //ucTempControl7.Time = "362";
+            //ucTempControl8.Time = "361";
+            //ucTempControl9.Time = "328";
+            //ucTempControl10.Time = "355";
+            //ucTempControl11.Time = "355";
+            //ucTempControl12.Time = "146";
+            //ucTempControl13.Time = "355";
+            //ucTempControl14.Time = "489";
+            //ucTempControl15.Time = "36";
+            //ucTempControl16.Time = "217";
+            //ucTempControl17.Time = "0";
+            //ucTempControl18.Time = "0";
+            //ucTempControl19.Time = "453";
+            //ucTempControl20.Time = "363";
+            //ucTempControl21.Time = "HBT_?";
+
+
+            //ucTempControl1.labelControl_SetTime.Text = "600분";
+            //ucTempControl2.labelControl_SetTime.Text = "600분";
+            //ucTempControl3.labelControl_SetTime.Text = "600분";
+            //ucTempControl4.labelControl_SetTime.Text = "600분";
+            //ucTempControl5.labelControl_SetTime.Text = "0분";
+            //ucTempControl6.labelControl_SetTime.Text = "600분";
+            //ucTempControl7.labelControl_SetTime.Text = "600분";
+            //ucTempControl8.labelControl_SetTime.Text = "600분";
+            //ucTempControl9.labelControl_SetTime.Text = "1000분";
+            //ucTempControl10.labelControl_SetTime.Text = "1100분";
+            //ucTempControl11.labelControl_SetTime.Text = "400분";
+            //ucTempControl12.labelControl_SetTime.Text = "300분";
+            //ucTempControl13.labelControl_SetTime.Text = "500분";
+            //ucTempControl14.labelControl_SetTime.Text = "600분";
+            //ucTempControl15.labelControl_SetTime.Text = "120분";
+            //ucTempControl16.labelControl_SetTime.Text = "300분";
+            //ucTempControl17.labelControl_SetTime.Text = "0분";
+            //ucTempControl18.labelControl_SetTime.Text = "0분";
+            //ucTempControl19.labelControl_SetTime.Text = "600분";
+            //ucTempControl20.labelControl_SetTime.Text = "600분";
+            //ucTempControl21.labelControl_SetTime.Text = "HBT_?";
+
+
+
+
+            //ucTempControl1.labelControl_SetTemp.Visible = true;
+            //ucTempControl2.labelControl_SetTemp.Visible = true;
+            //ucTempControl3.labelControl_SetTemp.Visible = true;
+            //ucTempControl4.labelControl_SetTemp.Visible = true;
+            //ucTempControl5.labelControl_SetTemp.Visible = true;
+            //ucTempControl6.labelControl_SetTemp.Visible = true;
+            //ucTempControl7.labelControl_SetTemp.Visible = true;
+            //ucTempControl8.labelControl_SetTemp.Visible = true;
+            //ucTempControl9.labelControl_SetTemp.Visible = true;
+            //ucTempControl10.labelControl_SetTemp.Visible = true;
+            //ucTempControl11.labelControl_SetTemp.Visible = true;
+            //ucTempControl12.labelControl_SetTemp.Visible = true;
+            //ucTempControl13.labelControl_SetTemp.Visible = true;
+            //ucTempControl14.labelControl_SetTemp.Visible = true;
+            //ucTempControl15.labelControl_SetTemp.Visible = true;
+            //ucTempControl16.labelControl_SetTemp.Visible = true;
+            //ucTempControl17.labelControl_SetTemp.Visible = true;
+            //ucTempControl18.labelControl_SetTemp.Visible = true;
+            //ucTempControl19.labelControl_SetTemp.Visible = true;
+            //ucTempControl20.labelControl_SetTemp.Visible = true;
+            //ucTempControl21.labelControl_SetTemp.Visible = true;
+
+            //ucTempControl1.labelControl_SetTime.Visible = true;
+            //ucTempControl2.labelControl_SetTime.Visible = true;
+            //ucTempControl3.labelControl_SetTime.Visible = true;
+            //ucTempControl4.labelControl_SetTime.Visible = true;
+            //ucTempControl5.labelControl_SetTime.Visible = true;
+            //ucTempControl6.labelControl_SetTime.Visible = true;
+            //ucTempControl7.labelControl_SetTime.Visible = true;
+            //ucTempControl8.labelControl_SetTime.Visible = true;
+            //ucTempControl9.labelControl_SetTime.Visible = true;
+            //ucTempControl10.labelControl_SetTime.Visible = true;
+            //ucTempControl11.labelControl_SetTime.Visible = true;
+            //ucTempControl12.labelControl_SetTime.Visible = true;
+            //ucTempControl13.labelControl_SetTime.Visible = true;
+            //ucTempControl14.labelControl_SetTime.Visible = true;
+            //ucTempControl15.labelControl_SetTime.Visible = true;
+            //ucTempControl16.labelControl_SetTime.Visible = true;
+            //ucTempControl17.labelControl_SetTime.Visible = true;
+            //ucTempControl18.labelControl_SetTime.Visible = true;
+            //ucTempControl19.labelControl_SetTime.Visible = true;
+            //ucTempControl20.labelControl_SetTime.Visible = true;
+            //ucTempControl21.labelControl_SetTime.Visible = true;
+
+
+        }
+
+
+        public void DataReading()
+        {
+            if (!DBConnectionSingleton.Instance().isConnect())
+            {
+                textBox_State.Text = "DB_Connected Error\r\n";
+                return;
+            }
+
+            textBox_State.Text = "";
+            //DB 설비정보내에서 온도계 정보를 가져옵니다.[온도계는 CODE정보로 E03으로 저장되어있다]
+            DataTable dt = DBConnectionSingleton.Instance().GetSqlData("select r.MACH_CD,(r.REAL_DATA * m.VALUE_RATIO) REAL_DATA, m.MACH_NM, m.MACH_NO, c.WORK_ROUT_CD FROM T_HT_REAL_DATA r left join T_STD_MACH m on r.MACH_CD = m.MACH_CD and r.COMP_CD = m.COMP_CD" +
+                " left join T_STD_CODE c on c.NO_RMK = m.MACH_NO order by r.MACH_CD asc");
+
+
+            textBox_State.Text += "DataReading...\r\n";
+
+            if (dt == null) return;
+
+
+            for(int i = 0; i< dt.Rows.Count; i ++)
+            {
+                if(dt.Rows[i]["MACH_NO"].ToString() == "520")
+                {
+                    ucTempControl1.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl1.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "["+ dt.Rows[i]["MACH_NO"].ToString()+":"+ dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "521")
+                {
+                    ucTempControl2.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl2.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "522")
+                {
+                    ucTempControl3.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl3.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "523")
+                {
+                    ucTempControl4.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl4.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "524")
+                {
+                    ucTempControl5.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl5.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "525")
+                {
+                    ucTempControl6.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl6.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "526")
+                {
+                    ucTempControl7.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl7.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "527")
+                {
+                    ucTempControl8.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl8.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "528")
+                {
+                    ucTempControl9.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl9.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "529")
+                {
+                    ucTempControl10.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl10.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "530")
+                {
+                    ucTempControl11.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl11.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "531")
+                {
+                    ucTempControl12.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl12.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "532")
+                {
+                    ucTempControl13.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl13.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "533")
+                {
+                    ucTempControl14.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl14.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "534")
+                {
+                    ucTempControl15.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl15.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "535")
+                {
+                    ucTempControl16.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl16.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "536")
+                {
+                    ucTempControl17.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl17.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    textBox_State.Text += "[" + dt.Rows[i]["MACH_NO"].ToString() + ":" + dt.Rows[i]["REAL_DATA"].ToString() + "]";
+                    continue;
+                }
+                //if (dt.Rows[i]["MACH_NO"].ToString() == "537")
+                //{
+                //    ucTempControl18.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                //    ucTempControl18.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                //    continue;
+                //}
+                if (dt.Rows[i]["MACH_NO"].ToString() == "538")
+                {
+                    ucTempControl19.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl19.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "539")
+                {
+                    ucTempControl20.LabelText = dt.Rows[i]["WORK_ROUT_CD"].ToString();
+                    ucTempControl20.Temp = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+
+
+                if (dt.Rows[i]["MACH_NO"].ToString() == "600")
+                {
+                    ucTempControl1.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "601")
+                {
+                    ucTempControl2.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "602")
+                {
+                    ucTempControl3.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "603")
+                {
+                    ucTempControl4.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "604")
+                {
+                    ucTempControl5.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "605")
+                {
+                    ucTempControl6.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "606")
+                {
+                    ucTempControl7.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "607")
+                {
+                    ucTempControl8.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "608")
+                {
+                    ucTempControl9.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "609")
+                {
+                    ucTempControl10.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "610")
+                {
+                    ucTempControl11.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "611")
+                {
+                    ucTempControl12.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "612")
+                {
+                    ucTempControl13.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "613")
+                {
+                    ucTempControl14.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "614")
+                {
+                    ucTempControl15.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "615")
+                {
+                    ucTempControl16.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "616")
+                {
+                    ucTempControl17.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "617")
+                {
+                    ucTempControl19.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "618")
+                {
+                    ucTempControl20.Time = dt.Rows[i]["REAL_DATA"].ToString();
+                    continue;
+                }
+
+
+
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.0")
+                {
+                    try
+                    {
+                        ucTempControl1.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1?1:0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.1")
+                {
+                    try
+                    {
+                        ucTempControl2.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.2")
+                {
+                    try
+                    {
+                        ucTempControl3.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.3")
+                {
+                    try
+                    {
+                        ucTempControl4.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.4")
+                {
+                    try
+                    {
+                        ucTempControl5.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.5")
+                {
+                    try
+                    {
+                        ucTempControl6.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.6")
+                {
+                    try
+                    {
+                        ucTempControl7.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.7")
+                {
+                    try
+                    {
+                        ucTempControl8.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.8")
+                {
+                    try
+                    {
+                        ucTempControl9.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.9")
+                {
+                    try
+                    {
+                        ucTempControl10.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.10")
+                {
+                    try
+                    {
+                        ucTempControl11.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.11")
+                {
+                    try
+                    {
+                        ucTempControl12.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.12")
+                {
+                    try
+                    {
+                        ucTempControl13.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.13")
+                {
+                    try
+                    {
+                        ucTempControl14.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.14")
+                {
+                    try
+                    {
+                        ucTempControl15.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "620.15")
+                {
+                    try
+                    {
+                        ucTempControl16.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "621.0")
+                {
+                    try
+                    {
+                        ucTempControl17.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "621.1")
+                {
+                    try
+                    {
+                        ucTempControl19.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+                if (dt.Rows[i]["MACH_NO"].ToString() == "621.2")
+                {
+                    try
+                    {
+                        ucTempControl20.State = Convert.ToInt32(dt.Rows[i]["REAL_DATA"].ToString()) >= 1 ? 1 : 0;
+                    }
+                    catch (Exception ex) { }
+                    continue;
+                }
+
+
+
+            }
+
+
+
+        }
+
+        private void timer_Time_Tick(object sender, EventArgs e)
+        {
+            label_Timer.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
+        }
+    }
+}
 
KHPANEL/FormHTPanel_1.resx (added)
+++ KHPANEL/FormHTPanel_1.resx
This file is too big to display.
 
KHPANEL/Form_Main.Designer.cs (added)
+++ KHPANEL/Form_Main.Designer.cs
@@ -0,0 +1,93 @@
+
+namespace KHPANEL
+{
+    partial class Form_Main
+    {
+        /// <summary>
+        /// 필수 디자이너 변수입니다.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// 사용 중인 모든 리소스를 정리합니다.
+        /// </summary>
+        /// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form 디자이너에서 생성한 코드
+
+        /// <summary>
+        /// 디자이너 지원에 필요한 메서드입니다. 
+        /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.simpleButton_1 = new DevExpress.XtraEditors.SimpleButton();
+            this.timer_DBConnect = new System.Windows.Forms.Timer(this.components);
+            this.textBox_State = new System.Windows.Forms.TextBox();
+            this.ucScreen1 = new KHPANEL.ucScreen();
+            this.SuspendLayout();
+            // 
+            // simpleButton_1
+            // 
+            this.simpleButton_1.Location = new System.Drawing.Point(291, 28);
+            this.simpleButton_1.Name = "simpleButton_1";
+            this.simpleButton_1.Size = new System.Drawing.Size(96, 27);
+            this.simpleButton_1.TabIndex = 1;
+            this.simpleButton_1.Text = "Open";
+            this.simpleButton_1.Click += new System.EventHandler(this.simpleButton_1_Click);
+            // 
+            // timer_DBConnect
+            // 
+            this.timer_DBConnect.Enabled = true;
+            this.timer_DBConnect.Interval = 1000;
+            this.timer_DBConnect.Tick += new System.EventHandler(this.timer_DBConnect_Tick);
+            // 
+            // textBox_State
+            // 
+            this.textBox_State.Location = new System.Drawing.Point(59, 273);
+            this.textBox_State.Multiline = true;
+            this.textBox_State.Name = "textBox_State";
+            this.textBox_State.Size = new System.Drawing.Size(328, 173);
+            this.textBox_State.TabIndex = 3;
+            this.textBox_State.Visible = false;
+            // 
+            // ucScreen1
+            // 
+            this.ucScreen1.LabelText = "온도현황화면";
+            this.ucScreen1.Location = new System.Drawing.Point(23, 25);
+            this.ucScreen1.Name = "ucScreen1";
+            this.ucScreen1.Size = new System.Drawing.Size(250, 32);
+            this.ucScreen1.TabIndex = 0;
+            // 
+            // Form_Main
+            // 
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+            this.ClientSize = new System.Drawing.Size(416, 458);
+            this.Controls.Add(this.textBox_State);
+            this.Controls.Add(this.simpleButton_1);
+            this.Controls.Add(this.ucScreen1);
+            this.Name = "Form_Main";
+            this.Text = "현황정보";
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private ucScreen ucScreen1;
+        private DevExpress.XtraEditors.SimpleButton simpleButton_1;
+        private System.Windows.Forms.Timer timer_DBConnect;
+        private System.Windows.Forms.TextBox textBox_State;
+    }
+}
+
 
KHPANEL/Form_Main.cs (added)
+++ KHPANEL/Form_Main.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace KHPANEL
+{
+    public partial class Form_Main : Form
+    {
+
+        FormHTPanel_1 Screen01;
+        public Form_Main()
+        {
+            InitializeComponent();
+
+            Screen01 = new FormHTPanel_1();
+
+            ScreenDetect();
+        }
+
+
+        private void ScreenDetect()
+        {
+            Screen[] sc = Screen.AllScreens;
+            if (sc.Length > 1)
+            {
+
+                ucScreen1.SetScreen(sc, 1);
+                ucScreen1.SetScreen(sc, 2);
+                //Screen screen = (sc[0].WorkingArea.Contains(this.Location)) ? sc[1] : sc[0];
+                //frm.Show();
+
+                //frm.Location = screen.Bounds.Location;
+
+                //frm.WindowState = FormWindowState.Maximized;
+
+            }
+
+        }
+
+        private void simpleButton_1_Click(object sender, EventArgs e)
+        {
+            //MessageBox.Show(ucScreen1.m_SelectIndex.ToString());
+            if(Screen01==null || Screen01.IsDisposed)
+            {
+                Screen01 = new FormHTPanel_1();
+            }
+            Screen[] sc = Screen.AllScreens;
+            Screen screen = sc[ucScreen1.m_SelectIndex];
+            Screen01.Show();
+            Screen01.Location = screen.Bounds.Location;
+            Screen01.WindowState = FormWindowState.Maximized;
+        }
+
+        private void timer_DBConnect_Tick(object sender, EventArgs e)
+        {
+            try
+            {
+                if (!DBConnectionSingleton.Instance().isConnect())
+                    if (DBConnectionSingleton.Instance().Connect())
+                    {
+                        textBox_State.Text = "DB_Connected\r\n";
+                        //panel_DBConnect.BackColor = Color.FromArgb(192, 255, 192);
+                    }
+                    else
+                    {
+                        //panel_DBConnect.BackColor = Color.FromArgb(255, 192, 192);
+                    }
+            }
+            catch (Exception ex)
+            {
+
+                textBox_State.Text = "DB_Connected Error\r\n";
+            }
+        }
+
+        private void button1_Click(object sender, EventArgs e)
+        {
+          
+        }
+    }
+}
 
KHPANEL/Form_Main.resx (added)
+++ KHPANEL/Form_Main.resx
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="timer_DBConnect.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>(No newline at end of file)
 
KHPANEL/KHPANEL.csproj (added)
+++ KHPANEL/KHPANEL.csproj
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{B73643C5-A31F-42CD-85BB-BCBE01FD15C6}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>KHPANEL</RootNamespace>
+    <AssemblyName>KHPANEL</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="DevExpress.Data.v14.1, Version=14.1.10.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+    <Reference Include="DevExpress.Printing.v14.1.Core, Version=14.1.10.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+    <Reference Include="DevExpress.Sparkline.v14.1.Core, Version=14.1.10.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+    <Reference Include="DevExpress.Utils.v14.1, Version=14.1.10.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
+    <Reference Include="DevExpress.XtraEditors.v14.1, Version=14.1.10.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data.Linq" />
+    <Reference Include="System.Printing" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="CircularProgressBar.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="DBConnectionSingleton.cs" />
+    <Compile Include="Form_Main.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Form_Main.Designer.cs">
+      <DependentUpon>Form_Main.cs</DependentUpon>
+    </Compile>
+    <Compile Include="FormHTPanel_1.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="FormHTPanel_1.Designer.cs">
+      <DependentUpon>FormHTPanel_1.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ucScreen.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ucScreen.Designer.cs">
+      <DependentUpon>ucScreen.cs</DependentUpon>
+    </Compile>
+    <Compile Include="ucTempControl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ucTempControl.Designer.cs">
+      <DependentUpon>ucTempControl.cs</DependentUpon>
+    </Compile>
+    <EmbeddedResource Include="Form_Main.resx">
+      <DependentUpon>Form_Main.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="FormHTPanel_1.resx">
+      <DependentUpon>FormHTPanel_1.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+      <DesignTime>True</DesignTime>
+    </Compile>
+    <EmbeddedResource Include="ucScreen.resx">
+      <DependentUpon>ucScreen.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ucTempControl.resx">
+      <DependentUpon>ucTempControl.cs</DependentUpon>
+    </EmbeddedResource>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\Title.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\h-001.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\h-007.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\h-003.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Resources\h-005.png" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>(No newline at end of file)
 
KHPANEL/Program.cs (added)
+++ KHPANEL/Program.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace KHPANEL
+{
+    static class Program
+    {
+        /// <summary>
+        /// 해당 애플리케이션의 주 진입점입니다.
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new Form_Main());
+        }
+
+
+
+    }
+}
 
KHPANEL/Properties/AssemblyInfo.cs (added)
+++ KHPANEL/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 
+// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
+// 이러한 특성 값을 변경하세요.
+[assembly: AssemblyTitle("KHPANEL")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("KHPANEL")]
+[assembly: AssemblyCopyright("Copyright ©  2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 
+// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
+// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
+[assembly: ComVisible(false)]
+
+// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
+[assembly: Guid("b73643c5-a31f-42cd-85bb-bcbe01fd15c6")]
+
+// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
+//
+//      주 버전
+//      부 버전 
+//      빌드 번호
+//      수정 버전
+//
+// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
+// 기본값으로 할 수 있습니다.
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
 
KHPANEL/Properties/Resources.Designer.cs (added)
+++ KHPANEL/Properties/Resources.Designer.cs
@@ -0,0 +1,113 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     이 코드는 도구를 사용하여 생성되었습니다.
+//     런타임 버전:4.0.30319.42000
+//
+//     파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
+//     이러한 변경 내용이 손실됩니다.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace KHPANEL.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
+    /// </summary>
+    // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
+    // 클래스에서 자동으로 생성되었습니다.
+    // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
+    // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("KHPANEL.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
+        ///   재정의합니다.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+        /// </summary>
+        internal static System.Drawing.Bitmap h_001 {
+            get {
+                object obj = ResourceManager.GetObject("h-001", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+        /// </summary>
+        internal static System.Drawing.Bitmap h_003 {
+            get {
+                object obj = ResourceManager.GetObject("h-003", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+        /// </summary>
+        internal static System.Drawing.Bitmap h_005 {
+            get {
+                object obj = ResourceManager.GetObject("h-005", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+        /// </summary>
+        internal static System.Drawing.Bitmap h_007 {
+            get {
+                object obj = ResourceManager.GetObject("h-007", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
+        /// </summary>
+        internal static System.Drawing.Bitmap Title {
+            get {
+                object obj = ResourceManager.GetObject("Title", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+    }
+}
 
KHPANEL/Properties/Resources.resx (added)
+++ KHPANEL/Properties/Resources.resx
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="Title" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Title.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="h-001" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\h-001.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="h-007" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\h-007.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="h-003" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\h-003.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="h-005" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\h-005.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+</root>(No newline at end of file)
 
KHPANEL/Properties/Settings.Designer.cs (added)
+++ KHPANEL/Properties/Settings.Designer.cs
@@ -0,0 +1,29 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+
+namespace KHPANEL.Properties
+{
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+    {
+
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+        public static Settings Default
+        {
+            get
+            {
+                return defaultInstance;
+            }
+        }
+    }
+}
 
KHPANEL/Properties/Settings.settings (added)
+++ KHPANEL/Properties/Settings.settings
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
 
KHPANEL/Resources/Title.png (Binary) (added)
+++ KHPANEL/Resources/Title.png
Binary file is not shown
 
KHPANEL/Resources/h-001.png (Binary) (added)
+++ KHPANEL/Resources/h-001.png
Binary file is not shown
 
KHPANEL/Resources/h-003.png (Binary) (added)
+++ KHPANEL/Resources/h-003.png
Binary file is not shown
 
KHPANEL/Resources/h-005.png (Binary) (added)
+++ KHPANEL/Resources/h-005.png
Binary file is not shown
 
KHPANEL/Resources/h-007.png (Binary) (added)
+++ KHPANEL/Resources/h-007.png
Binary file is not shown
 
KHPANEL/ucScreen.Designer.cs (added)
+++ KHPANEL/ucScreen.Designer.cs
@@ -0,0 +1,73 @@
+
+namespace KHPANEL
+{
+    partial class ucScreen
+    {
+        /// <summary> 
+        /// 필수 디자이너 변수입니다.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 사용 중인 모든 리소스를 정리합니다.
+        /// </summary>
+        /// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 구성 요소 디자이너에서 생성한 코드
+
+        /// <summary> 
+        /// 디자이너 지원에 필요한 메서드입니다. 
+        /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.labelControl_Title = new DevExpress.XtraEditors.LabelControl();
+            this.comboBox_Screen = new System.Windows.Forms.ComboBox();
+            this.SuspendLayout();
+            // 
+            // labelControl_Title
+            // 
+            this.labelControl_Title.Appearance.Font = new System.Drawing.Font("Tahoma", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.labelControl_Title.Location = new System.Drawing.Point(3, 3);
+            this.labelControl_Title.Name = "labelControl_Title";
+            this.labelControl_Title.Size = new System.Drawing.Size(102, 23);
+            this.labelControl_Title.TabIndex = 0;
+            this.labelControl_Title.Text = "이름을적는곳";
+            // 
+            // comboBox_Screen
+            // 
+            this.comboBox_Screen.FormattingEnabled = true;
+            this.comboBox_Screen.Location = new System.Drawing.Point(126, 6);
+            this.comboBox_Screen.Name = "comboBox_Screen";
+            this.comboBox_Screen.Size = new System.Drawing.Size(121, 20);
+            this.comboBox_Screen.TabIndex = 1;
+            this.comboBox_Screen.Text = "스크린번호";
+            this.comboBox_Screen.SelectedIndexChanged += new System.EventHandler(this.comboBox_Screen_SelectedIndexChanged);
+            // 
+            // ucScreen
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.comboBox_Screen);
+            this.Controls.Add(this.labelControl_Title);
+            this.Name = "ucScreen";
+            this.Size = new System.Drawing.Size(250, 32);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private DevExpress.XtraEditors.LabelControl labelControl_Title;
+        private System.Windows.Forms.ComboBox comboBox_Screen;
+    }
+}
 
KHPANEL/ucScreen.cs (added)
+++ KHPANEL/ucScreen.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace KHPANEL
+{
+    public partial class ucScreen : UserControl
+    {
+
+        public int m_SelectIndex = 0;
+        public ucScreen()
+        {
+            InitializeComponent();
+        }
+
+
+        public void SetScreen(Screen[] screen, int InitNumber)
+        {
+            if(screen.Length < InitNumber)
+            {
+                labelControl_Title.Text = "";
+                comboBox_Screen.Visible = false;
+                return;
+            }else if(screen.Length != 0)
+            {
+                comboBox_Screen.Items.Clear();
+                for (int i = 0; i < screen.Length; i ++ )
+                {
+                    comboBox_Screen.Items.Add((i + 1).ToString() + "번 모니터");
+                }
+                comboBox_Screen.SelectedIndex = InitNumber - 1;
+            }
+        }
+
+
+
+
+
+        [Category("설정"), Description("표시 텍스트")]
+        public string LabelText
+        {
+            get
+            {
+                return this.labelControl_Title.Text;
+            }
+            set
+            {
+                this.labelControl_Title.Text = value;
+            }
+        }
+
+        private void comboBox_Screen_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            m_SelectIndex = comboBox_Screen.SelectedIndex;
+        }
+    }
+}
 
KHPANEL/ucScreen.resx (added)
+++ KHPANEL/ucScreen.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>(No newline at end of file)
 
KHPANEL/ucTempControl.Designer.cs (added)
+++ KHPANEL/ucTempControl.Designer.cs
@@ -0,0 +1,215 @@
+
+namespace KHPANEL
+{
+    partial class ucTempControl
+    {
+        /// <summary> 
+        /// 필수 디자이너 변수입니다.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 사용 중인 모든 리소스를 정리합니다.
+        /// </summary>
+        /// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 구성 요소 디자이너에서 생성한 코드
+
+        /// <summary> 
+        /// 디자이너 지원에 필요한 메서드입니다. 
+        /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.label_Title = new System.Windows.Forms.Label();
+            this.panel_Title = new System.Windows.Forms.Panel();
+            this.circularProgressBar1 = new KHPANEL.CircularProgressBar();
+            this.label1 = new System.Windows.Forms.Label();
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.label_Time = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
+            this.panel2 = new System.Windows.Forms.Panel();
+            this.label_Temp = new System.Windows.Forms.Label();
+            this.labelControl_SetTime = new DevExpress.XtraEditors.LabelControl();
+            this.labelControl_SetTemp = new DevExpress.XtraEditors.LabelControl();
+            this.panel_Title.SuspendLayout();
+            this.panel1.SuspendLayout();
+            this.panel2.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // label_Title
+            // 
+            this.label_Title.AutoSize = true;
+            this.label_Title.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label_Title.Location = new System.Drawing.Point(51, 17);
+            this.label_Title.Name = "label_Title";
+            this.label_Title.Size = new System.Drawing.Size(90, 32);
+            this.label_Title.TabIndex = 0;
+            this.label_Title.Text = "HBT01";
+            // 
+            // panel_Title
+            // 
+            this.panel_Title.Controls.Add(this.label_Title);
+            this.panel_Title.Dock = System.Windows.Forms.DockStyle.Top;
+            this.panel_Title.Location = new System.Drawing.Point(0, 0);
+            this.panel_Title.Name = "panel_Title";
+            this.panel_Title.Size = new System.Drawing.Size(192, 61);
+            this.panel_Title.TabIndex = 1;
+            // 
+            // circularProgressBar1
+            // 
+            this.circularProgressBar1.BackColor = System.Drawing.Color.Transparent;
+            this.circularProgressBar1.BarColor1 = System.Drawing.Color.LightCyan;
+            this.circularProgressBar1.BarColor2 = System.Drawing.Color.DodgerBlue;
+            this.circularProgressBar1.BarWidth = 5F;
+            this.circularProgressBar1.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.circularProgressBar1.Font = new System.Drawing.Font("Segoe UI", 15F);
+            this.circularProgressBar1.ForeColor = System.Drawing.Color.Transparent;
+            this.circularProgressBar1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.BackwardDiagonal;
+            this.circularProgressBar1.LineColor = System.Drawing.Color.Transparent;
+            this.circularProgressBar1.LineWidth = 1;
+            this.circularProgressBar1.Location = new System.Drawing.Point(11, 63);
+            this.circularProgressBar1.Maximum = ((long)(100));
+            this.circularProgressBar1.MinimumSize = new System.Drawing.Size(100, 100);
+            this.circularProgressBar1.Name = "circularProgressBar1";
+            this.circularProgressBar1.ProgressShape = KHPANEL.CircularProgressBar._ProgressShape.Flat;
+            this.circularProgressBar1.Size = new System.Drawing.Size(171, 171);
+            this.circularProgressBar1.TabIndex = 2;
+            this.circularProgressBar1.TextMode = KHPANEL.CircularProgressBar._TextMode.None;
+            this.circularProgressBar1.Value = ((long)(100));
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label1.ForeColor = System.Drawing.Color.Gainsboro;
+            this.label1.Location = new System.Drawing.Point(107, 110);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(39, 32);
+            this.label1.TabIndex = 3;
+            this.label1.Text = "분";
+            // 
+            // panel1
+            // 
+            this.panel1.Controls.Add(this.label_Time);
+            this.panel1.Location = new System.Drawing.Point(45, 111);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(72, 30);
+            this.panel1.TabIndex = 4;
+            // 
+            // label_Time
+            // 
+            this.label_Time.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.label_Time.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label_Time.ForeColor = System.Drawing.Color.Gainsboro;
+            this.label_Time.Location = new System.Drawing.Point(0, 0);
+            this.label_Time.Name = "label_Time";
+            this.label_Time.Size = new System.Drawing.Size(72, 30);
+            this.label_Time.TabIndex = 4;
+            this.label_Time.Text = "Null";
+            this.label_Time.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label3.ForeColor = System.Drawing.Color.Gainsboro;
+            this.label3.Location = new System.Drawing.Point(112, 148);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(18, 20);
+            this.label3.TabIndex = 5;
+            this.label3.Text = "o";
+            // 
+            // panel2
+            // 
+            this.panel2.Controls.Add(this.label_Temp);
+            this.panel2.Location = new System.Drawing.Point(45, 152);
+            this.panel2.Name = "panel2";
+            this.panel2.Size = new System.Drawing.Size(72, 30);
+            this.panel2.TabIndex = 6;
+            // 
+            // label_Temp
+            // 
+            this.label_Temp.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.label_Temp.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+            this.label_Temp.ForeColor = System.Drawing.Color.Gainsboro;
+            this.label_Temp.Location = new System.Drawing.Point(0, 0);
+            this.label_Temp.Name = "label_Temp";
+            this.label_Temp.Size = new System.Drawing.Size(72, 30);
+            this.label_Temp.TabIndex = 4;
+            this.label_Temp.Text = "Null";
+            this.label_Temp.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+            // 
+            // labelControl_SetTime
+            // 
+            this.labelControl_SetTime.Appearance.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold);
+            this.labelControl_SetTime.Appearance.ForeColor = System.Drawing.Color.Gainsboro;
+            this.labelControl_SetTime.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+            this.labelControl_SetTime.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+            this.labelControl_SetTime.Location = new System.Drawing.Point(131, 67);
+            this.labelControl_SetTime.Name = "labelControl_SetTime";
+            this.labelControl_SetTime.Size = new System.Drawing.Size(53, 19);
+            this.labelControl_SetTime.TabIndex = 7;
+            this.labelControl_SetTime.Text = "xxxx분";
+            this.labelControl_SetTime.Visible = false;
+            // 
+            // labelControl_SetTemp
+            // 
+            this.labelControl_SetTemp.Appearance.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold);
+            this.labelControl_SetTemp.Appearance.ForeColor = System.Drawing.Color.Gainsboro;
+            this.labelControl_SetTemp.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
+            this.labelControl_SetTemp.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
+            this.labelControl_SetTemp.Location = new System.Drawing.Point(9, 215);
+            this.labelControl_SetTemp.Name = "labelControl_SetTemp";
+            this.labelControl_SetTemp.Size = new System.Drawing.Size(53, 19);
+            this.labelControl_SetTemp.TabIndex = 8;
+            this.labelControl_SetTemp.Text = "123.3˚";
+            this.labelControl_SetTemp.Visible = false;
+            // 
+            // ucTempControl
+            // 
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
+            this.BackColor = System.Drawing.Color.Transparent;
+            this.BackgroundImage = global::KHPANEL.Properties.Resources.h_007;
+            this.Controls.Add(this.labelControl_SetTemp);
+            this.Controls.Add(this.labelControl_SetTime);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.panel2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.panel1);
+            this.Controls.Add(this.panel_Title);
+            this.Controls.Add(this.circularProgressBar1);
+            this.Name = "ucTempControl";
+            this.Size = new System.Drawing.Size(192, 242);
+            this.panel_Title.ResumeLayout(false);
+            this.panel_Title.PerformLayout();
+            this.panel1.ResumeLayout(false);
+            this.panel2.ResumeLayout(false);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label label_Title;
+        private System.Windows.Forms.Panel panel_Title;
+        private CircularProgressBar circularProgressBar1;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Panel panel1;
+        private System.Windows.Forms.Label label_Time;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.Panel panel2;
+        private System.Windows.Forms.Label label_Temp;
+        public DevExpress.XtraEditors.LabelControl labelControl_SetTime;
+        public DevExpress.XtraEditors.LabelControl labelControl_SetTemp;
+    }
+}
 
KHPANEL/ucTempControl.cs (added)
+++ KHPANEL/ucTempControl.cs
@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace KHPANEL
+{
+    public partial class ucTempControl : UserControl
+    {
+        int m_State = 0;
+
+        Image m_Stop = Properties.Resources.h_007;
+        Image m_Run = Properties.Resources.h_001;
+        Image m_Warning = Properties.Resources.h_003;
+        Image m_Error = Properties.Resources.h_005;
+
+        public ucTempControl()
+        {
+            InitializeComponent();
+        }
+
+
+
+        [Category("설정"), Description("표시 텍스트")]
+        public string LabelText
+        {
+            get
+            {
+                return this.label_Title.Text;
+            }
+            set
+            {
+                this.label_Title.Text = value;
+                this.label_Title.SetBounds(this.panel_Title.Width / 2 - this.label_Title.Width / 2, this.panel_Title.Height / 2 - this.label_Title.Height / 2, this.label_Title.Width, this.label_Title.Height);
+
+
+            }
+        }
+
+
+        [Category("설정"), Description("상태 설정")]
+        public int State
+        {
+            get
+            {
+                return this.m_State;
+            }
+            set
+            {
+                this.m_State = value;
+                if (m_State == 0)
+                {
+                    this.BackgroundImage = m_Stop;
+                }
+                else if (m_State == 1)
+                {
+                    this.BackgroundImage = m_Run;
+                }
+                else if (m_State == 2)
+                {
+                    this.BackgroundImage = m_Warning;
+                }
+                else if (m_State == 3)
+                {
+                    this.BackgroundImage = m_Error;
+                }
+            }
+        }
+
+
+        [Category("설정"), Description("상태 설정")]
+        public string Time
+        {
+            get
+            {
+                return this.label_Time.Text;
+            }
+            set
+            {
+                this.label_Time.Text = value;
+            }
+        }
+
+
+        [Category("설정"), Description("상태 설정")]
+        public string Temp
+        {
+            get
+            {
+                return this.label_Temp.Text;
+            }
+            set
+            {
+                this.label_Temp.Text = value;
+            }
+        }
+
+
+    }
+}
 
KHPANEL/ucTempControl.resx (added)
+++ KHPANEL/ucTempControl.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>(No newline at end of file)
Add a comment
List