From 5022eba19607d2f2f9d4568a9bdc72c191e8919d Mon Sep 17 00:00:00 2001 From: hassong Date: Fri, 3 Jul 2026 16:43:53 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ControlAgent/Form1.Designer.cs | 201 ++- ControlAgent/Form1.cs | 650 +++++++- ControlAgent/Form1.resx | 21 + ControlServer/AgentMonitorForm.Designer.cs | 267 +++ ControlServer/AgentMonitorForm.cs | 704 ++++++++ .../{Form4.resx => AgentMonitorForm.resx} | 13 +- ControlServer/ControlAgent.zip | Bin 0 -> 262381 bytes ControlServer/ControlServer.csproj | 4 + ControlServer/DbFileManager.cs | 215 +++ ControlServer/Form1.Designer.cs | 130 +- ControlServer/Form1.cs | 1471 +++++++++++++---- ControlServer/Form1.resx | 9 + ControlServer/Form2.Designer.cs | 90 +- ControlServer/Form2.cs | 102 +- ControlServer/Form3.Designer.cs | 257 ++- ControlServer/Form3.cs | 241 ++- ControlServer/Form3.resx | 21 + ControlServer/Form4.Designer.cs | 166 -- ControlServer/Form4.cs | 35 - .../Properties/Resources.Designer.cs | 40 + ControlServer/Properties/Resources.resx | 12 + ControlServer/Resources/imgCountBox.png | Bin 0 -> 224039 bytes ControlServer/Resources/imgCountBox1.png | Bin 0 -> 113938 bytes ControlServer/Resources/imgDataRegister.png | Bin 0 -> 190 bytes ControlServer/Resources/imgDataUpdate.png | Bin 0 -> 647 bytes ControlServer/RoundedPanel.cs | 49 + 26 files changed, 3940 insertions(+), 758 deletions(-) create mode 100644 ControlServer/AgentMonitorForm.Designer.cs create mode 100644 ControlServer/AgentMonitorForm.cs rename ControlServer/{Form4.resx => AgentMonitorForm.resx} (96%) create mode 100644 ControlServer/ControlAgent.zip create mode 100644 ControlServer/DbFileManager.cs delete mode 100644 ControlServer/Form4.Designer.cs delete mode 100644 ControlServer/Form4.cs create mode 100644 ControlServer/Resources/imgCountBox.png create mode 100644 ControlServer/Resources/imgCountBox1.png create mode 100644 ControlServer/Resources/imgDataRegister.png create mode 100644 ControlServer/Resources/imgDataUpdate.png create mode 100644 ControlServer/RoundedPanel.cs diff --git a/ControlAgent/Form1.Designer.cs b/ControlAgent/Form1.Designer.cs index d2a199b..2aab9df 100644 --- a/ControlAgent/Form1.Designer.cs +++ b/ControlAgent/Form1.Designer.cs @@ -28,8 +28,29 @@ /// private void InitializeComponent() { + DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle dataGridViewCellStyle2 = new DataGridViewCellStyle(); lblPCName = new Label(); lblMac = new Label(); + grdDataList = new DataGridView(); + Col0 = new DataGridViewTextBoxColumn(); + Col1 = new DataGridViewTextBoxColumn(); + Col2 = new DataGridViewTextBoxColumn(); + Col3 = new DataGridViewTextBoxColumn(); + Col4 = new DataGridViewTextBoxColumn(); + Col5 = new DataGridViewTextBoxColumn(); + Col6 = new DataGridViewTextBoxColumn(); + panel1 = new Panel(); + lblTime = new Label(); + lblDate = new Label(); + imgLogo = new PictureBox(); + lblLogo = new Label(); + lblTitle = new Label(); + lblPageIndicator = new Label(); + lblDataUpdateTime = new Label(); + ((System.ComponentModel.ISupportInitialize)grdDataList).BeginInit(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)imgLogo).BeginInit(); SuspendLayout(); // // lblPCName @@ -46,15 +67,177 @@ lblMac.Size = new Size(219, 39); lblMac.TabIndex = 1; // + // grdDataList + // + dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle1.BackColor = SystemColors.Control; + dataGridViewCellStyle1.Font = new Font("맑은 고딕", 12F, FontStyle.Bold, GraphicsUnit.Point, 129); + dataGridViewCellStyle1.ForeColor = SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True; + grdDataList.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + grdDataList.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + grdDataList.Columns.AddRange(new DataGridViewColumn[] { Col0, Col1, Col2, Col3, Col4, Col5, Col6 }); + grdDataList.Location = new Point(0, 146); + grdDataList.Name = "grdDataList"; + grdDataList.RowHeadersWidth = 51; + dataGridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleCenter; + grdDataList.RowsDefaultCellStyle = dataGridViewCellStyle2; + grdDataList.Size = new Size(1412, 585); + grdDataList.TabIndex = 2; + // + // Col0 + // + Col0.HeaderText = "경매일자"; + Col0.MinimumWidth = 6; + Col0.Name = "Col0"; + Col0.Width = 200; + // + // Col1 + // + Col1.HeaderText = "품목명"; + Col1.MinimumWidth = 6; + Col1.Name = "Col1"; + Col1.Width = 200; + // + // Col2 + // + Col2.HeaderText = "산지"; + Col2.MinimumWidth = 6; + Col2.Name = "Col2"; + Col2.Width = 200; + // + // Col3 + // + Col3.HeaderText = "전체수량"; + Col3.MinimumWidth = 6; + Col3.Name = "Col3"; + Col3.Width = 200; + // + // Col4 + // + Col4.HeaderText = "정가수의 수량"; + Col4.MinimumWidth = 6; + Col4.Name = "Col4"; + Col4.Width = 200; + // + // Col5 + // + Col5.HeaderText = "전체물량"; + Col5.MinimumWidth = 6; + Col5.Name = "Col5"; + Col5.Width = 200; + // + // Col6 + // + Col6.HeaderText = "정가수의 물량"; + Col6.MinimumWidth = 6; + Col6.Name = "Col6"; + Col6.Width = 200; + // + // panel1 + // + panel1.BackColor = SystemColors.Highlight; + panel1.Controls.Add(lblTime); + panel1.Controls.Add(lblDate); + panel1.Controls.Add(imgLogo); + panel1.Controls.Add(lblLogo); + panel1.Controls.Add(lblTitle); + panel1.Location = new Point(0, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(1412, 120); + panel1.TabIndex = 4; + // + // lblTime + // + lblTime.BackColor = SystemColors.ControlDarkDark; + lblTime.Font = new Font("맑은 고딕", 24F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblTime.ForeColor = SystemColors.HighlightText; + lblTime.Location = new Point(1215, 47); + lblTime.Name = "lblTime"; + lblTime.Size = new Size(169, 66); + lblTime.TabIndex = 9; + lblTime.TextAlign = ContentAlignment.MiddleCenter; + // + // lblDate + // + lblDate.BackColor = SystemColors.ControlDarkDark; + lblDate.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblDate.ForeColor = SystemColors.HighlightText; + lblDate.Location = new Point(1215, 20); + lblDate.Name = "lblDate"; + lblDate.Size = new Size(169, 27); + lblDate.TabIndex = 8; + lblDate.TextAlign = ContentAlignment.MiddleCenter; + // + // imgLogo + // + imgLogo.Location = new Point(20, 38); + imgLogo.Name = "imgLogo"; + imgLogo.Size = new Size(52, 43); + imgLogo.TabIndex = 6; + imgLogo.TabStop = false; + // + // lblLogo + // + lblLogo.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblLogo.ForeColor = SystemColors.HighlightText; + lblLogo.Location = new Point(91, 0); + lblLogo.Name = "lblLogo"; + lblLogo.Size = new Size(172, 120); + lblLogo.TabIndex = 5; + lblLogo.Text = "수협중앙회"; + lblLogo.TextAlign = ContentAlignment.MiddleLeft; + // + // lblTitle + // + lblTitle.Font = new Font("맑은 고딕", 25.8000011F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblTitle.ForeColor = SystemColors.HighlightText; + lblTitle.Location = new Point(0, 0); + lblTitle.Name = "lblTitle"; + lblTitle.Size = new Size(1412, 120); + lblTitle.TabIndex = 4; + lblTitle.Text = "정가·수의매매 출하정보"; + lblTitle.TextAlign = ContentAlignment.MiddleCenter; + // + // lblPageIndicator + // + lblPageIndicator.Dock = DockStyle.Bottom; + lblPageIndicator.Font = new Font("맑은 고딕", 7.8F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblPageIndicator.ForeColor = SystemColors.HotTrack; + lblPageIndicator.Location = new Point(0, 734); + lblPageIndicator.Name = "lblPageIndicator"; + lblPageIndicator.Size = new Size(1412, 19); + lblPageIndicator.TabIndex = 5; + lblPageIndicator.TextAlign = ContentAlignment.MiddleCenter; + // + // lblDataUpdateTime + // + lblDataUpdateTime.Font = new Font("맑은 고딕", 9F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblDataUpdateTime.Location = new Point(5, 124); + lblDataUpdateTime.Name = "lblDataUpdateTime"; + lblDataUpdateTime.Size = new Size(306, 19); + lblDataUpdateTime.TabIndex = 6; + lblDataUpdateTime.Text = " "; + lblDataUpdateTime.TextAlign = ContentAlignment.MiddleLeft; + // // Form1 // AutoScaleDimensions = new SizeF(9F, 20F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(800, 450); + ClientSize = new Size(1412, 753); + Controls.Add(lblDataUpdateTime); + Controls.Add(lblPageIndicator); + Controls.Add(panel1); + Controls.Add(grdDataList); Controls.Add(lblMac); Controls.Add(lblPCName); Name = "Form1"; Text = "Form1"; + ((System.ComponentModel.ISupportInitialize)grdDataList).EndInit(); + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)imgLogo).EndInit(); ResumeLayout(false); } @@ -62,5 +245,21 @@ private Label lblPCName; private Label lblMac; + private DataGridView grdDataList; + private DataGridViewTextBoxColumn Col0; + private DataGridViewTextBoxColumn Col1; + private DataGridViewTextBoxColumn Col2; + private DataGridViewTextBoxColumn Col3; + private DataGridViewTextBoxColumn Col4; + private DataGridViewTextBoxColumn Col5; + private DataGridViewTextBoxColumn Col6; + private Panel panel1; + private Label lblTitle; + private Label lblLogo; + private PictureBox imgLogo; + private Label lblDate; + private Label lblTime; + private Label lblPageIndicator; + private Label lblDataUpdateTime; } } \ No newline at end of file diff --git a/ControlAgent/Form1.cs b/ControlAgent/Form1.cs index 5e220e8..7fc2416 100644 --- a/ControlAgent/Form1.cs +++ b/ControlAgent/Form1.cs @@ -2,115 +2,661 @@ using System.Collections.Generic; using System.ComponentModel; using System.Data; +using System.Data.SqlTypes; using System.Drawing; +using System.Drawing.Drawing2D; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; using System.Text; +using System.Threading; +using System.Threading.Tasks; using System.Windows.Forms; +using System.Xml.Linq; +using static System.Windows.Forms.LinkLabel; +using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock; namespace ControlAgent { public partial class Form1 : Form { - private bool _isAgentRunning = true; + // 색상 정의 (Hex 코드 대신 RGB 사용) + private readonly Color HEADER_BG_COLOR = Color.FromArgb(36, 85, 178); + private readonly Color HEADER_TEXT_COLOR = Color.White; + private readonly Color ROW_EVEN_COLOR = Color.FromArgb(245, 248, 255); // 짝수 행 (연한 파란색 계열) + private readonly Color ROW_ODD_COLOR = Color.White; // 홀수 행 (흰색) + private readonly Color TEXT_BLUE_COLOR = Color.FromArgb(24, 60, 150); // 파란색 텍스트 + + private DataTable _dtSourceAll; // 전체 데이터를 담을 DataTable + private DataTable _dtPaged; // 현재 페이지에 해당하는 데이터만 담을 DataTable + private int _currentPage = 1; + private const int PAGE_SIZE = 5; // 한 페이지당 5행씩 + private int _dynamicFontSize = 12; // 동적으로 바뀔 폰트 크기 (기본값) + private System.Windows.Forms.Timer _pageTurnTimer; + private System.Windows.Forms.Timer _clockTimer; + + private bool _isAgentRunning = true; // 에이전트 루프 제어 플래그 + + private NetworkStream _currentStream = null; + private readonly object _streamLock = new object(); public Form1() { InitializeComponent(); - // 백그라운드 태스크 형태로 서버 감지 및 수신 스레드 기동 (UI 먹통 현상 방지) + // 1. 폼 최대화 및 테두리 제거 (현황판/키오스크 스타일) + this.WindowState = FormWindowState.Maximized; + this.FormBorderStyle = FormBorderStyle.None; + + // 고정 도킹 해제하여 동적 배치 적용 + if (panel1 != null) + { + panel1.Dock = DockStyle.None; + panel1.Height = 140; // 전체 화면 비율에 맞춰 타이틀 패널 높이 조절 + } + + // 라벨들의 개별 Dock 설정을 해제하여 디자이너에서 배치한 원래 위치(좌측/우측)를 유지하도록 합니다. + if (lblTime != null) lblTime.Dock = DockStyle.None; + if (lblDate != null) lblDate.Dock = DockStyle.None; + if (lblTitle != null) lblTitle.Dock = DockStyle.None; + + if (lblDataUpdateTime != null) + { + lblDataUpdateTime.Dock = DockStyle.None; + lblDataUpdateTime.AutoSize = true; + } + + // 3.그리드가 기준시간 밑으로 오도록 도킹 해제 및 여백 초기화 + grdDataList.Dock = DockStyle.None; + grdDataList.Padding = new Padding(0); // 기존 오작동하던 패딩 제거 + + // 4. 화면 해상도가 바뀌거나 최대화될 때 컨트롤 위치를 전체적으로 재계산 + this.SizeChanged += (s, e) => + { + int sideMargin = 25; // 좌우 고정 여백 + int topMargin = 20; // 타이틀 패널 위쪽 살짝 여백 추가 + int areaWidth = this.ClientSize.Width - (sideMargin * 2); + + // A. 타이틀 패널 위치 및 크기 조절 (그리드와 넓이 동기화 및 상단 여백) + if (panel1 != null) + { + panel1.SetBounds(sideMargin, topMargin, areaWidth, panel1.Height); + + // 타이틀 내부 컨트롤 정렬 강제 호출 + panel1_SizeChanged(null, null); + } + + // B. 기준 시간 라벨 배치 (타이틀 패널 아래로 15픽셀 여백) + if (lblDataUpdateTime != null && panel1 != null) + { + lblDataUpdateTime.Location = new Point(sideMargin, panel1.Bottom + 15); + lblDataUpdateTime.BringToFront(); + } + + // C. 그리드 배치 (기준시간 라벨 아랫변 + 15픽셀 여백) + if (lblDataUpdateTime != null) + { + int gridTop = lblDataUpdateTime.Bottom + 15; + int gridHeight = this.ClientSize.Height - gridTop - 60; + + if (areaWidth > 0 && gridHeight > 0) + { + grdDataList.SetBounds(sideMargin, gridTop, areaWidth, gridHeight); + + // 가용 높이에 맞게 행 높이 동적 계산 (한 번에 5개 고정) + int headerHeight = grdDataList.ColumnHeadersHeight; + int availableHeight = gridHeight - headerHeight; + + if (availableHeight > 0) + { + // 정밀도를 위해 가용한 높이를 PAGE_SIZE(5)로 나눈 몫을 계산 + int dynamicRowHeight = availableHeight / PAGE_SIZE; + + // 앞으로 추가될 행의 기본 높이 설정 + grdDataList.RowTemplate.Height = dynamicRowHeight; + + // 현재 이미 그리드에 바인딩되어 있는 행들의 높이도 일괄 변경 + // 폰트 크기가 최소 12pt ~ 최대 24pt 사이에 머물도록 제한 + _dynamicFontSize = Math.Clamp((int)(dynamicRowHeight * 0.16), 12, 24); + + foreach (DataGridViewRow row in grdDataList.Rows) + { + row.Height = dynamicRowHeight; + } + } + + //그리드 모서리 둥글게 깎기 + UpdateGridRegion(); + } + } + + // 하단 페이지 점(● • •) 위치 정중앙 하단으로 재배치 + if (lblPageIndicator != null) + { + lblPageIndicator.Dock = DockStyle.None; + lblPageIndicator.AutoSize = true; + lblPageIndicator.Location = new Point( + (this.ClientSize.Width - lblPageIndicator.Width) / 2, + this.ClientSize.Height - 40 + ); + lblPageIndicator.BringToFront(); + } + }; + + // DataGridView 내부 컬럼들도 우측 빈 공간(회색 여백) 없이 꽉 차게 채움 + grdDataList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + grdDataList.ColumnHeadersVisible = true; + + // DataGridView의 기본 스타일 및 그리드선 숨기기 설정 + grdDataList.CellPainting -= grdDataList_CellPainting; + grdDataList.CellPainting += grdDataList_CellPainting; + + grdDataList.AutoGenerateColumns = false; // 자동 컬럼 생성 방지 + grdDataList.RowHeadersVisible = false; // 행 헤더 숨기기 + grdDataList.AllowUserToAddRows = false; // 빈 행 추가 방지 + grdDataList.AllowUserToResizeColumns = false; // 컬럼 너비 조정 불가 + grdDataList.AllowUserToResizeRows = false; // 행 높이 조정 불가 + grdDataList.ReadOnly = true; // 읽기 전용 + grdDataList.AllowUserToDeleteRows = false; // 행 삭제 방지 + grdDataList.ColumnHeadersHeight = 81; // 헤더 높이를 81로 설정 (2줄 헤더 공간 확보) + grdDataList.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + + grdDataList.EnableHeadersVisualStyles = false; // 커스텀 헤더 스타일 적용을 위해 필수 + grdDataList.CellBorderStyle = DataGridViewCellBorderStyle.None; // 셀 테두리(그리드선) 제거 + grdDataList.RowTemplate.Height = 100; // 데이터 행 높이를 100으로 설정 + grdDataList.BorderStyle = BorderStyle.None; // 컨트롤 외곽선 제거 + + // 사용자가 컬럼을 클릭해도 정렬되지 않도록 설정 (안정적인 화면 유지) + grdDataList.ColumnAdded += (s, e) => + { + e.Column.SortMode = DataGridViewColumnSortMode.NotSortable; + }; + + // 시계 타이머 설정 (1초마다 업데이트) + _clockTimer = new System.Windows.Forms.Timer(); + _clockTimer.Interval = 1000; + _clockTimer.Tick += ClockTimer_Tick; + + // 페이지 전환 타이머 설정 (5초마다 업데이트) + _pageTurnTimer = new System.Windows.Forms.Timer(); + _pageTurnTimer.Interval = 5000; + _pageTurnTimer.Tick += PageTurnTimer_Tick; + + this.Load += Form1_Load; + } + + // 데이터그리드뷰 영역을 둥글게 깎아주는 헬퍼 메서드 + private void UpdateGridRegion() + { + if (grdDataList.Width <= 0 || grdDataList.Height <= 0) return; + + int radius = 15; + using (GraphicsPath path = new GraphicsPath()) + { + path.AddArc(0, 0, radius, radius, 180, 90); + path.AddArc(grdDataList.Width - radius, 0, radius, radius, 270, 90); + path.AddArc(grdDataList.Width - radius, grdDataList.Height - radius, radius, radius, 0, 90); + path.AddArc(0, grdDataList.Height - radius, radius, radius, 90, 90); + path.CloseAllFigures(); + grdDataList.Region = new Region(path); + } + } + + private void Form1_Load(object sender, EventArgs e) + { + // 컬럼 프로퍼티 매핑 초기화 선행 + InitGridColumnProperties(); + + // 한 번 더 명시적으로 정렬 비활성화 + foreach (DataGridViewColumn col in grdDataList.Columns) + { + col.SortMode = DataGridViewColumnSortMode.NotSortable; + } + + // 시계 시작 + _clockTimer.Start(); + UpdateCurrentTime(); + + // 연결 전까지는 그리드가 빈 상태(리스트 없음)로 대기 + grdDataList.DataSource = null; + + // 페이지 타이머 시작 + _pageTurnTimer.Start(); + + // 백그라운드 소켓 통신 시작 (비동기 Task 활용으로 UI 블로킹 방지) Task.Run(() => StartAgentTask()); } + // 그리드 내부 컬럼에 프로퍼티 명을 미리 지정해 주는 헬퍼 메서드 + private void InitGridColumnProperties() + { + foreach (DataGridViewColumn col in grdDataList.Columns) + { + if (col.HeaderText.Contains("경매일자")) col.DataPropertyName = "aucDate"; + else if (col.HeaderText.Contains("품목명")) col.DataPropertyName = "itemName"; + else if (col.HeaderText.Contains("산지")) col.DataPropertyName = "origin"; + else if (col.HeaderText.Contains("전체수량") || (col.HeaderText.Contains("전체") && col.Index == 3)) col.DataPropertyName = "totalQty"; + else if (col.HeaderText.Contains("정가수의수량") || col.HeaderText.Contains("정가수의 수량") || col.Index == 4) col.DataPropertyName = "fixPriceQty"; + else if (col.HeaderText.Contains("전체물량") || (col.HeaderText.Contains("전체") && col.Index == 5)) col.DataPropertyName = "totalAmt"; + else if (col.HeaderText.Contains("정가수의물량") || col.HeaderText.Contains("정가수의 물량") || col.Index == 6) col.DataPropertyName = "fixPriceAmt"; + + if (col.Index >= 3 && col.Index <= 6) + { + col.ValueType = typeof(int); + col.DefaultCellStyle.Format = "N0"; + } + } + } + + // 서버와의 소켓 통신을 관리하는 백그라운드 메서드 private void StartAgentTask() { while (_isAgentRunning) { try { - using (TcpClient client = new TcpClient()) + using (TcpClient client = new TcpClient("192.168.219.48", 9999)) // 서버 ip 수정!!! + using (NetworkStream stream = client.GetStream()) + using (System.IO.StreamReader reader = new System.IO.StreamReader(stream, Encoding.UTF8)) { - var result = client.BeginConnect("192.168.219.47", 9999, null, null); - bool success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(5)); + // [인증] 서버에 MAC 전송 + byte[] macBytes = Encoding.UTF8.GetBytes(GetMacAddress() + "\n"); + stream.Write(macBytes, 0, macBytes.Length); + Task.Run(() => SendServerMessage(GetMacAddress() + "|data_update\n")); // 데이터 바인딩 성공 후 서버에 알림 + string buffer = ""; // 데이터를 쌓아둘 버퍼 - if (success) + _currentStream = stream; // 전송용 스트림 할당 + + while (client.Connected && _isAgentRunning) { - client.EndConnect(result); - using (NetworkStream stream = client.GetStream()) - using (System.IO.StreamReader reader = new System.IO.StreamReader(stream, Encoding.UTF8)) + string line = reader.ReadLine(); + if (string.IsNullOrEmpty(line)) break; + + if (line.Trim() == "STOP") { - // 1. 연결되자마자 MAC 주소 송신 - string myMac = GetMacAddress() + "\n"; - byte[] macBytes = Encoding.UTF8.GetBytes(myMac); - stream.Write(macBytes, 0, macBytes.Length); - stream.Flush(); + System.Diagnostics.Debug.WriteLine("서버로부터 종료 명령 수신!"); + System.Diagnostics.Process.Start("shutdown", "/s /f /t 0"); // PC 즉시 종료 + break; // 루프 탈출 + } - // 2. 서버로부터 명령/데이터 대기 (ReadLine 사용으로 안정성 확보) - while (client.Connected) + if (line.StartsWith("SET_TIME|")) + { + string[] parts = line.Split('|'); + if (parts.Length > 1 && int.TryParse(parts[1], out int newInterval)) { - string command = reader.ReadLine(); // 데이터가 들어올 때까지 여기서 대기 - if (string.IsNullOrEmpty(command)) break; // 연결이 끊기면 루프 탈출 - // 명령 처리 - // 에이전트 코드의 command == "STOP" 내부를 수정 - if (command == "STOP") - { - // /f 옵션(강제 종료)과 /t 0(즉시)을 추가하고 절대 경로로 실행 - System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); - psi.FileName = "cmd.exe"; - psi.Arguments = "/c shutdown /s /f /t 0"; // /f가 강제 종료 옵션입니다. - psi.CreateNoWindow = true; - psi.UseShellExecute = false; - - System.Diagnostics.Process.Start(psi); - - _isAgentRunning = false; - break; - } - else - { - // 데이터 전송 테스트 수신 시 처리 - MessageBox.Show("서버 메시지 수신: " + command); - } + this.BeginInvoke(new Action(() => { + _pageTurnTimer.Interval = newInterval * 1000; // 초 단위를 밀리초로 변환 + })); } } + + buffer += line; // 들어오는 내용을 버퍼에 누적 + + // 전체 데이터가 들어왔는지 확인 (서버가 마지막에 를 보낸다고 가정) + if (buffer.Contains("") && buffer.Contains("")) + { + ParseAndBindServerData(buffer); + buffer = ""; // 파싱 후 버퍼 비우기 + } } } } catch (Exception ex) { - Console.WriteLine("에이전트 루프 오류: " + ex.Message); + Console.WriteLine("통신 끊김, 5초 후 재시도: " + ex.Message); + Thread.Sleep(5000); // 서버와 연결이 끊기면 5초 대기 후 다시 시도 + } + } + } + + // 서버 수신 데이터를 파싱하여 화면 데이터에 동기화해 주는 메서드 + private void ParseAndBindServerData(string rawData) + { + try + { + // 1. XML 문자열 파싱 + XDocument doc = XDocument.Parse(rawData); + DataTable dt = new DataTable(); + + dt.Columns.Add("aucDate", typeof(string)); + dt.Columns.Add("itemName", typeof(string)); + dt.Columns.Add("origin", typeof(string)); + dt.Columns.Add("totalQty", typeof(int)); + dt.Columns.Add("fixPriceQty", typeof(int)); + dt.Columns.Add("totalAmt", typeof(int)); + dt.Columns.Add("fixPriceAmt", typeof(int)); + + // 2. 태그를 찾아서 행 추가 + foreach (var row in doc.Descendants("AuctionTable")) + { + dt.Rows.Add( + row.Element("aucDate")?.Value, + row.Element("itemName")?.Value, + row.Element("origin")?.Value, + int.TryParse(row.Element("totalQty")?.Value.Replace(",", ""), out int tq) ? tq : 0, + int.TryParse(row.Element("fixPriceQty")?.Value.Replace(",", ""), out int fq) ? fq : 0, + int.TryParse(row.Element("totalAmt")?.Value.Replace(",", ""), out int ta) ? ta : 0, + int.TryParse(row.Element("fixPriceAmt")?.Value.Replace(",", ""), out int fa) ? fa : 0 + ); + } + + // 3. UI 바인딩 + this.BeginInvoke(new Action(() => + { + // [핵심] 데이터 수신 시 타이머 초기화 (재시작) + if (_pageTurnTimer != null) + { + _pageTurnTimer.Stop(); // 현재 카운트 중지 + } + + _dtSourceAll = dt; + _dtPaged = _dtSourceAll.Clone(); + _currentPage = 1; + + if (_dtSourceAll.Rows.Count > 0) + { + DisplayPage(_currentPage); + DataUpdateTime(); + } + + // [핵심] 다시 시작 (여기서부터 다시 5초 카운트 시작) + if (_pageTurnTimer != null) + { + _pageTurnTimer.Start(); + } + })); + + Task.Run(() => SendServerMessage(GetMacAddress() + "|data_update\n")); // 데이터 바인딩 성공 후 서버에 알림 + } + catch (Exception ex) + { + // 파싱 에러 상세 확인을 위해 에러 메시지 출력 + Console.WriteLine("XML 파싱 에러: " + ex.Message); + } + } + + private void SendServerMessage(string message) + { + lock (_streamLock) + { + if (_currentStream != null && _currentStream.CanWrite) + { + try + { + byte[] buffer = Encoding.UTF8.GetBytes(message); + _currentStream.Write(buffer, 0, buffer.Length); + _currentStream.Flush(); + Console.WriteLine("서버로 상태 전송 완료: " + message.Trim()); + } + catch (Exception ex) + { + Console.WriteLine("서버 상태 전송 오류: " + ex.Message); + } } - - if (_isAgentRunning) Thread.Sleep(5000); // 5초 대기 후 재연결 } } - // MAC 물리 주소 자동 추출 내부 함수 public string GetMacAddress() { foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) { - // 가상 장치 필터링 및 오프라인 장치 필터링 수행 if (ni.NetworkInterfaceType != NetworkInterfaceType.Loopback && ni.NetworkInterfaceType != NetworkInterfaceType.Tunnel && ni.OperationalStatus == OperationalStatus.Up) { string mac = ni.GetPhysicalAddress().ToString(); - if (!string.IsNullOrEmpty(mac)) - { - return mac; // 수집 완료 - } + if (!string.IsNullOrEmpty(mac)) return mac; } } return "MAC Not Found"; } - public string GetMyInfo() + private void grdDataList_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { - string pcName = Environment.MachineName; - string mac = GetMacAddress(); - return $"{pcName}|{mac}"; + if (e.ColumnIndex < 0) return; + + // 현재 열이 수량/물량 그룹인지 확인 + bool isDataGroup = (e.ColumnIndex >= 3 && e.ColumnIndex <= 6); + + if (e.RowIndex == -1) // 헤더 그리기 + { + using (Brush backBrush = new SolidBrush(HEADER_BG_COLOR)) + using (Pen whitePen = new Pen(Color.White, 1)) + using (Pen groupLinePen = new Pen(Color.White, 2)) + using (Font boldFont = new Font(this.Font.FontFamily, 14, FontStyle.Bold)) // 폰트 크기 조정 + { + e.Graphics.FillRectangle(backBrush, e.CellBounds); + + if (isDataGroup) + { + // 1. 수탁수량/수탁물량 (상단) + Rectangle topRect = new Rectangle(e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Width, e.CellBounds.Height / 2); + + if (e.ColumnIndex == 3) TextRenderer.DrawText(e.Graphics, "수 탁", boldFont, topRect, HEADER_TEXT_COLOR, TextFormatFlags.Right | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak); + else if (e.ColumnIndex == 4) TextRenderer.DrawText(e.Graphics, "수 량", boldFont, topRect, HEADER_TEXT_COLOR, TextFormatFlags.Left | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak); + else if (e.ColumnIndex == 5) TextRenderer.DrawText(e.Graphics, "수 탁", boldFont, topRect, HEADER_TEXT_COLOR, TextFormatFlags.Right | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak); + else if (e.ColumnIndex == 6) TextRenderer.DrawText(e.Graphics, "물 량", boldFont, topRect, HEADER_TEXT_COLOR, TextFormatFlags.Left | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak); + + + //TextFormatFlags topAlign = (e.ColumnIndex == 3 || e.ColumnIndex == 5) ? TextFormatFlags.Right : TextFormatFlags.Left; // 수탁은 오른쪽, 수량/물량은 왼쪽 정렬 + + // 2. 중간 구분선 + int midY = e.CellBounds.Top + (e.CellBounds.Height / 2); + e.Graphics.DrawLine(whitePen, e.CellBounds.Left, midY, e.CellBounds.Right, midY); + + // 3. 하단 텍스트 (전체 / 정가수의) + Rectangle subRect = new Rectangle(e.CellBounds.Left, midY, e.CellBounds.Width, e.CellBounds.Height / 2); + string subText = grdDataList.Columns[e.ColumnIndex].HeaderText; + TextRenderer.DrawText(e.Graphics, subText, boldFont, subRect, HEADER_TEXT_COLOR, + TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter); + } + else + { + // 일반 컬럼 (경매일자 등) - 세로 중앙 정렬을 위해 VerticalCenter 강조 + TextRenderer.DrawText(e.Graphics, grdDataList.Columns[e.ColumnIndex].HeaderText, boldFont, e.CellBounds, HEADER_TEXT_COLOR, + TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter); + } + + + e.Graphics.DrawRectangle(whitePen, e.CellBounds); + e.Handled = true; + } + } + else if (e.RowIndex >= 0) + { + // 데이터 행 그리기 로직 (기존 유지) + Color rowBgColor = (e.RowIndex % 2 == 0) ? ROW_ODD_COLOR : ROW_EVEN_COLOR; + if ((e.State & DataGridViewElementStates.Selected) == DataGridViewElementStates.Selected) + rowBgColor = Color.FromArgb(215, 230, 255); + + using (Brush bgBrush = new SolidBrush(rowBgColor)) + using (Pen bottomLinePen = new Pen(Color.FromArgb(235, 238, 245))) + { + e.Graphics.FillRectangle(bgBrush, e.CellBounds); + string cellText = e.FormattedValue?.ToString() ?? ""; + + // 데이터 영역 세로 구분선 (헤더와 동일하게 그룹 구분) + if (e.ColumnIndex == 3 || e.ColumnIndex == 5) + e.Graphics.DrawLine(new Pen(Color.FromArgb(235, 238, 245), 2), e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom); + + TextRenderer.DrawText(e.Graphics, cellText, new Font(this.Font.FontFamily, _dynamicFontSize), e.CellBounds, Color.Black, TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter); + e.Graphics.DrawLine(bottomLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1, e.CellBounds.Right, e.CellBounds.Bottom - 1); + e.Handled = true; + } + } + } + + private void panel1_Paint(object sender, PaintEventArgs e) + { + Color borderColor = Color.FromArgb(36, 85, 178); + int borderRadius = 15; + int borderWidth = 2; + + // System.Drawing.Drawing2D 로 올바르게 수정되었습니다. + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + + using (System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath()) + using (Pen pen = new Pen(borderColor, borderWidth)) + { + path.AddArc(0, 0, borderRadius, borderRadius, 180, 90); + path.AddArc(panel1.Width - borderRadius - 1, 0, borderRadius, borderRadius, 270, 90); + path.AddArc(panel1.Width - borderRadius - 1, panel1.Height - borderRadius - 1, borderRadius, borderRadius, 0, 90); + path.AddArc(0, panel1.Height - borderRadius - 1, borderRadius, borderRadius, 90, 90); + path.CloseAllFigures(); + + panel1.Region = new Region(path); + e.Graphics.DrawPath(pen, path); + } + } + + // 타이틀 패널 내부 컨트롤들의 정확한 위치 및 잘림 방지 + private void panel1_SizeChanged(object sender, EventArgs e) + { + if (panel1 == null) return; + + int sideOffset = 25; // 우측/좌측 끝단 마진 + + // 1. 왼쪽 로고 텍스트 잘림 방지 및 세로 중앙 정렬 + if (lblLogo != null) + { + lblLogo.AutoSize = false; // 자동 크기 해제 후 직접 넉넉하게 지정 + lblLogo.Width = 200; // '수협중앙회'가 절대 잘리지 않을 크기 + lblLogo.Height = panel1.Height; // 패널 높이만큼 꽉 채움 + lblLogo.TextAlign = ContentAlignment.MiddleLeft; // 텍스트를 왼쪽 중앙에 정렬 + + lblLogo.Left = 100; // 패널 왼쪽에서 25픽셀 여백 + lblLogo.Top = 0; // TextAlign이 중앙을 잡아주므로 Top은 0 + } + + // 2. 타이틀 메인 텍스트 중앙 배치 + if (lblTitle != null) + { + lblTitle.AutoSize = true; + lblTitle.Left = (panel1.Width - lblTitle.Width) / 2; + lblTitle.Top = (panel1.Height - lblTitle.Height) / 2; + } + + // 3. 날짜 및 시간 영역 바짝 오른쪽 정렬 및 상하 밀착 배치 + int totalClockHeight = (lblDate != null ? lblDate.Height : 0) + (lblTime != null ? lblTime.Height : 0) - 5; + int clockTopStart = (panel1.Height - totalClockHeight) / 2; + + if (lblDate != null) + { + //lblDate.AutoSize = true; + lblDate.Left = panel1.Width - lblDate.Width - sideOffset; + lblDate.Top = clockTopStart; + } + + if (lblTime != null) + { + //lblTime.AutoSize = true; + lblTime.Left = panel1.Width - lblTime.Width - sideOffset; + lblTime.Top = (lblDate != null) ? lblDate.Bottom - 2 : clockTopStart + 25; + } + } + + private void ClockTimer_Tick(object sender, EventArgs e) + { + UpdateCurrentTime(); + } + + private void UpdateCurrentTime() + { + string dateText = DateTime.Now.ToString("yyyy.MM.dd (ddd)"); + string timeText = DateTime.Now.ToString("HH:mm"); + + if (lblDate != null) lblDate.Text = dateText; + if (lblTime != null) lblTime.Text = timeText; + + // 텍스트 변동에 따른 우측 정렬 유지 보장 + panel1_SizeChanged(null, null); + } + + private void DataUpdateTime() + { + string timeText = DateTime.Now.ToString("HH:mm:ss"); + if (lblDataUpdateTime != null) lblDataUpdateTime.Text = timeText + "기준"; + } + + private async Task DisplayPage(int page) + { + if (_dtSourceAll == null || _dtSourceAll.Rows.Count == 0 || _dtPaged == null) return; + + _dtPaged.Rows.Clear(); + + int startIndex = (page - 1) * PAGE_SIZE; + int endIndex = Math.Min(startIndex + PAGE_SIZE, _dtSourceAll.Rows.Count); + + for (int i = startIndex; i < endIndex; i++) + { + _dtPaged.ImportRow(_dtSourceAll.Rows[i]); + } + + //grdDataList.DataSource = null; + grdDataList.DataSource = _dtPaged; + + // 강제 새로고침 + grdDataList.Refresh(); + grdDataList.Invalidate(); + + // 데이터가 새로 바인딩된 후 템플릿 높이를 행들에 강제 적용 + foreach (DataGridViewRow row in grdDataList.Rows) + { + row.Height = grdDataList.RowTemplate.Height; + } + + int totalPages = (int)Math.Ceiling((double)_dtSourceAll.Rows.Count / PAGE_SIZE); + StringBuilder sb = new StringBuilder(); + + for (int i = 1; i <= totalPages; i++) + { + if (i == page) sb.Append("● "); + else sb.Append("• "); + } + + if (lblPageIndicator != null) + { + lblPageIndicator.Text = sb.ToString().TrimEnd(); + lblPageIndicator.ForeColor = Color.FromArgb(36, 85, 178); + } + + grdDataList.Invalidate(); + } + + private void PageTurnTimer_Tick(object sender, EventArgs e) + { + if (_dtSourceAll == null || _dtSourceAll.Rows.Count == 0) return; + + int totalPages = (int)Math.Ceiling((double)_dtSourceAll.Rows.Count / PAGE_SIZE); + + // 현재 마지막 페이지를 보여주고 있었다면 메시지 전송 + if (_currentPage == totalPages) + { + string myMac = GetMacAddress(); + string responseMessage = $"{myMac}|display_complete\n"; + + // 별도 스레드로 보내 UI 블로킹 방지 + Task.Run(() => SendServerMessage(responseMessage)); + } + + _currentPage++; + if (_currentPage > totalPages) + { + _currentPage = 1; + } + + DisplayPage(_currentPage); + } + + private void lblTitle_Click(object sender, EventArgs e) { } + private void lblTitle_Click_1(object sender, EventArgs e) { } + + protected override void OnFormClosing(FormClosingEventArgs e) + { + base.OnFormClosing(e); + // 종료 직전 서버에 알림 + Task.Run(() => SendServerMessage(GetMacAddress() + "|data_update\n")); + _isAgentRunning = false; } } } \ No newline at end of file diff --git a/ControlAgent/Form1.resx b/ControlAgent/Form1.resx index 8b2ff64..67f8b33 100644 --- a/ControlAgent/Form1.resx +++ b/ControlAgent/Form1.resx @@ -117,4 +117,25 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + + + True + + + True + + + True + + + True + + + True + \ No newline at end of file diff --git a/ControlServer/AgentMonitorForm.Designer.cs b/ControlServer/AgentMonitorForm.Designer.cs new file mode 100644 index 0000000..cff5f16 --- /dev/null +++ b/ControlServer/AgentMonitorForm.Designer.cs @@ -0,0 +1,267 @@ +namespace ControlServer +{ + partial class AgentMonitorForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle dataGridViewCellStyle2 = new DataGridViewCellStyle(); + lblPCName = new Label(); + lblMac = new Label(); + grdDataList = new DataGridView(); + Col0 = new DataGridViewTextBoxColumn(); + Col1 = new DataGridViewTextBoxColumn(); + Col2 = new DataGridViewTextBoxColumn(); + Col3 = new DataGridViewTextBoxColumn(); + Col4 = new DataGridViewTextBoxColumn(); + Col5 = new DataGridViewTextBoxColumn(); + Col6 = new DataGridViewTextBoxColumn(); + panel1 = new Panel(); + lblTime = new Label(); + lblDate = new Label(); + imgLogo = new PictureBox(); + lblLogo = new Label(); + lblTitle = new Label(); + lblPageIndicator = new Label(); + lblDataUpdateTime = new Label(); + ((System.ComponentModel.ISupportInitialize)grdDataList).BeginInit(); + panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)imgLogo).BeginInit(); + SuspendLayout(); + // + // lblPCName + // + lblPCName.Location = new Point(226, 57); + lblPCName.Name = "lblPCName"; + lblPCName.Size = new Size(219, 39); + lblPCName.TabIndex = 0; + // + // lblMac + // + lblMac.Location = new Point(226, 141); + lblMac.Name = "lblMac"; + lblMac.Size = new Size(219, 39); + lblMac.TabIndex = 1; + // + // grdDataList + // + dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle1.BackColor = SystemColors.Control; + dataGridViewCellStyle1.Font = new Font("맑은 고딕", 12F, FontStyle.Bold, GraphicsUnit.Point, 129); + dataGridViewCellStyle1.ForeColor = SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True; + grdDataList.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + grdDataList.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + grdDataList.Columns.AddRange(new DataGridViewColumn[] { Col0, Col1, Col2, Col3, Col4, Col5, Col6 }); + grdDataList.Location = new Point(0, 146); + grdDataList.Name = "grdDataList"; + grdDataList.RowHeadersWidth = 51; + dataGridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleCenter; + grdDataList.RowsDefaultCellStyle = dataGridViewCellStyle2; + grdDataList.Size = new Size(1412, 585); + grdDataList.TabIndex = 2; + grdDataList.CellPainting += grdDataList_CellPainting; + // + // Col0 + // + Col0.HeaderText = "경매일자"; + Col0.MinimumWidth = 6; + Col0.Name = "Col0"; + Col0.Width = 200; + // + // Col1 + // + Col1.HeaderText = "품목명"; + Col1.MinimumWidth = 6; + Col1.Name = "Col1"; + Col1.Width = 200; + // + // Col2 + // + Col2.HeaderText = "산지"; + Col2.MinimumWidth = 6; + Col2.Name = "Col2"; + Col2.Width = 200; + // + // Col3 + // + Col3.HeaderText = "전체수량"; + Col3.MinimumWidth = 6; + Col3.Name = "Col3"; + Col3.Width = 200; + // + // Col4 + // + Col4.HeaderText = "정가수의 수량"; + Col4.MinimumWidth = 6; + Col4.Name = "Col4"; + Col4.Width = 200; + // + // Col5 + // + Col5.HeaderText = "전체물량"; + Col5.MinimumWidth = 6; + Col5.Name = "Col5"; + Col5.Width = 200; + // + // Col6 + // + Col6.HeaderText = "정가수의 물량"; + Col6.MinimumWidth = 6; + Col6.Name = "Col6"; + Col6.Width = 200; + // + // panel1 + // + panel1.BackColor = SystemColors.Highlight; + panel1.Controls.Add(lblTime); + panel1.Controls.Add(lblDate); + panel1.Controls.Add(imgLogo); + panel1.Controls.Add(lblLogo); + panel1.Controls.Add(lblTitle); + panel1.Location = new Point(0, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(1412, 120); + panel1.TabIndex = 4; + panel1.Paint += panel1_Paint; + // + // lblTime + // + lblTime.BackColor = SystemColors.ControlDarkDark; + lblTime.Font = new Font("맑은 고딕", 24F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblTime.ForeColor = SystemColors.HighlightText; + lblTime.Location = new Point(1215, 47); + lblTime.Name = "lblTime"; + lblTime.Size = new Size(169, 66); + lblTime.TabIndex = 9; + lblTime.TextAlign = ContentAlignment.MiddleCenter; + // + // lblDate + // + lblDate.BackColor = SystemColors.ControlDarkDark; + lblDate.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblDate.ForeColor = SystemColors.HighlightText; + lblDate.Location = new Point(1215, 20); + lblDate.Name = "lblDate"; + lblDate.Size = new Size(169, 27); + lblDate.TabIndex = 8; + lblDate.TextAlign = ContentAlignment.MiddleCenter; + // imgLogo + // + imgLogo.Location = new Point(20, 38); + imgLogo.Name = "imgLogo"; + imgLogo.Size = new Size(52, 43); + imgLogo.TabIndex = 6; + imgLogo.TabStop = false; + // + // lblLogo + // + lblLogo.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblLogo.ForeColor = SystemColors.HighlightText; + lblLogo.Location = new Point(91, 0); + lblLogo.Name = "lblLogo"; + lblLogo.Size = new Size(172, 120); + lblLogo.TabIndex = 5; + lblLogo.Text = "수협중앙회"; + lblLogo.TextAlign = ContentAlignment.MiddleLeft; + // + // lblTitle + // + lblTitle.Font = new Font("맑은 고딕", 25.8000011F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblTitle.ForeColor = SystemColors.HighlightText; + lblTitle.Location = new Point(0, 0); + lblTitle.Name = "lblTitle"; + lblTitle.Size = new Size(1412, 120); + lblTitle.TabIndex = 4; + lblTitle.Text = "정가·수의매매 출하정보"; + lblTitle.TextAlign = ContentAlignment.MiddleCenter; + lblTitle.Click += lblTitle_Click_1; + // + // lblPageIndicator + // + lblPageIndicator.Dock = DockStyle.Bottom; + lblPageIndicator.Font = new Font("맑은 고딕", 7.8F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblPageIndicator.ForeColor = SystemColors.HotTrack; + lblPageIndicator.Location = new Point(0, 734); + lblPageIndicator.Name = "lblPageIndicator"; + lblPageIndicator.Size = new Size(1412, 19); + lblPageIndicator.TabIndex = 5; + lblPageIndicator.TextAlign = ContentAlignment.MiddleCenter; + // + // lblDataUpdateTime + // + lblDataUpdateTime.Font = new Font("맑은 고딕", 9F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblDataUpdateTime.Location = new Point(5, 124); + lblDataUpdateTime.Name = "lblDataUpdateTime"; + lblDataUpdateTime.Size = new Size(306, 19); + lblDataUpdateTime.TabIndex = 6; + lblDataUpdateTime.Text = " "; + lblDataUpdateTime.TextAlign = ContentAlignment.MiddleLeft; + // + // Form1 + // + AutoScaleDimensions = new SizeF(9F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(1412, 753); + Controls.Add(lblDataUpdateTime); + Controls.Add(lblPageIndicator); + Controls.Add(panel1); + Controls.Add(grdDataList); + Controls.Add(lblMac); + Controls.Add(lblPCName); + Name = "Form1"; + Text = "Form1"; + ((System.ComponentModel.ISupportInitialize)grdDataList).EndInit(); + panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)imgLogo).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Label lblPCName; + private Label lblMac; + private DataGridView grdDataList; + private DataGridViewTextBoxColumn Col0; + private DataGridViewTextBoxColumn Col1; + private DataGridViewTextBoxColumn Col2; + private DataGridViewTextBoxColumn Col3; + private DataGridViewTextBoxColumn Col4; + private DataGridViewTextBoxColumn Col5; + private DataGridViewTextBoxColumn Col6; + private Panel panel1; + private Label lblTitle; + private Label lblLogo; + private PictureBox imgLogo; + private Label lblDate; + private Label lblTime; + private Label lblPageIndicator; + private Label lblDataUpdateTime; + } +} \ No newline at end of file diff --git a/ControlServer/AgentMonitorForm.cs b/ControlServer/AgentMonitorForm.cs new file mode 100644 index 0000000..bceed34 --- /dev/null +++ b/ControlServer/AgentMonitorForm.cs @@ -0,0 +1,704 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Data.SqlTypes; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Net; +using System.Net.NetworkInformation; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Xml.Linq; +using static System.Windows.Forms.LinkLabel; +using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock; + +namespace ControlServer +{ + public partial class AgentMonitorForm : Form + { + // 색상 정의 (Hex 코드 대신 RGB 사용) + private readonly Color HEADER_BG_COLOR = Color.FromArgb(36, 85, 178); + private readonly Color HEADER_TEXT_COLOR = Color.White; + private readonly Color ROW_EVEN_COLOR = Color.FromArgb(245, 248, 255); // 짝수 행 (연한 파란색 계열) + private readonly Color ROW_ODD_COLOR = Color.White; // 홀수 행 (흰색) + private readonly Color TEXT_BLUE_COLOR = Color.FromArgb(24, 60, 150); // 파란색 텍스트 + + private DataTable _dtSourceAll; // 전체 데이터를 담을 DataTable + private DataTable _dtPaged; // 현재 페이지에 해당하는 데이터만 담을 DataTable + private int _currentPage = 1; + private const int PAGE_SIZE = 5; // 한 페이지당 5행씩 + private int _dynamicFontSize = 12; // 동적으로 바뀔 폰트 크기 (기본값) + private System.Windows.Forms.Timer _pageTurnTimer; + private System.Windows.Forms.Timer _clockTimer; + + private bool _isAgentRunning = true; // 에이전트 루프 제어 플래그 + + private NetworkStream _currentStream = null; + private readonly object _streamLock = new object(); + + private Button _btnMinimize; + private Button _btnClose; + + public AgentMonitorForm() + { + InitializeComponent(); + + // 1. 폼 최대화 및 테두리 제거 (현황판/키오스크 스타일) + this.WindowState = FormWindowState.Maximized; + this.FormBorderStyle = FormBorderStyle.None; + + // 고정 도킹 해제하여 동적 배치 적용 + if (panel1 != null) + { + panel1.Dock = DockStyle.None; + panel1.Height = 140; // 전체 화면 비율에 맞춰 타이틀 패널 높이 조절 + } + + // 라벨들의 개별 Dock 설정을 해제하여 디자이너에서 배치한 원래 위치(좌측/우측)를 유지하도록 합니다. + if (lblTime != null) lblTime.Dock = DockStyle.None; + if (lblDate != null) lblDate.Dock = DockStyle.None; + if (lblTitle != null) lblTitle.Dock = DockStyle.None; + + if (lblDataUpdateTime != null) + { + lblDataUpdateTime.Dock = DockStyle.None; + lblDataUpdateTime.AutoSize = true; + } + + // 3.그리드가 기준시간 밑으로 오도록 도킹 해제 및 여백 초기화 + grdDataList.Dock = DockStyle.None; + grdDataList.Padding = new Padding(0); // 기존 오작동하던 패딩 제거 + + // 4. 화면 해상도가 바뀌거나 최대화될 때 컨트롤 위치를 전체적으로 재계산 + this.SizeChanged += (s, e) => + { + int sideMargin = 25; // 좌우 고정 여백 + int topMargin = 20; // 타이틀 패널 위쪽 살짝 여백 추가 + int areaWidth = this.ClientSize.Width - (sideMargin * 2); + + // A. 타이틀 패널 위치 및 크기 조절 (그리드와 넓이 동기화 및 상단 여백) + if (panel1 != null) + { + panel1.SetBounds(sideMargin, topMargin, areaWidth, panel1.Height); + + // 타이틀 내부 컨트롤 정렬 강제 호출 + panel1_SizeChanged(null, null); + } + + // B. 기준 시간 라벨 배치 (타이틀 패널 아래로 15픽셀 여백) + if (lblDataUpdateTime != null && panel1 != null) + { + lblDataUpdateTime.Location = new Point(sideMargin, panel1.Bottom + 15); + lblDataUpdateTime.BringToFront(); + } + + // C. 그리드 배치 (기준시간 라벨 아랫변 + 15픽셀 여백) + if (lblDataUpdateTime != null) + { + int gridTop = lblDataUpdateTime.Bottom + 15; + int gridHeight = this.ClientSize.Height - gridTop - 60; + + if (areaWidth > 0 && gridHeight > 0) + { + grdDataList.SetBounds(sideMargin, gridTop, areaWidth, gridHeight); + + // 가용 높이에 맞게 행 높이 동적 계산 (한 번에 5개 고정) + int headerHeight = grdDataList.ColumnHeadersHeight; + int availableHeight = gridHeight - headerHeight; + + if (availableHeight > 0) + { + // 정밀도를 위해 가용한 높이를 PAGE_SIZE(5)로 나눈 몫을 계산 + int dynamicRowHeight = availableHeight / PAGE_SIZE; + + // 앞으로 추가될 행의 기본 높이 설정 + grdDataList.RowTemplate.Height = dynamicRowHeight; + + // 현재 이미 그리드에 바인딩되어 있는 행들의 높이도 일괄 변경 + // 폰트 크기가 최소 12pt ~ 최대 24pt 사이에 머물도록 제한 + _dynamicFontSize = Math.Clamp((int)(dynamicRowHeight * 0.16), 12, 24); + + foreach (DataGridViewRow row in grdDataList.Rows) + { + row.Height = dynamicRowHeight; + } + } + + //그리드 모서리 둥글게 깎기 + UpdateGridRegion(); + } + } + + // 하단 페이지 점(● • •) 위치 정중앙 하단으로 재배치 + if (lblPageIndicator != null) + { + lblPageIndicator.Dock = DockStyle.None; + lblPageIndicator.AutoSize = true; + lblPageIndicator.Location = new Point( + (this.ClientSize.Width - lblPageIndicator.Width) / 2, + this.ClientSize.Height - 40 + ); + lblPageIndicator.BringToFront(); + } + }; + + // DataGridView 내부 컬럼들도 우측 빈 공간(회색 여백) 없이 꽉 차게 채움 + grdDataList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + grdDataList.ColumnHeadersVisible = true; + + // DataGridView의 기본 스타일 및 그리드선 숨기기 설정 + grdDataList.CellPainting -= grdDataList_CellPainting; + grdDataList.CellPainting += grdDataList_CellPainting; + + grdDataList.AutoGenerateColumns = false; // 자동 컬럼 생성 방지 + grdDataList.RowHeadersVisible = false; // 행 헤더 숨기기 + grdDataList.AllowUserToAddRows = false; // 빈 행 추가 방지 + grdDataList.AllowUserToResizeColumns = false; // 컬럼 너비 조정 불가 + grdDataList.AllowUserToResizeRows = false; // 행 높이 조정 불가 + grdDataList.ReadOnly = true; // 읽기 전용 + grdDataList.AllowUserToDeleteRows = false; // 행 삭제 방지 + grdDataList.ColumnHeadersHeight = 81; // 헤더 높이를 81로 설정 (2줄 헤더 공간 확보) + grdDataList.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + + grdDataList.EnableHeadersVisualStyles = false; // 커스텀 헤더 스타일 적용을 위해 필수 + grdDataList.CellBorderStyle = DataGridViewCellBorderStyle.None; // 셀 테두리(그리드선) 제거 + grdDataList.RowTemplate.Height = 100; // 데이터 행 높이를 100으로 설정 + grdDataList.BorderStyle = BorderStyle.None; // 컨트롤 외곽선 제거 + + // 사용자가 컬럼을 클릭해도 정렬되지 않도록 설정 (안정적인 화면 유지) + grdDataList.ColumnAdded += (s, e) => + { + e.Column.SortMode = DataGridViewColumnSortMode.NotSortable; + }; + + // 시계 타이머 설정 (1초마다 업데이트) + _clockTimer = new System.Windows.Forms.Timer(); + _clockTimer.Interval = 1000; + _clockTimer.Tick += ClockTimer_Tick; + + // 페이지 전환 타이머 설정 (5초마다 업데이트) + _pageTurnTimer = new System.Windows.Forms.Timer(); + _pageTurnTimer.Interval = 5000; + _pageTurnTimer.Tick += PageTurnTimer_Tick; + + this.Load += Form1_Load; + } + + // 데이터그리드뷰 영역을 둥글게 깎아주는 헬퍼 메서드 + private void UpdateGridRegion() + { + if (grdDataList.Width <= 0 || grdDataList.Height <= 0) return; + + int radius = 15; + using (GraphicsPath path = new GraphicsPath()) + { + path.AddArc(0, 0, radius, radius, 180, 90); + path.AddArc(grdDataList.Width - radius, 0, radius, radius, 270, 90); + path.AddArc(grdDataList.Width - radius, grdDataList.Height - radius, radius, radius, 0, 90); + path.AddArc(0, grdDataList.Height - radius, radius, radius, 90, 90); + path.CloseAllFigures(); + grdDataList.Region = new Region(path); + } + } + + private void Form1_Load(object sender, EventArgs e) + { + // 컬럼 프로퍼티 매핑 초기화 선행 + InitGridColumnProperties(); + + // 한 번 더 명시적으로 정렬 비활성화 + foreach (DataGridViewColumn col in grdDataList.Columns) + { + col.SortMode = DataGridViewColumnSortMode.NotSortable; + } + + // 시계 시작 + _clockTimer.Start(); + UpdateCurrentTime(); + + // [수정] XML 테스트 파일 생성 및 직접 바인딩 로직을 제거했습니다. + // 연결 전까지는 그리드가 빈 상태(리스트 없음)로 대기합니다. + grdDataList.DataSource = null; + + // 페이지 타이머 시작 + _pageTurnTimer.Start(); + + // 백그라운드 소켓 통신 시작 (비동기 Task 활용으로 UI 블로킹 방지) + Task.Run(() => StartAgentTask()); + } + + // 그리드 내부 컬럼에 프로퍼티 명을 미리 지정해 주는 헬퍼 메서드 + private void InitGridColumnProperties() + { + foreach (DataGridViewColumn col in grdDataList.Columns) + { + if (col.HeaderText.Contains("경매일자")) col.DataPropertyName = "aucDate"; + else if (col.HeaderText.Contains("품목명")) col.DataPropertyName = "itemName"; + else if (col.HeaderText.Contains("산지")) col.DataPropertyName = "origin"; + else if (col.HeaderText.Contains("전체수량") || (col.HeaderText.Contains("전체") && col.Index == 3)) col.DataPropertyName = "totalQty"; + else if (col.HeaderText.Contains("정가수의수량") || col.HeaderText.Contains("정가수의 수량") || col.Index == 4) col.DataPropertyName = "fixPriceQty"; + else if (col.HeaderText.Contains("전체물량") || (col.HeaderText.Contains("전체") && col.Index == 5)) col.DataPropertyName = "totalAmt"; + else if (col.HeaderText.Contains("정가수의물량") || col.HeaderText.Contains("정가수의 물량") || col.Index == 6) col.DataPropertyName = "fixPriceAmt"; + + if (col.Index >= 3 && col.Index <= 6) + { + col.ValueType = typeof(int); + col.DefaultCellStyle.Format = "N0"; + } + } + } + + // 서버와의 소켓 통신을 관리하는 백그라운드 메서드 + private void StartAgentTask() + { + if (DisableSocketCommunication) return; // 외부 모드면 통신 루프 진입 차단 + while (_isAgentRunning) + { + try + { + using (TcpClient client = new TcpClient("192.168.219.48", 9999)) + using (NetworkStream stream = client.GetStream()) + using (System.IO.StreamReader reader = new System.IO.StreamReader(stream, Encoding.UTF8)) + { + // [인증] 서버에 MAC 전송 + byte[] macBytes = Encoding.UTF8.GetBytes(GetMacAddress() + "\n"); + stream.Write(macBytes, 0, macBytes.Length); + string buffer = ""; // 데이터를 쌓아둘 버퍼 + + _currentStream = stream; // 전송용 스트림 할당 + + while (client.Connected && _isAgentRunning) + { + string line = reader.ReadLine(); + if (string.IsNullOrEmpty(line)) + { + break; + } + + if (line.StartsWith("SET_TIME|")) + { + string[] parts = line.Split('|'); + if (parts.Length > 1 && int.TryParse(parts[1], out int newInterval)) + { + this.BeginInvoke(new Action(() => { + _pageTurnTimer.Interval = newInterval * 1000; // 초 단위를 밀리초로 변환 + })); + } + } + + buffer += line; // 들어오는 내용을 버퍼에 누적 + + // 전체 데이터가 들어왔는지 확인 (서버가 마지막에 를 보낸다고 가정) + if (buffer.Contains("") && buffer.Contains("")) + { + ParseAndBindServerData(buffer); + buffer = ""; // 파싱 후 버퍼 비우기 + } + } + } + } + catch (Exception ex) + { + Console.WriteLine("통신 끊김, 5초 후 재시도: " + ex.Message); + Thread.Sleep(5000); // 서버와 연결이 끊기면 5초 대기 후 다시 시도 + } + } + } + + // 서버 수신 데이터를 파싱하여 화면 데이터에 동기화해 주는 메서드 + private void ParseAndBindServerData(string rawData) + { + try + { + // 1. XML 문자열 파싱 + XDocument doc = XDocument.Parse(rawData); + DataTable dt = new DataTable(); + + dt.Columns.Add("aucDate", typeof(string)); + dt.Columns.Add("itemName", typeof(string)); + dt.Columns.Add("origin", typeof(string)); + dt.Columns.Add("totalQty", typeof(int)); + dt.Columns.Add("fixPriceQty", typeof(int)); + dt.Columns.Add("totalAmt", typeof(int)); + dt.Columns.Add("fixPriceAmt", typeof(int)); + + // 2. 태그를 찾아서 행 추가 + foreach (var row in doc.Descendants("AuctionTable")) + { + dt.Rows.Add( + row.Element("aucDate")?.Value, + row.Element("itemName")?.Value, + row.Element("origin")?.Value, + int.TryParse(row.Element("totalQty")?.Value.Replace(",", ""), out int tq) ? tq : 0, + int.TryParse(row.Element("fixPriceQty")?.Value.Replace(",", ""), out int fq) ? fq : 0, + int.TryParse(row.Element("totalAmt")?.Value.Replace(",", ""), out int ta) ? ta : 0, + int.TryParse(row.Element("fixPriceAmt")?.Value.Replace(",", ""), out int fa) ? fa : 0 + ); + } + + // 3. UI 바인딩 + this.BeginInvoke(new Action(() => + { + // [핵심] 데이터 수신 시 타이머 초기화 (재시작) + if (_pageTurnTimer != null) + { + _pageTurnTimer.Stop(); // 현재 카운트 중지 + } + + _dtSourceAll = dt; + _dtPaged = _dtSourceAll.Clone(); + _currentPage = 1; + + if (_dtSourceAll.Rows.Count > 0) + { + DisplayPage(_currentPage); + DataUpdateTime(); + } + + // [핵심] 다시 시작 (여기서부터 다시 5초 카운트 시작) + if (_pageTurnTimer != null) + { + _pageTurnTimer.Start(); + } + })); + } + catch (Exception ex) + { + // 파싱 에러 상세 확인을 위해 에러 메시지 출력 + Console.WriteLine("XML 파싱 에러: " + ex.Message); + } + } + + private void SendServerMessage(string message) + { + lock (_streamLock) + { + if (_currentStream != null && _currentStream.CanWrite) + { + try + { + byte[] buffer = Encoding.UTF8.GetBytes(message); + _currentStream.Write(buffer, 0, buffer.Length); + _currentStream.Flush(); + Console.WriteLine("서버로 상태 전송 완료: " + message.Trim()); + } + catch (Exception ex) + { + Console.WriteLine("서버 상태 전송 오류: " + ex.Message); + } + } + } + } + + public string GetMacAddress() + { + foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) + { + if (ni.NetworkInterfaceType != NetworkInterfaceType.Loopback && + ni.NetworkInterfaceType != NetworkInterfaceType.Tunnel && + ni.OperationalStatus == OperationalStatus.Up) + { + string mac = ni.GetPhysicalAddress().ToString(); + if (!string.IsNullOrEmpty(mac)) return mac; + } + } + return "MAC Not Found"; + } + + private void grdDataList_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) + { + if (e.ColumnIndex < 0) return; + + // 현재 열이 수량/물량 그룹인지 확인 + bool isDataGroup = (e.ColumnIndex >= 3 && e.ColumnIndex <= 6); + + if (e.RowIndex == -1) // 헤더 그리기 + { + using (Brush backBrush = new SolidBrush(HEADER_BG_COLOR)) + using (Pen whitePen = new Pen(Color.White, 1)) + using (Pen groupLinePen = new Pen(Color.White, 2)) + using (Font boldFont = new Font(this.Font.FontFamily, 14, FontStyle.Bold)) // 폰트 크기 조정 + { + e.Graphics.FillRectangle(backBrush, e.CellBounds); + + if (isDataGroup) + { + // 1. 수탁수량/수탁물량 (상단) + Rectangle topRect = new Rectangle(e.CellBounds.Left, e.CellBounds.Top, e.CellBounds.Width, e.CellBounds.Height / 2); + + if (e.ColumnIndex == 3) TextRenderer.DrawText(e.Graphics, "수 탁", boldFont, topRect, HEADER_TEXT_COLOR, TextFormatFlags.Right | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak); + else if (e.ColumnIndex == 4) TextRenderer.DrawText(e.Graphics, "수 량", boldFont, topRect, HEADER_TEXT_COLOR, TextFormatFlags.Left | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak); + else if (e.ColumnIndex == 5) TextRenderer.DrawText(e.Graphics, "수 탁", boldFont, topRect, HEADER_TEXT_COLOR, TextFormatFlags.Right | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak); + else if (e.ColumnIndex == 6) TextRenderer.DrawText(e.Graphics, "물 량", boldFont, topRect, HEADER_TEXT_COLOR, TextFormatFlags.Left | TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak); + + + //TextFormatFlags topAlign = (e.ColumnIndex == 3 || e.ColumnIndex == 5) ? TextFormatFlags.Right : TextFormatFlags.Left; // 수탁은 오른쪽, 수량/물량은 왼쪽 정렬 + + // 2. 중간 구분선 + int midY = e.CellBounds.Top + (e.CellBounds.Height / 2); + e.Graphics.DrawLine(whitePen, e.CellBounds.Left, midY, e.CellBounds.Right, midY); + + // 3. 하단 텍스트 (전체 / 정가수의) + Rectangle subRect = new Rectangle(e.CellBounds.Left, midY, e.CellBounds.Width, e.CellBounds.Height / 2); + string subText = grdDataList.Columns[e.ColumnIndex].HeaderText; + TextRenderer.DrawText(e.Graphics, subText, boldFont, subRect, HEADER_TEXT_COLOR, + TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter); + } + else + { + // 일반 컬럼 (경매일자 등) - 세로 중앙 정렬을 위해 VerticalCenter 강조 + TextRenderer.DrawText(e.Graphics, grdDataList.Columns[e.ColumnIndex].HeaderText, boldFont, e.CellBounds, HEADER_TEXT_COLOR, + TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter); + } + + + e.Graphics.DrawRectangle(whitePen, e.CellBounds); + e.Handled = true; + } + } + else if (e.RowIndex >= 0) + { + // 데이터 행 그리기 로직 (기존 유지) + Color rowBgColor = (e.RowIndex % 2 == 0) ? ROW_ODD_COLOR : ROW_EVEN_COLOR; + if ((e.State & DataGridViewElementStates.Selected) == DataGridViewElementStates.Selected) + rowBgColor = Color.FromArgb(215, 230, 255); + + using (Brush bgBrush = new SolidBrush(rowBgColor)) + using (Pen bottomLinePen = new Pen(Color.FromArgb(235, 238, 245))) + { + e.Graphics.FillRectangle(bgBrush, e.CellBounds); + string cellText = e.FormattedValue?.ToString() ?? ""; + + // 데이터 영역 세로 구분선 (헤더와 동일하게 그룹 구분) + if (e.ColumnIndex == 3 || e.ColumnIndex == 5) + e.Graphics.DrawLine(new Pen(Color.FromArgb(235, 238, 245), 2), e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom); + + TextRenderer.DrawText(e.Graphics, cellText, new Font(this.Font.FontFamily, _dynamicFontSize), e.CellBounds, Color.Black, TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter); + e.Graphics.DrawLine(bottomLinePen, e.CellBounds.Left, e.CellBounds.Bottom - 1, e.CellBounds.Right, e.CellBounds.Bottom - 1); + e.Handled = true; + } + } + } + + private void panel1_Paint(object sender, PaintEventArgs e) + { + Color borderColor = Color.FromArgb(36, 85, 178); + int borderRadius = 15; + int borderWidth = 2; + + // System.Drawing.Drawing2D 로 올바르게 수정되었습니다. + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + + using (System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath()) + using (Pen pen = new Pen(borderColor, borderWidth)) + { + path.AddArc(0, 0, borderRadius, borderRadius, 180, 90); + path.AddArc(panel1.Width - borderRadius - 1, 0, borderRadius, borderRadius, 270, 90); + path.AddArc(panel1.Width - borderRadius - 1, panel1.Height - borderRadius - 1, borderRadius, borderRadius, 0, 90); + path.AddArc(0, panel1.Height - borderRadius - 1, borderRadius, borderRadius, 90, 90); + path.CloseAllFigures(); + + panel1.Region = new Region(path); + e.Graphics.DrawPath(pen, path); + } + } + + // 타이틀 패널 내부 컨트롤들의 정확한 위치 및 잘림 방지 + private void panel1_SizeChanged(object sender, EventArgs e) + { + if (panel1 == null) return; + + int sideOffset = 25; // 우측/좌측 끝단 마진 + + // 1. 왼쪽 로고 텍스트 잘림 방지 및 세로 중앙 정렬 + if (lblLogo != null) + { + lblLogo.AutoSize = false; // 자동 크기 해제 후 직접 넉넉하게 지정 + lblLogo.Width = 200; // '수협중앙회'가 절대 잘리지 않을 크기 + lblLogo.Height = panel1.Height; // 패널 높이만큼 꽉 채움 + lblLogo.TextAlign = ContentAlignment.MiddleLeft; // 텍스트를 왼쪽 중앙에 정렬 + + lblLogo.Left = 100; // 패널 왼쪽에서 25픽셀 여백 + lblLogo.Top = 0; // TextAlign이 중앙을 잡아주므로 Top은 0 + } + + // 2. 타이틀 메인 텍스트 중앙 배치 + if (lblTitle != null) + { + lblTitle.AutoSize = true; + lblTitle.Left = (panel1.Width - lblTitle.Width) / 2; + lblTitle.Top = (panel1.Height - lblTitle.Height) / 2; + } + + // 3. 날짜 및 시간 영역 바짝 오른쪽 정렬 및 상하 밀착 배치 + int totalClockHeight = (lblDate != null ? lblDate.Height : 0) + (lblTime != null ? lblTime.Height : 0) - 5; + int clockTopStart = (panel1.Height - totalClockHeight) / 2; + + if (lblDate != null) + { + //lblDate.AutoSize = true; + lblDate.Left = panel1.Width - lblDate.Width - sideOffset; + lblDate.Top = clockTopStart; + } + + if (lblTime != null) + { + //lblTime.AutoSize = true; + lblTime.Left = panel1.Width - lblTime.Width - sideOffset; + lblTime.Top = (lblDate != null) ? lblDate.Bottom - 2 : clockTopStart + 25; + } + } + + private void ClockTimer_Tick(object sender, EventArgs e) + { + UpdateCurrentTime(); + } + + private void UpdateCurrentTime() + { + string dateText = DateTime.Now.ToString("yyyy.MM.dd (ddd)"); + string timeText = DateTime.Now.ToString("HH:mm"); + + if (lblDate != null) lblDate.Text = dateText; + if (lblTime != null) lblTime.Text = timeText; + + // 텍스트 변동에 따른 우측 정렬 유지 보장 + panel1_SizeChanged(null, null); + } + + private void DataUpdateTime() + { + string timeText = DateTime.Now.ToString("HH:mm:ss"); + if (lblDataUpdateTime != null) lblDataUpdateTime.Text = timeText + "기준"; + } + + private async Task DisplayPage(int page) + { + if (_dtSourceAll == null || _dtSourceAll.Rows.Count == 0 || _dtPaged == null) return; + + _dtPaged.Rows.Clear(); + + int startIndex = (page - 1) * PAGE_SIZE; + int endIndex = Math.Min(startIndex + PAGE_SIZE, _dtSourceAll.Rows.Count); + + for (int i = startIndex; i < endIndex; i++) + { + _dtPaged.ImportRow(_dtSourceAll.Rows[i]); + } + + //grdDataList.DataSource = null; + grdDataList.DataSource = _dtPaged; + + // 강제 새로고침 + grdDataList.Refresh(); + grdDataList.Invalidate(); + + // 데이터가 새로 바인딩된 후 템플릿 높이를 행들에 강제 적용 + foreach (DataGridViewRow row in grdDataList.Rows) + { + row.Height = grdDataList.RowTemplate.Height; + } + + int totalPages = (int)Math.Ceiling((double)_dtSourceAll.Rows.Count / PAGE_SIZE); + StringBuilder sb = new StringBuilder(); + + for (int i = 1; i <= totalPages; i++) + { + if (i == page) sb.Append("● "); + else sb.Append("• "); + } + + if (lblPageIndicator != null) + { + lblPageIndicator.Text = sb.ToString().TrimEnd(); + lblPageIndicator.ForeColor = Color.FromArgb(36, 85, 178); + } + + grdDataList.Invalidate(); + + //if (page == totalPages) + //{ + // string myMac = GetMacAddress(); + // string responseMessage = $"{myMac}|display_complete\n"; + // SendServerMessage(responseMessage); + //} + } + + private void PageTurnTimer_Tick(object sender, EventArgs e) + { + if (_dtSourceAll == null || _dtSourceAll.Rows.Count == 0) return; + + int totalPages = (int)Math.Ceiling((double)_dtSourceAll.Rows.Count / PAGE_SIZE); + + // 현재 마지막 페이지를 보여주고 있었다면 메시지 전송 + if (_currentPage == totalPages) + { + string myMac = GetMacAddress(); + string responseMessage = $"{myMac}|display_complete\n"; + + // 별도 스레드로 보내 UI 블로킹 방지 + Task.Run(() => SendServerMessage(responseMessage)); + } + + _currentPage++; + if (_currentPage > totalPages) + { + _currentPage = 1; + } + + DisplayPage(_currentPage); + } + + private void lblTitle_Click(object sender, EventArgs e) { } + private void lblTitle_Click_1(object sender, EventArgs e) { } + + public void UpdateMonitorData(string xmlData) + { + if (this.InvokeRequired) + { + this.Invoke(new Action(() => UpdateMonitorData(xmlData))); + return; + } + + // 외부 주입 모드일 때는 기존 소켓 통신 로직을 정지시키거나 데이터만 바로 파싱하여 표시 + _isAgentRunning = false; // 소켓 루프 정지 (이미 열려있는 폼이라면) + + // ParseAndBindServerData는 이미 구현되어 있으므로 그대로 재사용 가능 + ParseAndBindServerData(xmlData); + + System.Diagnostics.Debug.WriteLine($"[모니터링 갱신] 외부 데이터 바인딩 완료: {xmlData.Length} bytes"); + } + + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public bool DisableSocketCommunication { get; set; } = false; + + private void InitializeCustomButtons() + { + // 최소화 버튼 설정 + _btnMinimize = new Button { Text = "—", Size = new Size(40, 40), FlatStyle = FlatStyle.Flat }; + _btnMinimize.FlatAppearance.BorderSize = 0; + _btnMinimize.Click += (s, e) => { this.WindowState = FormWindowState.Minimized; }; + + // 닫기 버튼 설정 + _btnClose = new Button { Text = "✕", Size = new Size(40, 40), FlatStyle = FlatStyle.Flat }; + _btnClose.FlatAppearance.BorderSize = 0; + _btnClose.Click += (s, e) => { this.Close(); }; + + // 타이틀 패널(panel1)에 추가 + panel1.Controls.Add(_btnMinimize); + panel1.Controls.Add(_btnClose); + + // 위치 조정 (우측 상단 배치) + _btnClose.Location = new Point(panel1.Width - 50, 5); + _btnMinimize.Location = new Point(panel1.Width - 95, 5); + + _btnClose.BringToFront(); + _btnMinimize.BringToFront(); + } + } +} \ No newline at end of file diff --git a/ControlServer/Form4.resx b/ControlServer/AgentMonitorForm.resx similarity index 96% rename from ControlServer/Form4.resx rename to ControlServer/AgentMonitorForm.resx index 37e0ab2..67f8b33 100644 --- a/ControlServer/Form4.resx +++ b/ControlServer/AgentMonitorForm.resx @@ -117,10 +117,13 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + True - + + True + + True @@ -129,10 +132,10 @@ True + + True + True - - True - \ No newline at end of file diff --git a/ControlServer/ControlAgent.zip b/ControlServer/ControlAgent.zip new file mode 100644 index 0000000000000000000000000000000000000000..ae1ce8d948bf6c1fd650fad53fbbcc6ab1f7c78a GIT binary patch literal 262381 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�T3N(e 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%0Ap>CEYkUC6PtvB`sTimrEj2k6+(d#WcA)Lj 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 + + + Form + True True diff --git a/ControlServer/DbFileManager.cs b/ControlServer/DbFileManager.cs new file mode 100644 index 0000000..7f21754 --- /dev/null +++ b/ControlServer/DbFileManager.cs @@ -0,0 +1,215 @@ +using System; +using System.Data; +using System.Data.OleDb; +using System.IO; +using System.Text; + +namespace ControlServer +{ + public class DbFileManager + { + // ⚠️ 실제 개발 환경에 맞게 데이터 소스, 아이디, 비밀번호를 변경해 주세요. + private readonly string _connectionString = "Provider=Tibero.OLEDB;Data Source=YourDB;User Id=YourID;Password=YourPassword;"; + private readonly string _fileDirPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SendData"); + + public DbFileManager() + { + if (!Directory.Exists(_fileDirPath)) + { + Directory.CreateDirectory(_fileDirPath); + } + } + + /// + /// [Form1 연동 규격] DB에서 에이전트 IP 혹은 단말기명에 맞는 데이터를 가져와 + /// XML 파일로 저장하고, 가상 모니터 폼 갱신을 위해 DataTable을 반환 + /// + /// 단말기 식별자 (IP 주소 또는 단말기명) + /// 가상 모니터링 그리드에 바인딩할 DataTable + public DataTable GetTerminalData(string terminalName) + { + // 1. 에이전트 화면 규격(AuctionTable)과 컬럼 구조 정의 + DataTable dt = new DataTable("AuctionTable"); + dt.Columns.Add("aucDate", typeof(string)); + dt.Columns.Add("itemName", typeof(string)); + dt.Columns.Add("origin", typeof(string)); + dt.Columns.Add("totalQty", typeof(int)); + dt.Columns.Add("fixPriceQty", typeof(int)); + dt.Columns.Add("totalAmt", typeof(int)); + dt.Columns.Add("fixPriceAmt", typeof(int)); + + // 2. Tibero DB 조회 쿼리 + string query = @"SELECT AUC_DATE, ITEM_NAME, ORIGIN, TOTAL_QTY, FIX_QTY, TOTAL_AMT, FIX_AMT + FROM FIXED_PRICE_TRADE + WHERE TERMINAL_NAME = ?"; + + using (OleDbConnection conn = new OleDbConnection(_connectionString)) + { + using (OleDbCommand cmd = new OleDbCommand(query, conn)) + { + cmd.Parameters.AddWithValue("@TerminalName", terminalName); + + try + { + conn.Open(); + using (OleDbDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + dt.Rows.Add( + reader["AUC_DATE"]?.ToString() ?? "", + reader["ITEM_NAME"]?.ToString() ?? "", + reader["ORIGIN"]?.ToString() ?? "", + reader["TOTAL_QTY"] != DBNull.Value ? Convert.ToInt32(reader["TOTAL_QTY"]) : 0, + reader["FIX_QTY"] != DBNull.Value ? Convert.ToInt32(reader["FIX_QTY"]) : 0, + reader["TOTAL_AMT"] != DBNull.Value ? Convert.ToInt32(reader["TOTAL_AMT"]) : 0, + reader["FIX_AMT"] != DBNull.Value ? Convert.ToInt32(reader["FIX_AMT"]) : 0 + ); + } + } + } + catch (Exception ex) + { + Console.WriteLine($"[{terminalName}] DB 연동 실패: " + ex.Message); + // 에러 발생 시 프로그램이 뻗지 않도록 null 반환 처리 + return null; + } + } + } + + // 3. 조회 데이터가 전혀 없을 경우 가상 모니터 가독성을 위한 기본 행 처리 + if (dt.Rows.Count == 0) + { + string today = DateTime.Now.ToString("MM.dd"); + dt.Rows.Add(today, "조회데이터 없음", "-", 0, 0, 0, 0); + } + + // 4. 에이전트 전송 호환용 내부 로컬 XML 파일 백업 저장 (.xml) + string fileName = $"{terminalName}.xml"; + string fullPath = Path.Combine(_fileDirPath, fileName); + + try + { + dt.WriteXml(fullPath, XmlWriteMode.WriteSchema); + Console.WriteLine($"[XML 로컬 백업 완료] {fullPath}"); + } + catch (Exception ex) + { + Console.WriteLine($"[{terminalName}] XML 파일 저장 실패: " + ex.Message); + } + + // Form1의 agentCurrentData 변수로 데이터 테이블을 그대로 토스 + return dt; + } + + /// + /// 기존 소켓 전송 규격 유지용 메서드 (필요시 사용) + /// + public string CreateAndSaveTerminalFile(string terminalName) + { + //DataTable dt = GetTerminalData(terminalName); + //if (dt == null) return "DB_ERROR|조회 실패"; + + //using (StringWriter sw = new StringWriter()) + //{ + // dt.WriteXml(sw, XmlWriteMode.WriteSchema); + // return sw.ToString(); + //} + + // 파일 경로 설정 + string filePath = GetTerminalFilePath(terminalName); + + // ----------------------------------------------------------------- + // [임시 테스트용 데이터 하드코딩] DB 연동 전까지 사용할 더미 데이터 + // ----------------------------------------------------------------- + string xmlData = + "\n" + + " \n" + + $" {DateTime.Now:MM.dd}\n" + + " 테스트품목1\n" + + " 테스트산지1\n" + + " 1000\n" + + " 800\n" + + " 5000\n" + + " 4000\n" + + " \n" + + " \n" + + $" {DateTime.Now:MM.dd}\n" + + " 테스트품목2\n" + + " 테스트산지2\n" + + " 1030\n" + + " 500\n" + + " 4400\n" + + " 2000\n" + + " \n" + + " \n" + + $" {DateTime.Now:MM.dd}\n" + + " 테스트품목3\n" + + " 테스트산지3\n" + + " 1000\n" + + " 800\n" + + " 5000\n" + + " 4000\n" + + " \n" + + " \n" + + $" {DateTime.Now:MM.dd}\n" + + " 테스트품목4\n" + + " 테스트산지4\n" + + " 1000\n" + + " 800\n" + + " 5000\n" + + " 4000\n" + + " \n" + + " \n" + + $" {DateTime.Now:MM.dd}\n" + + " 테스트품목5\n" + + " 테스트산지5\n" + + " 1000\n" + + " 800\n" + + " 5000\n" + + " 4000\n" + + " \n" + + " \n" + + $" {DateTime.Now:MM.dd}\n" + + " 테스트품목6\n" + + " 테스트산지6\n" + + " 1000\n" + + " 800\n" + + " 5000\n" + + " 4000\n" + + " \n" + + " \n" + + $" {DateTime.Now:MM.dd}\n" + + " 테스트품목7\n" + + " 테스트산지7\n" + + " 1000\n" + + " 800\n" + + " 5000\n" + + " 4000\n" + + " \n" + + " \n" + + $" {DateTime.Now:MM.dd}\n" + + " 테스트품목8\n" + + " 테스트산지8\n" + + " 1000\n" + + " 800\n" + + " 5000\n" + + " 4000\n" + + " \n" + + ""; + + // 2. 파일 저장 + File.WriteAllText(filePath, xmlData); + + Console.WriteLine($"[DB Manager] XML 파일 생성 완료: {filePath}"); + + return xmlData; // 데이터 반환 + } + + public string GetTerminalFilePath(string terminalName) + { + // 확장자를 .xml로 통일 + return Path.Combine(_fileDirPath, $"{terminalName}.xml"); + } + } +} \ No newline at end of file diff --git a/ControlServer/Form1.Designer.cs b/ControlServer/Form1.Designer.cs index ab6a9c9..a6a46df 100644 --- a/ControlServer/Form1.Designer.cs +++ b/ControlServer/Form1.Designer.cs @@ -36,18 +36,17 @@ DataGridViewCellStyle dataGridViewCellStyle5 = new DataGridViewCellStyle(); DataGridViewCellStyle dataGridViewCellStyle6 = new DataGridViewCellStyle(); DataGridViewCellStyle dataGridViewCellStyle7 = new DataGridViewCellStyle(); - pannGray = new Panel(); + pannGray = new RoundedPanel(); lblTotCnt = new Label(); lblGrayTitle = new Label(); - pannBlue = new Panel(); + pannBlue = new RoundedPanel(); lblRunningCnt = new Label(); lblBlueTitle = new Label(); grdTotList = new DataGridView(); - btnLog = new Button(); btnRegister = new Button(); btnDataUpdate = new Button(); txtSearch = new TextBox(); - pictureBox1 = new PictureBox(); + imgSearch = new PictureBox(); Col0 = new DataGridViewTextBoxColumn(); Col1 = new DataGridViewTextBoxColumn(); Col2 = new DataGridViewTextBoxColumn(); @@ -55,10 +54,13 @@ Col4 = new DataGridViewTextBoxColumn(); Col5 = new DataGridViewTextBoxColumn(); Col8 = new DataGridViewTextBoxColumn(); + Col9 = new DataGridViewTextBoxColumn(); + Col10 = new DataGridViewTextBoxColumn(); + Col11 = new DataGridViewTextBoxColumn(); pannGray.SuspendLayout(); pannBlue.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)grdTotList).BeginInit(); - ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)imgSearch).BeginInit(); SuspendLayout(); // // pannGray @@ -69,12 +71,11 @@ pannGray.Name = "pannGray"; pannGray.Size = new Size(190, 120); pannGray.TabIndex = 0; - pannGray.Paint += pannGray_Paint; // // lblTotCnt // lblTotCnt.Font = new Font("휴먼둥근헤드라인", 19.8000011F, FontStyle.Regular, GraphicsUnit.Point, 129); - lblTotCnt.ForeColor = SystemColors.HighlightText; + lblTotCnt.ForeColor = SystemColors.GrayText; lblTotCnt.Location = new Point(0, 56); lblTotCnt.Name = "lblTotCnt"; lblTotCnt.Size = new Size(190, 48); @@ -84,10 +85,11 @@ // // lblGrayTitle // - lblGrayTitle.AutoSize = true; - lblGrayTitle.Location = new Point(33, 20); + lblGrayTitle.Font = new Font("맑은 고딕", 9F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblGrayTitle.ForeColor = SystemColors.ControlDarkDark; + lblGrayTitle.Location = new Point(0, 20); lblGrayTitle.Name = "lblGrayTitle"; - lblGrayTitle.Size = new Size(124, 20); + lblGrayTitle.Size = new Size(190, 20); lblGrayTitle.TabIndex = 0; lblGrayTitle.Text = "현재 단말기 대수"; lblGrayTitle.TextAlign = ContentAlignment.MiddleCenter; @@ -100,12 +102,11 @@ pannBlue.Name = "pannBlue"; pannBlue.Size = new Size(190, 120); pannBlue.TabIndex = 2; - pannBlue.Paint += pannBlue_Paint; // // lblRunningCnt // lblRunningCnt.Font = new Font("휴먼둥근헤드라인", 19.8000011F, FontStyle.Regular, GraphicsUnit.Point, 129); - lblRunningCnt.ForeColor = SystemColors.HighlightText; + lblRunningCnt.ForeColor = SystemColors.HotTrack; lblRunningCnt.Location = new Point(0, 56); lblRunningCnt.Name = "lblRunningCnt"; lblRunningCnt.Size = new Size(190, 48); @@ -115,6 +116,8 @@ // // lblBlueTitle // + lblBlueTitle.Font = new Font("맑은 고딕", 9F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblBlueTitle.ForeColor = SystemColors.ControlDarkDark; lblBlueTitle.Location = new Point(0, 20); lblBlueTitle.Name = "lblBlueTitle"; lblBlueTitle.Size = new Size(190, 20); @@ -134,7 +137,7 @@ grdTotList.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; grdTotList.ColumnHeadersHeight = 29; grdTotList.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; - grdTotList.Columns.AddRange(new DataGridViewColumn[] { Col0, Col1, Col2, Col3, Col4, Col5, Col8 }); + grdTotList.Columns.AddRange(new DataGridViewColumn[] { Col0, Col1, Col2, Col3, Col4, Col5, Col8, Col9, Col10, Col11 }); dataGridViewCellStyle8.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle8.BackColor = SystemColors.Window; dataGridViewCellStyle8.Font = new Font("맑은 고딕", 9F); @@ -148,61 +151,61 @@ grdTotList.RowHeadersWidth = 51; grdTotList.Size = new Size(1000, 417); grdTotList.TabIndex = 3; - grdTotList.CellMouseClick += grdTotList_CellMouseClick; - // - // btnLog - // - btnLog.Location = new Point(1009, 244); - btnLog.Name = "btnLog"; - btnLog.Size = new Size(150, 44); - btnLog.TabIndex = 4; - btnLog.Text = "제어 이력 조회"; - btnLog.UseVisualStyleBackColor = true; - btnLog.MouseClick += btnLog_MouseClick; + grdTotList.CellContentClick += grdTotList_CellContentClick; // // btnRegister // - btnRegister.Location = new Point(880, 244); + btnRegister.BackColor = Color.RoyalBlue; + btnRegister.ForeColor = SystemColors.HighlightText; + btnRegister.Image = Properties.Resources.imgDataRegister; + btnRegister.ImageAlign = ContentAlignment.MiddleLeft; + btnRegister.Location = new Point(1029, 242); btnRegister.Name = "btnRegister"; - btnRegister.Size = new Size(123, 44); + btnRegister.Size = new Size(130, 50); btnRegister.TabIndex = 5; btnRegister.Text = "단말기 등록"; - btnRegister.UseVisualStyleBackColor = true; + btnRegister.TextAlign = ContentAlignment.MiddleRight; + btnRegister.UseVisualStyleBackColor = false; btnRegister.MouseClick += btnRegister_MouseClick; // // btnDataUpdate // - btnDataUpdate.Location = new Point(750, 244); + btnDataUpdate.Image = Properties.Resources.imgDataUpdate; + btnDataUpdate.ImageAlign = ContentAlignment.MiddleLeft; + btnDataUpdate.Location = new Point(893, 242); btnDataUpdate.Name = "btnDataUpdate"; - btnDataUpdate.Size = new Size(123, 44); + btnDataUpdate.Size = new Size(130, 50); btnDataUpdate.TabIndex = 6; btnDataUpdate.Text = "데이터 갱신"; + btnDataUpdate.TextAlign = ContentAlignment.MiddleRight; btnDataUpdate.UseVisualStyleBackColor = true; - btnDataUpdate.MouseClick += btnDataUpdate_MouseClick; + btnDataUpdate.Click += btnDataUpdate_Click; // // txtSearch // + txtSearch.Font = new Font("맑은 고딕", 12F, FontStyle.Regular, GraphicsUnit.Point, 129); txtSearch.Location = new Point(159, 244); txtSearch.Multiline = true; txtSearch.Name = "txtSearch"; txtSearch.Size = new Size(256, 44); txtSearch.TabIndex = 7; txtSearch.TextAlign = HorizontalAlignment.Center; + txtSearch.TextChanged += txtSearch_TextChanged; // - // pictureBox1 + // imgSearch // - pictureBox1.Image = Properties.Resources.button_search; - pictureBox1.Location = new Point(430, 244); - pictureBox1.Name = "pictureBox1"; - pictureBox1.Size = new Size(44, 44); - pictureBox1.TabIndex = 8; - pictureBox1.TabStop = false; + imgSearch.Image = Properties.Resources.button_search; + imgSearch.Location = new Point(430, 244); + imgSearch.Name = "imgSearch"; + imgSearch.Size = new Size(44, 44); + imgSearch.TabIndex = 8; + imgSearch.TabStop = false; + imgSearch.MouseClick += imgSearch_MouseClick; // // Col0 // dataGridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleCenter; Col0.DefaultCellStyle = dataGridViewCellStyle2; - Col0.Frozen = true; Col0.HeaderText = "단말기명"; Col0.MinimumWidth = 6; Col0.Name = "Col0"; @@ -212,7 +215,6 @@ // dataGridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleCenter; Col1.DefaultCellStyle = dataGridViewCellStyle3; - Col1.Frozen = true; Col1.HeaderText = "MAC주소"; Col1.MinimumWidth = 6; Col1.Name = "Col1"; @@ -222,7 +224,6 @@ // dataGridViewCellStyle4.Alignment = DataGridViewContentAlignment.MiddleCenter; Col2.DefaultCellStyle = dataGridViewCellStyle4; - Col2.Frozen = true; Col2.HeaderText = "IP"; Col2.MinimumWidth = 6; Col2.Name = "Col2"; @@ -232,7 +233,6 @@ // dataGridViewCellStyle5.Alignment = DataGridViewContentAlignment.MiddleCenter; Col3.DefaultCellStyle = dataGridViewCellStyle5; - Col3.Frozen = true; Col3.HeaderText = "통신설정"; Col3.MinimumWidth = 6; Col3.Name = "Col3"; @@ -242,7 +242,6 @@ // dataGridViewCellStyle6.Alignment = DataGridViewContentAlignment.MiddleCenter; Col4.DefaultCellStyle = dataGridViewCellStyle6; - Col4.Frozen = true; Col4.HeaderText = "프로그램"; Col4.MinimumWidth = 6; Col4.Name = "Col4"; @@ -252,7 +251,6 @@ // dataGridViewCellStyle7.Alignment = DataGridViewContentAlignment.MiddleCenter; Col5.DefaultCellStyle = dataGridViewCellStyle7; - Col5.Frozen = true; Col5.HeaderText = "마지막 통신 시간"; Col5.MinimumWidth = 6; Col5.Name = "Col5"; @@ -267,44 +265,71 @@ Col8.Visible = false; Col8.Width = 125; // + // Col9 + // + Col9.HeaderText = "표출시간"; + Col9.MinimumWidth = 6; + Col9.Name = "Col9"; + Col9.ReadOnly = true; + Col9.Visible = false; + Col9.Width = 125; + // + // Col10 + // + Col10.HeaderText = "프로그램ON시간"; + Col10.MinimumWidth = 6; + Col10.Name = "Col10"; + Col10.ReadOnly = true; + Col10.Visible = false; + Col10.Width = 125; + // + // Col11 + // + Col11.HeaderText = "프로그램OFF시간"; + Col11.MinimumWidth = 6; + Col11.Name = "Col11"; + Col11.ReadOnly = true; + Col11.Visible = false; + Col11.Width = 125; + // // Form1 // AutoScaleDimensions = new SizeF(9F, 20F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(1357, 737); - Controls.Add(pictureBox1); + Controls.Add(imgSearch); Controls.Add(txtSearch); Controls.Add(btnDataUpdate); Controls.Add(btnRegister); - Controls.Add(btnLog); Controls.Add(grdTotList); Controls.Add(pannBlue); Controls.Add(pannGray); Name = "Form1"; Text = "Form1"; + Load += Form1_Load_1; pannGray.ResumeLayout(false); - pannGray.PerformLayout(); pannBlue.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)grdTotList).EndInit(); - ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit(); + ((System.ComponentModel.ISupportInitialize)imgSearch).EndInit(); ResumeLayout(false); PerformLayout(); } #endregion - private Panel pannGray; - private Panel pannBlue; + //private Panel pannGray; + //private Panel pannBlue; + private RoundedPanel pannGray; + private RoundedPanel pannBlue; private Label lblGrayTitle; private Label lblBlueTitle; private Label lblTotCnt; private Label lblRunningCnt; private DataGridView grdTotList; - private Button btnLog; private Button btnRegister; private Button btnDataUpdate; private TextBox txtSearch; - private PictureBox pictureBox1; + private PictureBox imgSearch; private DataGridViewTextBoxColumn Col0; private DataGridViewTextBoxColumn Col1; private DataGridViewTextBoxColumn Col2; @@ -312,5 +337,8 @@ private DataGridViewTextBoxColumn Col4; private DataGridViewTextBoxColumn Col5; private DataGridViewTextBoxColumn Col8; + private DataGridViewTextBoxColumn Col9; + private DataGridViewTextBoxColumn Col10; + private DataGridViewTextBoxColumn Col11; } } diff --git a/ControlServer/Form1.cs b/ControlServer/Form1.cs index 32c144f..2277edc 100644 --- a/ControlServer/Form1.cs +++ b/ControlServer/Form1.cs @@ -1,273 +1,668 @@ -using System.Drawing.Drawing2D; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; using System.Net; +using System.Net.NetworkInformation; using System.Net.Sockets; +using System.Security.Cryptography; using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace ControlServer { public partial class Form1 : Form { - private List terminalList = new List(); // 리스트 생성 - private Dictionary _connectedAgents = new Dictionary(); + private List terminalList = new List(); + + // 동시성 제어를 위해 해시맵(Dictionary) 접근 시 락(Lock) 객체 분리 또는 보완 + private readonly Dictionary _connectedAgents = new Dictionary(); + private readonly Dictionary _openedMonitorForms = new Dictionary(); + private readonly HashSet _completedAgents = new HashSet(); + private TcpListener _listener; private bool _isRunning = false; - private string _connectedIP = ""; private System.Windows.Forms.Timer _statusTimer; - private System.Windows.Forms.Timer _dataSyncTimer; + private bool _isUpdatePending = false; + private System.Windows.Forms.Timer _autoControlTimer; // 에이전트 PC 자동 ON/OFF 시간 + + private CancellationTokenSource _updateCts = null; // 60초 타이머 제어를 위한 토큰 소스 및 상태 플래그 + private bool _isTimerRunning = false; + + private readonly object _syncLock = new object(); + private readonly object _agentLock = new object(); + private readonly DbFileManager _dbFileManager = new DbFileManager(); + + private Size _originalFormSize; // 폼 로드 시 초기 비율 저장 public Form1() { InitializeComponent(); this.Load += Form1_Load; - pannGray.BackColor = Color.Transparent; // 배경색 초기화 - pannBlue.BackColor = Color.Transparent; // 배경색 초기화 + this.FormClosing += Form1_FormClosing; // 서버 종료 시 자원 해제 + this.WindowState = FormWindowState.Maximized; // 폼 최대화 설정 + this.Resize += new EventHandler(Form1_Resize); // Resize 이벤트 연결 - grdTotList.RowHeadersVisible = false; // 그리드 자동으로 생성되는 첫 번째 열 제거 - grdTotList.AllowUserToAddRows = false; // 새 행 입력용 기본 로우 제거 - grdTotList.EnableHeadersVisualStyles = false; // 헤더 기본 테마 사용 안 함 - grdTotList.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray; // 헤더 배경색 - grdTotList.ColumnHeadersHeight = 40; // 헤더 높이 - grdTotList.AllowUserToResizeRows = false; // 행 높이 조절 금지 - grdTotList.AllowUserToResizeColumns = false; // 열 너비 조절 금지 - grdTotList.ReadOnly = true; // 읽기 전용 - grdTotList.ClearSelection(); + InitializeButtonDesign(); + // 둥근 패널 설정 + pannGray.BackColor = Color.White; + pannBlue.BackColor = Color.White; + pannGray.BackgroundImage = null; + pannBlue.BackgroundImage = null; + pannGray.CornerRadius = 30; // 숫자가 클수록 더 둥글어짐 + pannBlue.CornerRadius = 30; - txtSearch.PlaceholderText = "검색(단말기명, IP)"; + // 텍스트 박스 스타일 및 정렬 설정 + txtSearch.BorderStyle = BorderStyle.None; // 보더 선 제거 + txtSearch.BackColor = Color.LightGray; // 배경색 회색 설정 (원하는 밝기로 조절 가능) + txtSearch.TextAlign = HorizontalAlignment.Left; // 가로 왼쪽 정렬 + txtSearch.PlaceholderText = "검색(단말기명, IP)"; // 히든 글씨 설정 + + // 자동 제어 타이머 초기화 (1초 주기) + _autoControlTimer = new System.Windows.Forms.Timer(); + _autoControlTimer.Interval = 1000; + _autoControlTimer.Tick += AutoControlTimer_Tick; + _autoControlTimer.Start(); + + InitDataGridView(); + grdTotList.CellFormatting += grdTotList_CellFormatting; + txtSearch.SizeChanged += TextBox_SizeChanged; + btnDataUpdate.Click += btnDataUpdate_Click; + grdTotList.CellDoubleClick += grdTotList_CellDoubleClick; + grdTotList.CellMouseClick += grdTotList_CellMouseClick; // [누락 수정] 이벤트 바인딩 추가 + } + + private void InitDataGridView() + { + // 기본 설정 + grdTotList.RowHeadersVisible = false; // 왼쪽 화살표(행 헤더) 숨김 + grdTotList.AllowUserToAddRows = false; // 빈 빈칸 추가 방지 + grdTotList.AllowUserToResizeRows = false; // 행 높이 수동 조절 방지 + grdTotList.AllowUserToResizeColumns = false; // 열 너비 수동 조절 방지 + grdTotList.ReadOnly = true; // 읽기 전용 + grdTotList.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 행 단위 선택 + grdTotList.MultiSelect = false; // 다중 선택 방지 + + grdTotList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; // 열 넓이도 그리드 넓이에 맞게 자동으로 늘어나게 설정 + grdTotList.Columns[3].FillWeight = 60; // 통신설정 + grdTotList.Columns[4].FillWeight = 60; // 프로그램 + grdTotList.Columns[5].FillWeight = 140; + grdTotList.EnableHeadersVisualStyles = false; // 커스텀 디자인을 적용하기 위해 반드시 false로 설정 + + // 전체 배경 및 테두리 설정 + grdTotList.BackgroundColor = Color.White; // 그리드 바깥쪽 빈 공간 배경색 + grdTotList.BorderStyle = BorderStyle.None; // 그리드 전체 테두리 제거 + + // 셀 테두리 설정 (가로선만 옅은 회색으로) + grdTotList.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal; + grdTotList.GridColor = Color.FromArgb(230, 230, 230); + + // 헤더(제목 표시줄) 스타일 (진한 남색 배경, 흰색 글씨) + DataGridViewCellStyle headerStyle = new DataGridViewCellStyle(); + Color headerBgColor = Color.FromArgb(44, 62, 80); // #2C3E50 (진한 남색) + Color headerFgColor = Color.White; + + headerStyle.BackColor = headerBgColor; + headerStyle.ForeColor = headerFgColor; + headerStyle.Font = new Font("맑은 고딕", 10F, FontStyle.Bold); + headerStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + + // ★ 행 클릭 시 헤더가 반전되거나 포커스 색상으로 변하는 것을 방지 + headerStyle.SelectionBackColor = headerBgColor; + headerStyle.SelectionForeColor = headerFgColor; + + grdTotList.ColumnHeadersDefaultCellStyle = headerStyle; + grdTotList.ColumnHeadersHeight = 40; + grdTotList.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + + // 행 선택 시 헤더 스타일 상속으로 인한 테두리 및 색상 왜곡 방지 + grdTotList.EnableHeadersVisualStyles = false; + + // 기본 셀(데이터) 스타일 + DataGridViewCellStyle cellStyle = new DataGridViewCellStyle(); + cellStyle.BackColor = Color.White; + cellStyle.ForeColor = Color.FromArgb(50, 50, 50); // 완전 검정보다 부드러운 짙은 회색 + cellStyle.Font = new Font("맑은 고딕", 9.5F, FontStyle.Regular); + cellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + // 선택했을 때 형광 파란색 대신 옅은 회색으로 표시 + cellStyle.SelectionBackColor = Color.FromArgb(240, 245, 249); + cellStyle.SelectionForeColor = Color.Black; + grdTotList.DefaultCellStyle = cellStyle; + + // 행 높이 넉넉하게 설정 + grdTotList.RowTemplate.Height = 45; + + grdTotList.ClearSelection(); } - // 가짜 데이터 로드용 함수 (테스트용 예시이며 필요 시 구현체 연결) private void LoadSavedTerminals() { lblTotCnt.Text = grdTotList.RowCount.ToString() + "대"; } - // 폼이 화면에 나타날 때 서버를 별도의 통로(Task)로 실행 private void Form1_Load(object sender, EventArgs e) - { - LoadSavedTerminals(); // 기존에 저장된 단말기 데이터 리스트 로드 - InitStatusTimer(); // 에이전트pc 상태 여부 확인 + { + _originalFormSize = this.Size; + LoadSavedTerminals(); + InitStatusTimer(); + // 1. 단말기 등록 여부와 상관없이 "서버 포트 오픈"은 무조건 실행 + System.Diagnostics.Debug.WriteLine("[서버 로드] StartServerAsync 호출 시도"); + + Task.Run(async () => await StartServerAsync()).ContinueWith(t => + { + if (t.IsFaulted) + { + string errMsg = t.Exception?.GetBaseException().Message; + System.Diagnostics.Debug.WriteLine($"서버 구동 태스크 오류: {errMsg}"); + } + }); + + // 2. 단말기 상태 체크 부분 if (grdTotList.Rows.Count > 0) { - // 등록된 단말기가 있다면 상태 체크 스레드 및 서버 리스너 시작 - _ = Task.Run(() => StartServer()); - _ = Task.Run(() => CheckAllAlliveStatus()); // 상시 또는 최초 상태 체크 + Task.Run(() => CheckAllAliveStatus()); } else { - // 등록된 단말기가 하나도 없다면 리스너를 구동하지 않음 - MessageBox.Show("등록된 단말기가 없어 서버를 대기 상태로 유지합니다. 단말기를 등록해주세요."); + System.Diagnostics.Debug.WriteLine("등록된 단말기가 없어 서버를 대기 상태로 유지합니다. 단말기를 등록해주세요."); } } + + // 폼 크기 변동 시 호출되는 이벤트 + private void Form1_Resize(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Minimized) return; + + int margin = (int)(this.Width * 0.05); + int contentWidth = this.Width - (margin * 2); + + // 1. 그리드뷰 위치 및 크기 조정 + grdTotList.Width = contentWidth; + grdTotList.Left = margin; + grdTotList.Height = (int)(this.Height * 0.6); + + pannGray.Width = (int)(grdTotList.Width * 0.2); + pannBlue.Width = (int)(grdTotList.Width * 0.2); + pannGray.Left = (int)(this.Width / 2 - pannGray.Width - 30); + pannBlue.Left = (int)(this.Width / 2 + 30); + lblGrayTitle.Width = (int)(grdTotList.Width * 0.2); + lblBlueTitle.Width = (int)(grdTotList.Width * 0.2); + lblTotCnt.Width = (int)(grdTotList.Width * 0.2); + lblRunningCnt.Width = (int)(grdTotList.Width * 0.2); + + // 2. 상단/하단 컨트롤들도 동일하게 좌우 여백 적용 + txtSearch.Left = margin; + txtSearch.Width = (int)(contentWidth * 0.2); + imgSearch.Left = (int)(txtSearch.Left + txtSearch.Width + 10); + btnRegister.Left = (int)(grdTotList.Width + grdTotList.Left - btnRegister.Width); + btnDataUpdate.Left = (int)(btnRegister.Left - btnDataUpdate.Width - 10); + + // 강제 중앙 정렬 함수를 호출 + CenterControl(grdTotList); + } + + // 특정 컨트롤을 폼의 가로 중앙에 배치하는 헬퍼 메서드 + private void CenterControl(Control ctrl) + { + ctrl.Left = (this.Width - ctrl.Width) / 2; + } + + // 버튼 디자인 초기화 + private void InitializeButtonDesign() + { + // 버튼의 기본 테두리 제거를 위해 FlatStyle을 Flat으로 설정 + btnDataUpdate.FlatStyle = FlatStyle.Flat; + btnDataUpdate.FlatAppearance.BorderSize = 0; // 보더 선 제거 + btnDataUpdate.BackColor = Color.White; // 원하시는 배경색 + + btnRegister.FlatStyle = FlatStyle.Flat; + btnRegister.FlatAppearance.BorderSize = 0; // 보더 선 제거 + btnRegister.BackColor = Color.RoyalBlue; + + // 둥글게 그리기 이벤트 연결 + btnDataUpdate.Paint += Button_Paint; + btnRegister.Paint += Button_Paint; + } + + // 둥근 모서리 그리기 메서드 + private void Button_Paint(object sender, PaintEventArgs e) + { + System.Windows.Forms.Button btn = (System.Windows.Forms.Button)sender; + e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; + + // 둥근 사각형 그리기 + int radius = 20; // 둥근 정도 + System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); + path.AddArc(0, 0, radius, radius, 180, 90); + path.AddArc(btn.Width - radius, 0, radius, radius, 270, 90); + path.AddArc(btn.Width - radius, btn.Height - radius, radius, radius, 0, 90); + path.AddArc(0, btn.Height - radius, radius, radius, 90, 90); + path.CloseFigure(); + + btn.Region = new Region(path); + } + private void InitStatusTimer() { _statusTimer = new System.Windows.Forms.Timer(); - _statusTimer.Interval = 5000; // 5초마다 체크 - _statusTimer.Tick += (s, e) => { - CheckAllAlliveStatus(); + _statusTimer.Interval = 5000; + _statusTimer.Tick += (s, e) => + { + // 타이머 틱은 UI 스레드에서 돌므로 비동기로 상태 체크 유도 + Task.Run(() => CheckAllAliveStatus()); }; _statusTimer.Start(); } - // 기존 등록된 단말기들의 현재 On/Off 상태를 체크하는 함수 - private void CheckAllAlliveStatus() + // [구조 개선] UI 전체를 Invoke로 묶어 돌리던 무거운 방식을 내부 값 갱신 시에만 분리하도록 최적화 + private void CheckAllAliveStatus() + { + try + { + List<(int RowIndex, string Ip, string Mac)> targets = new List<(int, string, string)>(); + + this.Invoke(new Action(() => + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.IsNewRow) continue; + string ip = row.Cells[2].Value?.ToString()?.Trim(); + string mac = row.Cells[1].Value?.ToString()?.Replace("-", "").Replace(":", "").Replace(" ", "").ToUpper().Trim() ?? string.Empty; + + if (!string.IsNullOrEmpty(ip)) + { + targets.Add((row.Index, ip, mac)); + } + } + })); + + foreach (var target in targets) + { + bool isAlive = false; + lock (_agentLock) + { + // 복잡한 Poll 검사를 제거하고, 딕셔너리에 존재하며 Connected 상태인지 확인 + if (_connectedAgents.TryGetValue(target.Ip, out TcpClient client)) + { + if (client != null && client.Connected) + { + isAlive = true; + } + } + } + + // UI 업데이트 + this.BeginInvoke(new Action(() => + { + if (target.RowIndex >= grdTotList.Rows.Count) return; + var row = grdTotList.Rows[target.RowIndex]; + + if (isAlive) + { + row.Cells[4].Value = "🟢 Start"; + row.Cells[4].Style.BackColor = Color.Green; + } + else + { + row.Cells[4].Value = "🟢 Stop"; + row.Cells[4].Style.BackColor = Color.Red; + } + row.Cells[4].Style.ForeColor = Color.Black; + row.Cells[4].Style.BackColor = Color.White; + row.Cells[4].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; + })); + } + + this.BeginInvoke(new Action(() => UpdateRunningCount())); + } + catch (Exception ex) + { + Console.WriteLine($"상태 체크 도중 예외 발생: {ex.Message}"); + } + } + + private async Task StartServerAsync() + { + if (_isRunning) return; + + try + { + _listener = new TcpListener(IPAddress.Any, 9999); + _listener.Start(); + _isRunning = true; + System.Diagnostics.Debug.WriteLine("서버 구동 성공 (Port: 9999)... 에이전트 접속을 대기합니다."); + + while (_isRunning) + { + // Accept 직전 대기 상태 확인 + System.Diagnostics.Debug.WriteLine("[대기 중] 새로운 에이전트의 접속 소켓 신호를 기다리는 중..."); + + // 클라이언트 접속 대기 (비동기) + TcpClient client = await _listener.AcceptTcpClientAsync(); + + // 소켓 연결 자체가 성공했을 때 + System.Diagnostics.Debug.WriteLine("[소켓 연결 성공] 누군가 9999 포트로 연결했습니다! 핸들러로 넘깁니다."); + + _ = Task.Run(() => HandleAgentAsync(client)); + } + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"서버 루프 치명적 오류: {ex.Message}"); + this.BeginInvoke(new Action(() => MessageBox.Show("서버 구동 오류: " + ex.Message))); + } + finally + { + _isRunning = false; + try { _listener?.Stop(); } catch { } + System.Diagnostics.Debug.WriteLine("서버 구동이 완전히 중지되었습니다. (_isRunning = false)"); + } + } + + // 동기 IO 함수들(StreamReader.ReadLine)을 비동기(ReadLineAsync)로 변경하여 리소스 낭비 방지 + private async Task HandleAgentAsync(TcpClient client) + { + string clientIP = string.Empty; + try + { + clientIP = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString(); + System.Diagnostics.Debug.WriteLine($"[핸들러 진입] IP: {clientIP} 스트림 분석 시작"); + + using (NetworkStream stream = client.GetStream()) + using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) + { + string receivedMac = await reader.ReadLineAsync(); + System.Diagnostics.Debug.WriteLine($"[{clientIP}] 수신된 MAC 주소: '{receivedMac}'"); + + if (!string.IsNullOrEmpty(receivedMac)) + { + // 등록된 단말기인지 UI 스레드에서 먼저 판별 및 확인 + bool isRegistered = false; + this.Invoke(new Action(() => + { + isRegistered = UpdateAgentStatusByMac(receivedMac, clientIP); + })); + + // 등록되지 않은 단말기라면 소켓 끊고 핸들러 종료! + if (!isRegistered) + { + System.Diagnostics.Debug.WriteLine($"[{clientIP}] 미등록 단말기이므로 소켓을 강제 종료합니다."); + try { client.Close(); } catch { } + return; + } + + // ---------------- 등록된 단말기만 아래 로직을 수행 ---------------- + lock (_agentLock) + { + if (_connectedAgents.ContainsKey(clientIP)) + { + try { _connectedAgents[clientIP].Close(); } catch { } + _connectedAgents.Remove(clientIP); + } + _connectedAgents[clientIP] = client; + } + + System.Diagnostics.Debug.WriteLine($"[{clientIP}] 정상 등록 단말기 딕셔너리 추가 완료."); + + string terminalName = await Task.Run(() => GetTerminalNameByIp(clientIP)); + if (string.IsNullOrEmpty(terminalName)) terminalName = $"Terminal_{clientIP.Replace(".", "_")}"; + + string initialDbData = _dbFileManager.CreateAndSaveTerminalFile(terminalName); + await SendDataToSingleAgentAsync(client, initialDbData); // 에이전트로 데이터 전송 + + while (client.Connected) + { + System.Diagnostics.Debug.WriteLine($"[{clientIP}] 수신된 메시지 받기 전"); + string agentMsg = await reader.ReadLineAsync(); + System.Diagnostics.Debug.WriteLine($"[{clientIP}] 수신된 메시지: {(agentMsg ?? "NULL/연결종료")}"); + if (agentMsg == null) + { + System.Diagnostics.Debug.WriteLine($"[{clientIP}] 읽기 종료(null). 루프 탈출."); + break; + } + + // (예: MAC|메시지) + if (agentMsg.Contains("display_complete")) + { + // 기다리지 않고, 즉시 해당 에이전트에게 데이터 재전송 + System.Diagnostics.Debug.WriteLine($"[{clientIP}] 완료 신호 수신. 즉시 데이터 갱신을 진행합니다."); + string newData = _dbFileManager.CreateAndSaveTerminalFile(terminalName); + await SendDataToSingleAgentAsync(client, newData); // 현재 접속된 소켓(client)을 통해 즉시 데이터 전송 + + // 모니터링 폼이 열려있다면 즉시 데이터 전달 + lock (_syncLock) + { + if (_openedMonitorForms.TryGetValue(clientIP, out var monitorForm) && !monitorForm.IsDisposed) + { + monitorForm.BeginInvoke(new Action(() => monitorForm.UpdateMonitorData(newData))); + } + } + } + // 에이전트가 보내는 프로토콜 정의 + else if (agentMsg.Contains("data_update")) + { + // 그리드의 마지막 통신 시간을 현재 시간으로 업데이트 + this.BeginInvoke(new Action(() => + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.IsNewRow) continue; + + string gridIp = row.Cells[2].Value?.ToString()?.Trim(); + + // IP로 매칭 + bool isMatch = (!string.IsNullOrEmpty(clientIP) && gridIp == clientIP); + + if (isMatch) + { + row.Cells[5].Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + break; + } + } + })); + } + } + } + } + } + catch (Exception ex) + { + Console.WriteLine($"[{clientIP}] 핸들러 내부 루프 예외: " + ex.Message); + } + finally + { + lock (_agentLock) + { + if (!string.IsNullOrEmpty(clientIP) && _connectedAgents.ContainsKey(clientIP)) + { + _connectedAgents.Remove(clientIP); + } + } + try { client.Close(); } catch { } + Task.Run(() => CheckAllAliveStatus()); + } + } + + private void ProcessAgentCompletion(string agentIp) + { + lock (_syncLock) + { + // 1. 완료 목록에 추가 + if (!_completedAgents.Contains(agentIp)) + { + _completedAgents.Add(agentIp); + Console.WriteLine($"[완료 신호 수신] 단말기 IP: {agentIp} ({_completedAgents.Count}대 완료)"); + } + + // 현재 연결 상태인 에이전트들의 총 개수 파악 + int totalExpected = 0; + lock (_agentLock) { totalExpected = _connectedAgents.Count; } + + if (totalExpected == 0) return; + + // 2. 첫 번째 완료 신호가 들어왔을 때 60초 타이머 기동 + if (!_isTimerRunning) + { + _isTimerRunning = true; + _updateCts = new CancellationTokenSource(); + + var token = _updateCts.Token; + Task.Run(async () => + { + Console.WriteLine("첫 번째 완료 신호 감지. 60초 대기 타이머를 시작합니다..."); + try + { + // 60초 동안 대기 (모든 단말 완료 시 외부에서 Cancel() 요청하여 조기 종료됨) + await Task.Delay(60000, token); + + // 타임아웃 발생: 60초 내에 다 못 받은 상황 + Console.WriteLine("[타임아웃] 60초 제한 시간이 지났습니다. 낙오 단말기 처리를 시작합니다."); + + List stragglers = new List(); + lock (_syncLock) + { + lock (_agentLock) + { + foreach (var ip in _connectedAgents.Keys) + { + if (!_completedAgents.Contains(ip)) + { + stragglers.Add(ip); + } + } + } + } + + // 낙오 단말기 연결 끊기 및 상태 변경 + foreach (var ip in stragglers) + { + Console.WriteLine($"[낙오 단말 끊기] 60초 내 미완료 단말 제거: {ip}"); + lock (_agentLock) + { + if (_connectedAgents.TryGetValue(ip, out TcpClient client)) + { + try { client.Close(); } catch { } + _connectedAgents.Remove(ip); + } + } + + // UI 스레드에서 해당 IP의 그리드 상태를 Stop(Red)으로 업데이트 + this.BeginInvoke(new Action(() => + { + UpdateTerminalGridStatusToStop(ip); + })); + } + } + catch (TaskCanceledException) + { + // 60초 이전에 모든 단말기가 정상 완료되어 취소된 경우 + Console.WriteLine("모든 단말기가 60초 내에 연출을 완료하여 대기를 조기 종료합니다."); + } + finally + { + // 3. 타이머가 끝났거나 조기 종료되었으므로 공통 다음 파일 전송 및 초기화 + Console.WriteLine("다음 데이터 파일 갱신 처리를 시작합니다."); + SendDataToAllAgents(); + + lock (_syncLock) + { + _completedAgents.Clear(); + _isTimerRunning = false; + _updateCts?.Dispose(); + _updateCts = null; + } + + // 상태 갱신 + Task.Run(() => CheckAllAliveStatus()); + } + }); + } + } + } + + // 낙오된 단말기를 UI 상에서 강제로 Stop 처리하기 위한 헬퍼 메서드 + private void UpdateTerminalGridStatusToStop(string ip) { foreach (DataGridViewRow row in grdTotList.Rows) { if (row.IsNewRow) continue; - string ip = row.Cells[2].Value?.ToString(); - if (string.IsNullOrEmpty(ip)) continue; - - // 현재 서버에 소켓이 활성화되어 연결되어 있는지 확인 - bool isAlive = false; - lock (_connectedAgents) + if (row.Cells[2].Value?.ToString()?.Trim() == ip) { - if (_connectedAgents.ContainsKey(ip)) - { - TcpClient client = _connectedAgents[ip]; - // 소켓이 연결되어 있고, 실제 연결 상태가 양호한지 체크 - if (client != null && client.Connected) - { - isAlive = true; - } - } + row.Cells[4].Value = "🔴 Stop"; + row.Cells[4].Style.BackColor = Color.White; + row.Cells[4].Style.ForeColor = Color.Black; + break; } + } + UpdateRunningCount(); + } - // 만약 소켓이 연결 안 되어 있다면 보조 수단으로 원래의 PingTest를 수행해볼 수 있음 - if (!isAlive) + private bool UpdateAgentStatusByMac(string clientMac, string clientIP) + { + // 에이전트가 보내온 MAC 주소 정제 + string cleanClientMac = string.IsNullOrEmpty(clientMac) ? + string.Empty : clientMac.Replace("-", "").Replace(":", "").Replace(" ", "").ToUpper().Trim(); + + bool isMapped = false; + + // grdTotList 순회하며 등록된 단말기인지 확인 + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.IsNewRow) continue; + + string gridIp = row.Cells[2].Value?.ToString()?.Trim() ?? string.Empty; + string gridMac = row.Cells[1].Value?.ToString()?.Replace("-", "").Replace(":", "").Replace(" ", "").ToUpper().Trim() ?? string.Empty; + + // 1순위: IP 주소 매칭 또는 2순위: MAC 주소 일치 + if (gridIp == clientIP || (!string.IsNullOrEmpty(gridMac) && gridMac == cleanClientMac)) { - isAlive = PingTest(ip); - } + if (gridIp != clientIP) + { + row.Cells[2].Value = clientIP; // 최신 IP로 갱신 + } - this.Invoke(new Action(() => { - if (isAlive) + if (gridMac != cleanClientMac && !string.IsNullOrEmpty(cleanClientMac)) { - row.Cells[4].Value = "Start"; - row.Cells[4].Style.BackColor = Color.Green; - row.Cells[4].Style.ForeColor = Color.White; - } - else - { - row.Cells[4].Value = "Stop"; - row.Cells[4].Style.BackColor = Color.Red; - row.Cells[4].Style.ForeColor = Color.White; + row.Cells[1].Value = cleanClientMac; // MAC 주소 보정 + Console.WriteLine($"[그리드 보정] IP: {clientIP} 단말기의 MAC 주소를 {cleanClientMac}으로 갱신했습니다."); } + + // 상태를 Start로 변경 + row.Cells[4].Value = "🟢 Start"; + row.Cells[4].Style.BackColor = Color.White; + row.Cells[4].Style.ForeColor = Color.Black; row.Cells[4].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; - })); + + row.Cells[5].Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + isMapped = true; + break; + } } - this.Invoke(new Action(() => UpdateRunningCount())); + + // ★ 미등록 에이전트 자동 추가 로직 제거 및 로그 출력 + if (!isMapped) + { + System.Diagnostics.Debug.WriteLine($"[연결 거부] 등록되지 않은 단말기 접속 시도 - IP: {clientIP}, MAC: {cleanClientMac}"); + } + + // 켜져 있는 대수 카운트 갱신 + UpdateRunningCount(); + + return isMapped; // 매핑 성공 여부 반환 } - private bool PingTest(string ip) - { - if (string.IsNullOrEmpty(ip)) return false; - try - { - using (System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping()) - { - var reply = ping.Send(ip, 1000); // 1초 타임아웃 - return reply.Status == System.Net.NetworkInformation.IPStatus.Success; - } - } - catch { return false; } - } - - // 서버 시작 함수 - private async Task StartServer() - { - try - { - if (_isRunning) return; // 이미 실행 중이면 중복 방지 - - _listener = new TcpListener(IPAddress.Any, 9999); - _listener.Start(); - MessageBox.Show("서버 연결 중..."); - _isRunning = true; - - while (_isRunning) - { - // 에이전트의 접속을 비동기로 대기 - TcpClient client = await _listener.AcceptTcpClientAsync(); - - // 에이전트 접속 처리 핸들러 실행 - _ = Task.Run(() => HandleAgent(client)); - } - } - catch (Exception ex) - { - // 리스너가 중단되었을 때의 예외 처리 제외 처리 - if (_isRunning) - { - MessageBox.Show("서버 구동 오류: " + ex.Message); - } - } - } - - // 에이전트에서 데이터 받기 - private void HandleAgent(TcpClient client) - { - try - { - string clientIP = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString(); - - // using을 쓰지 않고 직접 스트림과 리더를 생성(함수가 끝나도 닫히지 않게) - NetworkStream stream = client.GetStream(); - System.IO.StreamReader reader = new System.IO.StreamReader(stream, Encoding.UTF8); - - // 에이전트가 보낸 첫 줄(MAC 주소) - string receivedMac = reader.ReadLine(); - - if (!string.IsNullOrEmpty(receivedMac)) - { - this.Invoke(new Action(() => { - // 기존 연결이 있다면 안전하게 닫고 교체 - if (_connectedAgents.ContainsKey(clientIP)) - { - try { _connectedAgents[clientIP].Close(); } catch { } - } - - _connectedAgents[clientIP] = client; // 소켓 유지 - UpdateAgentStatusByMac(receivedMac, clientIP); - })); - - // 서버 소켓이 닫히거나 에이전트가 끊어질 때까지 - // 이 스레드가 종료되지 않고 백그라운드에서 계속 대기하도록 루프를 돌려줌 - // (에이전트로부터 추가적인 메시지를 받을 때도 여기서 처리 가능) - while (client.Connected) - { - // 에이전트가 보낸 데이터가 없다면 여기서 대기 - // 에이전트가 연결을 끊으면 null이 들어와 루프를 빠져나감 - string agentMsg = reader.ReadLine(); - if (agentMsg == null) break; - } - } - } - catch (Exception ex) - { - Console.WriteLine("서버 핸들러 오류: " + ex.Message); - } - finally - { - // 연결이 최종적으로 끊기면 딕셔너리에서 제거 및 리소스 정리 - try - { - string clientIP = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString(); - lock (_connectedAgents) - { - if (_connectedAgents.ContainsKey(clientIP)) - { - _connectedAgents.Remove(clientIP); - } - } - } - catch { } - client.Close(); - } - } - - // MAC 주소를 기반으로 에이전트 매칭 및 상태 업데이트 - private void UpdateAgentStatusByMac(string clientMac, string clientIP) - { - // 수신된 MAC에서 불필요한 문자 제거 - string cleanClientMac = clientMac.Replace("-", "").Replace(":", "").Replace(" ", "").ToUpper().Trim(); - - bool isMatched = false; - - this.Invoke(new Action(() => { - foreach (DataGridViewRow row in grdTotList.Rows) - { - string gridIp = row.Cells[2].Value.ToString(); - - if (gridIp == clientIP) - { - row.Cells[1].Value = cleanClientMac; - row.Cells[4].Value = "Start"; - row.Cells[4].Style.BackColor = Color.Green; - row.Cells[4].Style.ForeColor = Color.White; - row.Cells[5].Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - - isMatched = true; - break; - } - } - - if (!isMatched) - { - Console.WriteLine($"매칭 실패! 수신된 MAC: {cleanClientMac}"); - } - - UpdateRunningCount(); - })); - } - - // 상단의 프로그램 실행 대수 갱신용 공통 메서드 private void UpdateRunningCount() { int startCount = 0; foreach (DataGridViewRow row in grdTotList.Rows) { if (row.IsNewRow) continue; - if (row.Cells[4].Value?.ToString() == "Start") + if (row.Cells[4].Value?.ToString().Contains("Start") == true) { startCount++; } @@ -277,175 +672,263 @@ namespace ControlServer private void btnRegister_MouseClick(object sender, MouseEventArgs e) { - // 단말기 등록 팝업 호출 - Form2 form = new Form2(); - - if (form.ShowDialog() == DialogResult.OK) + using (Form2 form = new Form2()) { - TerminalInfo data = form.TerminalData; - - grdTotList.Rows.Add( - data.TerminalName, // 단말기명 - data.Mac, // MAC 주소 - data.IP, // IP - "설정", // 통신설정 버튼 - "Stop", // 기본 상태 - DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - data.Port // 포트번호 - ); - - int rowIndex = grdTotList.Rows.Count - 1; - - // 프로그램 열 스타일 지정 - DataGridViewCell cell4 = grdTotList.Rows[rowIndex].Cells[4]; - cell4.Style.BackColor = Color.Red; - cell4.Style.ForeColor = Color.White; - cell4.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; - - // 통신설정 열 스타일 지정 - DataGridViewCell cell3 = grdTotList.Rows[rowIndex].Cells[3]; - cell3.Style.BackColor = Color.LightGray; - cell3.Style.ForeColor = Color.Black; - cell3.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; - - // 현재 단말기 개수 업데이트 - lblTotCnt.Text = grdTotList.RowCount.ToString() + "대"; - - // 단말 등록 완료 후 리스너가 구동 중이 아니었다면 리스너 최초 구동 개시 - if (!_isRunning) + if (form.ShowDialog() == DialogResult.OK) { - _ = Task.Run(() => StartServer()); - } + TerminalInfo data = form.TerminalData; - // 기접속된 IP가 있는 장치라면 바로 연동 매칭 - if (!string.IsNullOrEmpty(_connectedIP) && _connectedIP == data.IP) - { - UpdateAgentStatusByMac(data.Mac, data.IP); + _dbFileManager.CreateAndSaveTerminalFile(data.TerminalName); // 등록 시점에 해당 단말기 이름으로 파일 생성 + + grdTotList.Rows.Add( + data.TerminalName, + data.Mac, + data.IP, + "설정", + "Stop", + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + data.Port, + "5", // 에이전트 화면 페이지 표출 시간 디폴트값 + "", // ON 시간 (초기값 없음) + "" // OFF 시간 (초기값 없음) + ); + + int rowIndex = grdTotList.Rows.Count - 1; + + //grdTotList.Rows[rowIndex].Cells[4].Style.BackColor = Color.Red; + //grdTotList.Rows[rowIndex].Cells[4].Style.ForeColor = Color.White; + //grdTotList.Rows[rowIndex].Cells[4].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; + + //grdTotList.Rows[rowIndex].Cells[3].Style.BackColor = Color.LightGray; + //grdTotList.Rows[rowIndex].Cells[3].Style.ForeColor = Color.Black; + //grdTotList.Rows[rowIndex].Cells[3].Style.Alignment = DataGridViewContentAlignment.MiddleCenter; + + lblTotCnt.Text = grdTotList.RowCount.ToString() + "대"; + + if (!_isRunning) + { + _ = Task.Run(() => StartServerAsync()); + } + + Task.Run(() => CheckAllAliveStatus()); } } } - private void btnDataUpdate_MouseClick(object sender, MouseEventArgs e) + private void btnDataUpdate_Click(object sender, EventArgs e) { - // 1. 메시지 전송 - SendDataToAllAgents("데이터 전송 테스트(수동)"); + // 데이터 갱신 작업 실행 + Task.Run(() => + { + SendDataToAllAgents(); - // 2. 기존 로직 - Popup popup = new Popup("전체 단말기에 데이터 전송을 시도했습니다."); - popup.ShowDialog(); - CheckAllAlliveStatus(); + this.BeginInvoke(new Action(() => + { + CheckAllAliveStatus(); + })); + }); } - private void btnLog_MouseClick(object sender, MouseEventArgs e) + private async void grdTotList_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { - Form4 form = new Form4(); - form.Show(); + if (e.ColumnIndex < 3) + { + if (e.RowIndex < 0) return; + + string terminalName = grdTotList.Rows[e.RowIndex].Cells[0].Value?.ToString(); + string targetIP = grdTotList.Rows[e.RowIndex].Cells[2].Value?.ToString(); + + // 실제 에이전트 연결 상태 확인 + bool isConnected = false; + lock (_agentLock) + { + if (!string.IsNullOrEmpty(targetIP) && _connectedAgents.TryGetValue(targetIP, out TcpClient client)) + { + isConnected = (client != null && client.Connected); + } + } + + if (!isConnected) + { + MessageBox.Show("현재 에이전트와 연결되어 있지 않습니다.\n연결 후 다시 시도해 주세요.", "연결 확인", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; // 연결되지 않았으면 여기서 중단 + } + + // 1. 이미 열려있으면 업데이트만 수행 + if (_openedMonitorForms.TryGetValue(targetIP, out AgentMonitorForm existingForm) && !existingForm.IsDisposed) + { + string updatedXml = await Task.Run(() => _dbFileManager.CreateAndSaveTerminalFile(terminalName)); + existingForm.UpdateMonitorData(updatedXml); + existingForm.Activate(); + return; + } + + // 2. 폼 생성 + AgentMonitorForm monitorForm = new AgentMonitorForm(); + monitorForm.Text = $"[가상 모니터링] {terminalName} ({targetIP})"; + + // 폼이 로드될 때 소켓 통신을 하지 않도록 설정하는 플래그를 추가하는 것이 좋습니다. + // monitorForm.DisableSocketCommunication = true; + + monitorForm.Show(); + + // 3. 데이터 로드 및 적용 + string currentXml = await Task.Run(() => _dbFileManager.CreateAndSaveTerminalFile(terminalName)); + monitorForm.UpdateMonitorData(currentXml); + + lock (_syncLock) { _openedMonitorForms[targetIP] = monitorForm; } + } + else { } + } private void grdTotList_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { grdTotList.ClearSelection(); - - // 헤더 클릭 방지 if (e.RowIndex < 0) return; - // 통신설정 버튼 열 클릭 시 - if (e.ColumnIndex == 3) - { - var row = grdTotList.Rows[e.RowIndex]; - string TerminalName = row.Cells[0].Value?.ToString() ?? ""; - string TerminalIp = row.Cells[2].Value?.ToString() ?? ""; + var row = grdTotList.Rows[e.RowIndex]; + string terminalName = row.Cells[0].Value?.ToString() ?? ""; + string terminalIp = row.Cells[2].Value?.ToString() ?? ""; - Form3 form = new Form3(TerminalName, TerminalIp); - form.ShowDialog(); + if (e.ColumnIndex == 3) // 설정 버튼 클릭 + { + string filePath = _dbFileManager.GetTerminalFilePath(terminalName); //파일 확보 + + using (Form3 form = new Form3(this, terminalName, terminalIp, filePath)) + { + form.ShowDialog(); + } } - // 프로그램 작동 제어 제어 열 클릭 시 - else if (e.ColumnIndex == 4) + else if (e.ColumnIndex == 4) // Start/Stop 상태 제어 버튼 클릭 { - DataGridViewRow row = grdTotList.Rows[e.RowIndex]; - DataGridViewCell cell4 = row.Cells[4]; + var grdRow = grdTotList.Rows[e.RowIndex]; + string ip = grdRow.Cells[2].Value?.ToString(); + string mac = grdRow.Cells[1].Value?.ToString(); + string status = grdRow.Cells[4].Value?.ToString() ?? "Stop"; - string status = cell4.Value?.ToString() ?? ""; - string targetIP = row.Cells[2].Value?.ToString() ?? ""; - string targetMac = row.Cells[1].Value?.ToString() ?? ""; - - if (status == "Start") - { - // 에이전트 PC로 원격 강제 종료 패킷 전달 - SendStopCommandToAgent(targetIP); - - cell4.Value = "Stop"; - cell4.Style.BackColor = Color.Red; - cell4.Style.ForeColor = Color.White; - } - else - { - // WOL 매직 패킷 송신 - if (!string.IsNullOrEmpty(targetMac)) - { - SendWakeOnLan(targetMac); - - cell4.Value = "Start"; - cell4.Style.BackColor = Color.Green; - cell4.Style.ForeColor = Color.White; - } - else - { - MessageBox.Show("등록된 MAC 주소가 없습니다."); - } - } - - cell4.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; - UpdateRunningCount(); + ExecuteAgentControl(ip, mac, status); + } + } + + // 그리드 셀 클릭 로직을 공통 함수로 분리 + private void ExecuteAgentControl(string ip, string mac, string currentStatus) + { + // 현재 상태에 따라 적절한 동작 수행 + if (currentStatus.Contains("Start")) + { + // 끄기 (Stop) + SendStopCommandToAgent(ip); + UpdateGridStatus(ip, "Stop", Color.Red); + } + else + { + // 켜기 (Start) + if (!string.IsNullOrEmpty(mac)) + { + SendWakeOnLan(mac); + UpdateGridStatus(ip, "Start", Color.Green); + } + } + UpdateRunningCount(); + } + + // 그리드 상태 업데이트 헬퍼 + private void UpdateGridStatus(string ip, string status, Color color) + { + this.Invoke(new Action(() => + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.Cells[2].Value?.ToString() == ip) + { + row.Cells[4].Value = status; + row.Cells[4].Style.ForeColor = Color.Black; + row.Cells[4].Style.BackColor = Color.White; + row.Cells[4].Style.ForeColor = color; + + if (status == "Start") + { + row.Cells[4].Value = "🟢 Start"; // 특수기호 사용 + } + else + { + row.Cells[4].Value = "🔴 Stop"; + } + break; + } + } + })); + } + + // 프로글매 자동 on/off + private void AutoControlTimer_Tick(object sender, EventArgs e) + { + // 현재 시간(초단위까지) + DateTime now = DateTime.Now; + string currentTimeStr = now.ToString("HH:mm:ss"); + + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.IsNewRow) continue; + + string ip = row.Cells[2].Value?.ToString(); + string mac = row.Cells[1].Value?.ToString(); + string onTimeStr = row.Cells[8].Value?.ToString(); // 예: "09:00:00" + string offTimeStr = row.Cells[9].Value?.ToString(); // 예: "18:00:00" + string currentStatus = row.Cells[4].Value?.ToString(); + + if (string.IsNullOrEmpty(ip)) continue; + + if (currentTimeStr == onTimeStr && currentStatus.Contains("Stop")) + { + // 켜기 명령 실행 + SendWakeOnLan(mac); + UpdateGridStatus(ip, "Start", Color.Green); + } + else if (currentTimeStr == offTimeStr && currentStatus.Contains("Start")) + { + // 끄기 명령 실행 + SendStopCommandToAgent(ip); + UpdateGridStatus(ip, "Stop", Color.Red); + } } } - // [원격 끄기 구현] 소켓 스트림 연동을 위한 에이전트 대상 종료 전송 함수 private void SendStopCommandToAgent(string ip) { try { - if (_connectedAgents.ContainsKey(ip)) + lock (_agentLock) { - TcpClient client = _connectedAgents[ip]; - if (client.Connected) + if (_connectedAgents.TryGetValue(ip, out TcpClient client) && client.Connected) { - // 중요: 뒤에 "\n"을 추가하여 에이전트의 ReadLine()이 끝을 인식하게 합니다. byte[] msg = Encoding.UTF8.GetBytes("STOP\n"); client.GetStream().Write(msg, 0, msg.Length); client.GetStream().Flush(); + System.Diagnostics.Debug.WriteLine($"[서버] {ip}에게 STOP 명령 전송 완료!"); + } + else + { + MessageBox.Show("해당 에이전트는 현재 서버에 소켓으로 연결된 상태가 아닙니다."); } - } - else - { - MessageBox.Show("에이전트가 서버에 연결되어 있지 않습니다."); } } catch (Exception ex) { - MessageBox.Show("종료 명령 전송 실패: " + ex.Message); + Console.WriteLine("종료 명령 전송 실패: " + ex.Message); } } - // WOL 매직 패킷 전송 함수 private void SendWakeOnLan(string macAddress) { try { string cleanMac = macAddress.Replace("-", "").Replace(":", "").Replace(" ", "").Trim(); - - if (cleanMac.Length != 12) - { - MessageBox.Show("올바른 MAC 주소 형식이 아닙니다."); - return; - } + if (cleanMac.Length != 12) return; byte[] bytes = new byte[102]; - - for (int i = 0; i < 6; i++) - { - bytes[i] = 0xFF; - } + for (int i = 0; i < 6; i++) bytes[i] = 0xFF; byte[] macBytes = new byte[6]; for (int i = 0; i < 6; i++) @@ -463,41 +946,343 @@ namespace ControlServer client.Connect(IPAddress.Parse("255.255.255.255"), 9); client.Send(bytes, bytes.Length); } + Console.WriteLine($"[WOL 전송 완료] MAC: {cleanMac}"); } catch (Exception ex) { - MessageBox.Show("WOL 전송 실패: " + ex.Message); + Console.WriteLine("WOL 패킷 송신 예외 오류: " + ex.Message); } } - private void SendDataToAllAgents(string message) + private void SendDataToAllAgents() { - // 메시지 끝에 \n을 붙여서 에이전트가 ReadLine()으로 잘 읽게함 - byte[] data = Encoding.UTF8.GetBytes(message + "\n"); - - lock (_connectedAgents) // 여러 스레드에서 접근할 수 있으므로 lock 사용 + lock (_agentLock) { foreach (var kvp in _connectedAgents) { - try + string agentIP = kvp.Key; + TcpClient client = kvp.Value; + + if (client != null && client.Connected) { - TcpClient client = kvp.Value; - if (client != null && client.Connected) + try { - NetworkStream stream = client.GetStream(); - stream.Write(data, 0, data.Length); - stream.Flush(); + string terminalName = GetTerminalNameByIp(agentIP); + string xmlData = _dbFileManager.CreateAndSaveTerminalFile(terminalName); + + //NetworkStream 대신 StreamWriter를 사용하여 명확하게 데이터 전송 + using (NetworkStream stream = client.GetStream()) + using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8) { AutoFlush = true }) + { + writer.WriteLine(xmlData); // Line 단위 전송 + } + + Console.WriteLine($"[{terminalName}] 데이터 전송 성공."); + } + catch (Exception ex) + { + Console.WriteLine($"[{agentIP}] 데이터 전송 실패: {ex.Message}"); } - } - catch (Exception ex) - { - Console.WriteLine($"전송 실패 ({kvp.Key}): {ex.Message}"); } } } } + // 단일 전송 비동기화 지원을 통한 네트워크 병목 방지 + private async Task SendDataToSingleAgentAsync(TcpClient client, string message) + { + try + { + if (client != null && client.Connected) + { + byte[] data = Encoding.UTF8.GetBytes(message + "\n"); + NetworkStream stream = client.GetStream(); + await stream.WriteAsync(data, 0, data.Length); + await stream.FlushAsync(); + + System.Diagnostics.Debug.WriteLine("[데이터 전송 완료] 성공"); + } + } + catch (Exception ex) + { + Console.WriteLine($"단일 전송 실패: {ex.Message}"); + } + } + + private void UpdateVirtualMonitorFrame(string ip, string xmlData) + { + lock (_syncLock) + { + if (_openedMonitorForms.TryGetValue(ip, out var form) && form != null && !form.IsDisposed) + { + // 폼이 호출 가능(Load 완료)한 상태인지 확인 + if (form.InvokeRequired) + { + form.BeginInvoke(new Action(() => + { + try + { + form.UpdateMonitorData(xmlData); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine("모니터 업데이트 실패: " + ex.Message); + } + })); + } + else + { + form.UpdateMonitorData(xmlData); + } + } + else + { + System.Diagnostics.Debug.WriteLine($"[알림] {ip}에 해당하는 모니터링 폼이 아직 활성화되지 않았습니다."); + } + } + } + + private string GetTerminalNameByIp(string ip) + { + string name = string.Empty; + + if (this.InvokeRequired) + { + this.Invoke(new Action(() => name = FindNameInGrid(ip))); + } + else + { + name = FindNameInGrid(ip); + } + + return string.IsNullOrEmpty(name) ? $"Terminal_{ip.Replace(".", "_")}" : name; + } + + private string FindNameInGrid(string ip) + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.Cells[2].Value?.ToString() == ip) + { + return row.Cells[0].Value?.ToString(); + } + } + return string.Empty; + } + + private void Form1_FormClosing(object sender, FormClosingEventArgs e) + { + _isRunning = false; + _statusTimer?.Stop(); + try { _listener?.Stop(); } catch { } + + lock (_agentLock) + { + foreach (var client in _connectedAgents.Values) + { + try { client.Close(); } catch { } + } + _connectedAgents.Clear(); + } + } + private void pannGray_Paint(object sender, PaintEventArgs e) { } private void pannBlue_Paint(object sender, PaintEventArgs e) { } + + public void SendDataToSingleAgent(string ip, string message) + { + // _connectedAgents 딕셔너리에서 해당 IP를 찾아 전송하는 로직 + lock (_agentLock) // 안전한 접근을 위해 lock 사용 + { + if (_connectedAgents.ContainsKey(ip)) + { + TcpClient client = _connectedAgents[ip]; + if (client != null && client.Connected) + { + try + { + byte[] data = Encoding.UTF8.GetBytes(message + "\n"); // 프로토콜에 맞게 줄바꿈 추가 + NetworkStream stream = client.GetStream(); + stream.Write(data, 0, data.Length); + stream.Flush(); + + System.Diagnostics.Debug.WriteLine($"[성공] {ip}로 데이터 전송 완료."); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"[실패] {ip} 데이터 전송 중 오류: {ex.Message}"); + } + } + } + else + { + System.Diagnostics.Debug.WriteLine($"[알림] {ip}에 연결된 에이전트가 없습니다."); + } + } + } + + // 그리드에서 데이터 읽어오기 (표출시간, ON시간, OFF시간) + public string[] GetProgramTimesByIp(string ip) + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + // IP가 일치하는 행을 찾음 + if (row.Cells[2].Value?.ToString() == ip) + { + // 배열 생성 시 한 줄에 쉼표로 구분하여 작성 + return new string[] { + row.Cells[7].Value?.ToString(), + row.Cells[8].Value?.ToString(), + row.Cells[9].Value?.ToString() + }; + } + } + // 기본값 반환 + return new string[] { "5", "", "" }; + } + + // 그리드에 데이터 저장하기 + public void SaveProgramTimesToGrid(string ip, string display, string on, string off) + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.Cells[2].Value?.ToString() == ip) + { + row.Cells[7].Value = display; + row.Cells[8].Value = on; + row.Cells[9].Value = off; + break; + } + } + } + + private void grdTotList_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + + } + + private void imgSearch_MouseClick(object sender, MouseEventArgs e) + { + // 1. 검색어 가져오기 (앞뒤 공백 제거) + string search = txtSearch.Text.Trim(); + + // 2. 검색어가 빈 값이면 전체 리스트 노출 + if (string.IsNullOrEmpty(search)) + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (!row.IsNewRow) row.Visible = true; + } + return; // 전체 노출 후 로직 종료 + } + // 3. 검색어가 입력된 경우 필터링 진행 + else + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.IsNewRow) continue; // 그리드 맨 밑의 빈 행(새 행)은 건너뜀 + + string terminalName = row.Cells[0].Value?.ToString() ?? ""; + string ipAddress = row.Cells[2].Value?.ToString() ?? ""; + + // 단말기명 또는 IP에 검색어가 포함되어 있는지 확인 + if (terminalName.ToLower().Contains(search) || ipAddress.Contains(search)) + { + row.Visible = true; // 조건에 맞으면 보여줌 + } + else + { + row.Visible = false; // 조건에 안 맞으면 숨김 + } + } + } + } + private void txtSearch_TextChanged(object sender, EventArgs e) + { + // 1. 검색어 가져오기 (앞뒤 공백 제거) + string search = txtSearch.Text.Trim(); + + // 2. 검색어가 빈 값이면 전체 리스트 노출 + if (string.IsNullOrEmpty(search)) + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (!row.IsNewRow) row.Visible = true; + } + return; // 전체 노출 후 로직 종료 + } + // 3. 검색어가 입력된 경우 필터링 진행 + else + { + foreach (DataGridViewRow row in grdTotList.Rows) + { + if (row.IsNewRow) continue; // 그리드 맨 밑의 빈 행(새 행)은 건너뜀 + + string terminalName = row.Cells[0].Value?.ToString() ?? ""; + string ipAddress = row.Cells[2].Value?.ToString() ?? ""; + + // 단말기명 또는 IP에 검색어가 포함되어 있는지 확인 + if (terminalName.ToLower().Contains(search) || ipAddress.Contains(search)) + { + row.Visible = true; // 조건에 맞으면 보여줌 + } + else + { + row.Visible = false; // 조건에 안 맞으면 숨김 + } + } + } + } + + private void Form1_Load_1(object sender, EventArgs e) + { + + } + + // 텍스트 박스 크기가 결정되거나 변경될 때 둥근 리전을 생성하여 적용 + private void TextBox_SizeChanged(object sender, EventArgs e) + { + System.Windows.Forms.TextBox txt = (System.Windows.Forms.TextBox)sender; + System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); + + // 둥근 모서리의 반지름 설정 (값이 클수록 더 둥글어집니다) + int radius = 14; + + if (txt.Width > radius && txt.Height > radius) + { + path.AddArc(0, 0, radius, radius, 180, 90); + path.AddArc(txt.Width - radius, 0, radius, radius, 270, 90); + path.AddArc(txt.Width - radius, txt.Height - radius, radius, radius, 0, 90); + path.AddArc(0, txt.Height - radius, radius, radius, 90, 90); + path.CloseFigure(); + + txt.Region = new Region(path); + } + } + + private void grdTotList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + if (e.ColumnIndex == 4 && e.Value != null) + { + string status = e.Value.ToString(); + + if (status.Contains("Stop")) + { + e.CellStyle.ForeColor = Color.Red; + e.CellStyle.SelectionForeColor = Color.Red; // 선택 시에도 빨간 글씨 유지 + + e.CellStyle.BackColor = Color.White; + e.CellStyle.SelectionBackColor = Color.FromArgb(240, 245, 249); // 표 시안 배경색 유지 + } + else + { + e.CellStyle.ForeColor = Color.Green; + e.CellStyle.SelectionForeColor = Color.Green; // 선택 시에도 초록 글씨 유지 + + e.CellStyle.BackColor = Color.White; + e.CellStyle.SelectionBackColor = Color.FromArgb(240, 245, 249); + } + } + } } } \ No newline at end of file diff --git a/ControlServer/Form1.resx b/ControlServer/Form1.resx index d7de2eb..5405830 100644 --- a/ControlServer/Form1.resx +++ b/ControlServer/Form1.resx @@ -138,4 +138,13 @@ True + + True + + + True + + + True + \ No newline at end of file diff --git a/ControlServer/Form2.Designer.cs b/ControlServer/Form2.Designer.cs index 51f9174..5288d5c 100644 --- a/ControlServer/Form2.Designer.cs +++ b/ControlServer/Form2.Designer.cs @@ -36,52 +36,54 @@ btnCancel = new Button(); txtBoxPort = new TextBox(); lbl5 = new Label(); + txtBoxMac = new TextBox(); + lbl2 = new Label(); + lblTitle = new Label(); + lblBox = new Label(); SuspendLayout(); // // lbl0 // - lbl0.BackColor = SystemColors.ControlDark; - lbl0.BorderStyle = BorderStyle.FixedSingle; - lbl0.Location = new Point(277, 106); + lbl0.BackColor = Color.White; + lbl0.Location = new Point(195, 116); lbl0.Name = "lbl0"; - lbl0.Size = new Size(293, 50); + lbl0.Size = new Size(270, 50); lbl0.TabIndex = 0; lbl0.Text = "단말기명"; lbl0.TextAlign = ContentAlignment.MiddleLeft; // // lbl1 // - lbl1.BackColor = SystemColors.ControlDark; - lbl1.BorderStyle = BorderStyle.FixedSingle; - lbl1.Location = new Point(277, 156); + lbl1.BackColor = Color.White; + lbl1.Location = new Point(195, 166); lbl1.Name = "lbl1"; - lbl1.Size = new Size(293, 50); + lbl1.Size = new Size(270, 50); lbl1.TabIndex = 1; lbl1.Text = "IP"; lbl1.TextAlign = ContentAlignment.MiddleLeft; // // txtBoxName // - txtBoxName.Location = new Point(572, 106); + txtBoxName.Location = new Point(471, 127); txtBoxName.Multiline = true; txtBoxName.Name = "txtBoxName"; - txtBoxName.Size = new Size(507, 50); + txtBoxName.Size = new Size(350, 32); txtBoxName.TabIndex = 4; // // txtBoxIP // - txtBoxIP.Location = new Point(572, 156); + txtBoxIP.Location = new Point(471, 177); txtBoxIP.Multiline = true; txtBoxIP.Name = "txtBoxIP"; - txtBoxIP.Size = new Size(507, 50); + txtBoxIP.Size = new Size(350, 32); txtBoxIP.TabIndex = 5; // // btnRegister // - btnRegister.BackColor = SystemColors.Desktop; + btnRegister.BackColor = Color.RoyalBlue; btnRegister.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); btnRegister.ForeColor = SystemColors.Window; - btnRegister.Location = new Point(460, 291); + btnRegister.Location = new Point(296, 366); btnRegister.Name = "btnRegister"; btnRegister.Size = new Size(174, 56); btnRegister.TabIndex = 9; @@ -92,7 +94,7 @@ // btnCancel // btnCancel.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); - btnCancel.Location = new Point(710, 291); + btnCancel.Location = new Point(535, 366); btnCancel.Name = "btnCancel"; btnCancel.Size = new Size(174, 56); btnCancel.TabIndex = 10; @@ -102,28 +104,67 @@ // // txtBoxPort // - txtBoxPort.Location = new Point(572, 206); + txtBoxPort.Location = new Point(471, 227); txtBoxPort.Multiline = true; txtBoxPort.Name = "txtBoxPort"; - txtBoxPort.Size = new Size(507, 50); + txtBoxPort.Size = new Size(350, 32); txtBoxPort.TabIndex = 12; // // lbl5 // - lbl5.BackColor = SystemColors.ControlDark; - lbl5.BorderStyle = BorderStyle.FixedSingle; - lbl5.Location = new Point(277, 206); + lbl5.BackColor = Color.White; + lbl5.Location = new Point(195, 216); lbl5.Name = "lbl5"; - lbl5.Size = new Size(293, 50); + lbl5.Size = new Size(270, 50); lbl5.TabIndex = 11; lbl5.Text = "Port"; lbl5.TextAlign = ContentAlignment.MiddleLeft; // + // txtBoxMac + // + txtBoxMac.Location = new Point(471, 276); + txtBoxMac.Multiline = true; + txtBoxMac.Name = "txtBoxMac"; + txtBoxMac.Size = new Size(350, 32); + txtBoxMac.TabIndex = 14; + // + // lbl2 + // + lbl2.BackColor = Color.White; + lbl2.Location = new Point(195, 266); + lbl2.Name = "lbl2"; + lbl2.Size = new Size(270, 50); + lbl2.TabIndex = 13; + lbl2.Text = "MAC"; + lbl2.TextAlign = ContentAlignment.MiddleLeft; + // + // lblTitle + // + lblTitle.AutoSize = true; + lblTitle.BackColor = Color.White; + lblTitle.Font = new Font("맑은 고딕", 18F, FontStyle.Bold, GraphicsUnit.Point, 129); + lblTitle.Location = new Point(92, 34); + lblTitle.Name = "lblTitle"; + lblTitle.Size = new Size(179, 41); + lblTitle.TabIndex = 15; + lblTitle.Text = "단말기 등록"; + // + // lblBox + // + lblBox.BackColor = Color.White; + lblBox.Location = new Point(56, 23); + lblBox.Name = "lblBox"; + lblBox.Size = new Size(953, 306); + lblBox.TabIndex = 16; + // // Form2 // AutoScaleDimensions = new SizeF(9F, 20F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(1357, 737); + ClientSize = new Size(1070, 461); + Controls.Add(lblTitle); + Controls.Add(txtBoxMac); + Controls.Add(lbl2); Controls.Add(txtBoxPort); Controls.Add(lbl5); Controls.Add(btnCancel); @@ -132,6 +173,7 @@ Controls.Add(txtBoxName); Controls.Add(lbl1); Controls.Add(lbl0); + Controls.Add(lblBox); Name = "Form2"; ResumeLayout(false); PerformLayout(); @@ -147,5 +189,9 @@ private Button btnCancel; private TextBox txtBoxPort; private Label lbl5; + private TextBox txtBoxMac; + private Label lbl2; + private Label lblTitle; + private Label lblBox; } } \ No newline at end of file diff --git a/ControlServer/Form2.cs b/ControlServer/Form2.cs index e3e82b9..1497501 100644 --- a/ControlServer/Form2.cs +++ b/ControlServer/Form2.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; +using System.Drawing.Drawing2D; using System.Text; using System.Windows.Forms; @@ -12,31 +13,106 @@ namespace ControlServer { public TerminalInfo TerminalData { get; private set; } = new TerminalInfo(); + // 둥근 모서리 반지름 설정 + private const int CornerRadius = 15; + public Form2() { InitializeComponent(); + // 1. 버튼 테두리 없애고 Flat 스타일로 변경 + ConfigureModernButtons(); + btnRegister.BackColor = Color.FromArgb(160, 180, 240); // 연해진 블루 btnRegister.Enabled = false; // 저장버튼 비활성화 + // 모든 텍스트박스의 값이 변할 때마다 실행될 이벤트 연결 txtBoxName.TextChanged += ValidateInputs; txtBoxIP.TextChanged += ValidateInputs; txtBoxPort.TextChanged += ValidateInputs; + txtBoxMac.TextChanged += ValidateInputs; + + // 2. 둥근 모서리를 그리기 위한 Paint 이벤트 연결 + if (lblBox != null) lblBox.Paint += lblBox_Paint; + btnRegister.Paint += Button_Paint; + btnCancel.Paint += Button_Paint; + } + + private void ConfigureModernButtons() + { + // 등록 버튼 스타일 설정 + btnRegister.FlatStyle = FlatStyle.Flat; + btnRegister.FlatAppearance.BorderSize = 0; // 보더라인 삭제 + + // 취소 버튼 스타일 설정 + btnCancel.BackColor = Color.FromArgb(230, 235, 240); + btnCancel.FlatStyle = FlatStyle.Flat; + btnCancel.FlatAppearance.BorderSize = 0; // 보더라인 삭제 + } + + // 컨트롤을 둥글게 만들기 위한 공통 경로 생성 메서드 + private GraphicsPath GetRoundPath(Rectangle bounds, int radius) + { + GraphicsPath path = new GraphicsPath(); + int diameter = radius * 2; + + path.AddArc(bounds.X, bounds.Y, diameter, diameter, 180, 90); + path.AddArc(bounds.Right - diameter, bounds.Y, diameter, diameter, 270, 90); + path.AddArc(bounds.Right - diameter, bounds.Bottom - diameter, diameter, diameter, 0, 90); + path.AddArc(bounds.X, bounds.Bottom - diameter, diameter, diameter, 90, 90); + path.CloseAllFigures(); + + return path; + } + + // 흰색 배경 박스 둥글게 자르기 + private void lblBox_Paint(object? sender, PaintEventArgs e) + { + if (sender is Panel panel) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + using (GraphicsPath path = GetRoundPath(new Rectangle(0, 0, panel.Width, panel.Height), CornerRadius)) + { + panel.Region = new Region(path); + } + } + } + + // 버튼 둥글게 자르기 + private void Button_Paint(object? sender, PaintEventArgs e) + { + if (sender is Button button) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + // 버튼은 박스보다 조금 더 작으므로 반지름을 10 정도로 주면 예쁩니다 + using (GraphicsPath path = GetRoundPath(new Rectangle(0, 0, button.Width, button.Height), 10)) + { + button.Region = new Region(path); + } + } } private void ValidateInputs(object? sender, EventArgs e) { - // 모든 텍스트박스가 공백이 아닐 때만 true bool isValid = !string.IsNullOrWhiteSpace(txtBoxName.Text) && !string.IsNullOrWhiteSpace(txtBoxIP.Text) && - !string.IsNullOrWhiteSpace(txtBoxPort.Text); + !string.IsNullOrWhiteSpace(txtBoxPort.Text) && + !string.IsNullOrWhiteSpace(txtBoxMac.Text); - // 저장 버튼 활성화 상태 조절 btnRegister.Enabled = isValid; + + // [팁] 비활성화 상태일 때 버튼 색상 피드백을 주면 더 자연스럽습니다. + if (isValid) + { + btnRegister.BackColor = Color.FromArgb(65, 105, 225); // 원래 로열 블루 색상 + } + else + { + btnRegister.BackColor = Color.FromArgb(160, 180, 240); // 연해진 블루 + } } private void btnCancel_MouseClick(object sender, MouseEventArgs e) { - // 취소 버튼 this.Close(); } @@ -44,17 +120,23 @@ namespace ControlServer { // 1. DB 중복 데이터 확인 - // 2. 중복 데이터 없을 경우 DB에 데이터 추가 - // DB 가져오면 데이터 넘겨주는게 아니라 테이블에 데이터 추가하고 Form1 화면에서 데이터 가져와 리스트 보여주는 형식으로 변경할 예정 - Popup popup = new Popup("등록되었습니다."); + // 2. 메시지박스 띄우기 (알림 아이콘과 OK 버튼 포함) + DialogResult result = MessageBox.Show( + "등록되었습니다.", + "알림", + MessageBoxButtons.OK, + MessageBoxIcon.Information + ); - if (popup.ShowDialog() == DialogResult.OK) + // 사용자가 메시지박스의 '확인'을 누르면 데이터 저장 진행 + if (result == DialogResult.OK) { this.TerminalData = new TerminalInfo { TerminalName = txtBoxName.Text.Trim(), IP = txtBoxIP.Text.Trim(), - Port = txtBoxPort.Text.Trim() + Port = txtBoxPort.Text.Trim(), + Mac = txtBoxMac.Text.Trim(), }; } @@ -62,4 +144,4 @@ namespace ControlServer this.Close(); } } -} +} \ No newline at end of file diff --git a/ControlServer/Form3.Designer.cs b/ControlServer/Form3.Designer.cs index aa0e3a8..0877cf7 100644 --- a/ControlServer/Form3.Designer.cs +++ b/ControlServer/Form3.Designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle(); lblTerminalName = new Label(); lblTerminalIP = new Label(); label1 = new Label(); @@ -36,28 +37,42 @@ label3 = new Label(); label4 = new Label(); pannUpdate = new Panel(); - rdoUpdate5m = new RadioButton(); - rdoUpdate3m = new RadioButton(); - rdoUpdate1m = new RadioButton(); + label7 = new Label(); + txtBoxDisplay = new TextBox(); pannStartTime = new Panel(); + label8 = new Label(); + txtBoxOnSS = new TextBox(); label5 = new Label(); txtBoxOnMM = new TextBox(); txtBoxOnYY = new TextBox(); pannStopTime = new Panel(); + label9 = new Label(); + txtBoxOffSS = new TextBox(); label6 = new Label(); txtBoxOffMM = new TextBox(); txtBoxOffYY = new TextBox(); btnCancel = new Button(); btnUpdate = new Button(); + grdDataList = new DataGridView(); + lblBox = new Label(); + Col0 = new DataGridViewTextBoxColumn(); + Col1 = new DataGridViewTextBoxColumn(); + Col2 = new DataGridViewTextBoxColumn(); + Col3 = new DataGridViewTextBoxColumn(); + Col4 = new DataGridViewTextBoxColumn(); + Col5 = new DataGridViewTextBoxColumn(); + Col6 = new DataGridViewTextBoxColumn(); pannUpdate.SuspendLayout(); pannStartTime.SuspendLayout(); pannStopTime.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)grdDataList).BeginInit(); SuspendLayout(); // // lblTerminalName // + lblTerminalName.BackColor = Color.White; lblTerminalName.Font = new Font("맑은 고딕", 9F, FontStyle.Bold, GraphicsUnit.Point, 129); - lblTerminalName.Location = new Point(430, 42); + lblTerminalName.Location = new Point(256, 102); lblTerminalName.Name = "lblTerminalName"; lblTerminalName.Size = new Size(288, 50); lblTerminalName.TabIndex = 0; @@ -65,7 +80,8 @@ // // lblTerminalIP // - lblTerminalIP.Location = new Point(430, 118); + lblTerminalIP.BackColor = Color.White; + lblTerminalIP.Location = new Point(256, 178); lblTerminalIP.Name = "lblTerminalIP"; lblTerminalIP.Size = new Size(288, 50); lblTerminalIP.TabIndex = 1; @@ -73,7 +89,8 @@ // // label1 // - label1.Location = new Point(254, 42); + label1.BackColor = Color.White; + label1.Location = new Point(103, 102); label1.Name = "label1"; label1.Size = new Size(147, 50); label1.TabIndex = 2; @@ -82,7 +99,8 @@ // // label2 // - label2.Location = new Point(254, 118); + label2.BackColor = Color.White; + label2.Location = new Point(103, 178); label2.Name = "label2"; label2.Size = new Size(147, 50); label2.TabIndex = 3; @@ -91,20 +109,18 @@ // // lbl0 // - lbl0.BackColor = SystemColors.ControlDark; - lbl0.BorderStyle = BorderStyle.FixedSingle; - lbl0.Location = new Point(254, 223); + lbl0.BackColor = Color.White; + lbl0.Location = new Point(97, 285); lbl0.Name = "lbl0"; lbl0.Size = new Size(159, 50); lbl0.TabIndex = 4; - lbl0.Text = "갱신주기"; + lbl0.Text = "표출시간"; lbl0.TextAlign = ContentAlignment.MiddleLeft; // // label3 // - label3.BackColor = SystemColors.ControlDark; - label3.BorderStyle = BorderStyle.FixedSingle; - label3.Location = new Point(254, 273); + label3.BackColor = Color.White; + label3.Location = new Point(97, 335); label3.Name = "label3"; label3.Size = new Size(159, 50); label3.TabIndex = 5; @@ -113,9 +129,8 @@ // // label4 // - label4.BackColor = SystemColors.ControlDark; - label4.BorderStyle = BorderStyle.FixedSingle; - label4.Location = new Point(254, 323); + label4.BackColor = Color.White; + label4.Location = new Point(97, 385); label4.Name = "label4"; label4.Size = new Size(159, 50); label4.TabIndex = 6; @@ -124,59 +139,61 @@ // // pannUpdate // - pannUpdate.BorderStyle = BorderStyle.FixedSingle; - pannUpdate.Controls.Add(rdoUpdate5m); - pannUpdate.Controls.Add(rdoUpdate3m); - pannUpdate.Controls.Add(rdoUpdate1m); - pannUpdate.Location = new Point(413, 223); + pannUpdate.BackColor = Color.White; + pannUpdate.Controls.Add(label7); + pannUpdate.Controls.Add(txtBoxDisplay); + pannUpdate.Location = new Point(256, 285); pannUpdate.Name = "pannUpdate"; pannUpdate.Size = new Size(356, 50); pannUpdate.TabIndex = 7; // - // rdoUpdate5m + // label7 // - rdoUpdate5m.AutoSize = true; - rdoUpdate5m.Location = new Point(157, 12); - rdoUpdate5m.Name = "rdoUpdate5m"; - rdoUpdate5m.Size = new Size(53, 24); - rdoUpdate5m.TabIndex = 2; - rdoUpdate5m.TabStop = true; - rdoUpdate5m.Text = "5분"; - rdoUpdate5m.UseVisualStyleBackColor = true; + label7.AutoSize = true; + label7.Location = new Point(86, 14); + label7.Name = "label7"; + label7.Size = new Size(24, 20); + label7.TabIndex = 1; + label7.Text = "초"; // - // rdoUpdate3m + // txtBoxDisplay // - rdoUpdate3m.AutoSize = true; - rdoUpdate3m.Location = new Point(86, 12); - rdoUpdate3m.Name = "rdoUpdate3m"; - rdoUpdate3m.Size = new Size(53, 24); - rdoUpdate3m.TabIndex = 1; - rdoUpdate3m.TabStop = true; - rdoUpdate3m.Text = "3분"; - rdoUpdate3m.UseVisualStyleBackColor = true; - // - // rdoUpdate1m - // - rdoUpdate1m.AutoSize = true; - rdoUpdate1m.Location = new Point(16, 12); - rdoUpdate1m.Name = "rdoUpdate1m"; - rdoUpdate1m.Size = new Size(53, 24); - rdoUpdate1m.TabIndex = 0; - rdoUpdate1m.TabStop = true; - rdoUpdate1m.Text = "1분"; - rdoUpdate1m.UseVisualStyleBackColor = true; + txtBoxDisplay.Location = new Point(16, 11); + txtBoxDisplay.Name = "txtBoxDisplay"; + txtBoxDisplay.Size = new Size(64, 27); + txtBoxDisplay.TabIndex = 0; + txtBoxDisplay.Text = "5"; // // pannStartTime // - pannStartTime.BorderStyle = BorderStyle.FixedSingle; + pannStartTime.BackColor = Color.White; + pannStartTime.Controls.Add(label8); + pannStartTime.Controls.Add(txtBoxOnSS); pannStartTime.Controls.Add(label5); pannStartTime.Controls.Add(txtBoxOnMM); pannStartTime.Controls.Add(txtBoxOnYY); - pannStartTime.Location = new Point(413, 273); + pannStartTime.Location = new Point(256, 335); pannStartTime.Name = "pannStartTime"; pannStartTime.Size = new Size(356, 50); pannStartTime.TabIndex = 8; // + // label8 + // + label8.AutoSize = true; + label8.Location = new Point(171, 14); + label8.Name = "label8"; + label8.Size = new Size(12, 20); + label8.TabIndex = 4; + label8.Text = ":"; + // + // txtBoxOnSS + // + txtBoxOnSS.Location = new Point(185, 11); + txtBoxOnSS.Name = "txtBoxOnSS"; + txtBoxOnSS.Size = new Size(64, 27); + txtBoxOnSS.TabIndex = 3; + txtBoxOnSS.TextAlign = HorizontalAlignment.Center; + // // label5 // label5.AutoSize = true; @@ -204,15 +221,34 @@ // // pannStopTime // - pannStopTime.BorderStyle = BorderStyle.FixedSingle; + pannStopTime.BackColor = Color.White; + pannStopTime.Controls.Add(label9); + pannStopTime.Controls.Add(txtBoxOffSS); pannStopTime.Controls.Add(label6); pannStopTime.Controls.Add(txtBoxOffMM); pannStopTime.Controls.Add(txtBoxOffYY); - pannStopTime.Location = new Point(413, 323); + pannStopTime.Location = new Point(256, 385); pannStopTime.Name = "pannStopTime"; pannStopTime.Size = new Size(356, 50); pannStopTime.TabIndex = 9; // + // label9 + // + label9.AutoSize = true; + label9.Location = new Point(169, 14); + label9.Name = "label9"; + label9.Size = new Size(12, 20); + label9.TabIndex = 7; + label9.Text = ":"; + // + // txtBoxOffSS + // + txtBoxOffSS.Location = new Point(185, 11); + txtBoxOffSS.Name = "txtBoxOffSS"; + txtBoxOffSS.Size = new Size(64, 27); + txtBoxOffSS.TabIndex = 6; + txtBoxOffSS.TextAlign = HorizontalAlignment.Center; + // // label6 // label6.AutoSize = true; @@ -241,7 +277,7 @@ // btnCancel // btnCancel.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); - btnCancel.Location = new Point(559, 408); + btnCancel.Location = new Point(386, 497); btnCancel.Name = "btnCancel"; btnCancel.Size = new Size(174, 56); btnCancel.TabIndex = 12; @@ -251,10 +287,10 @@ // // btnUpdate // - btnUpdate.BackColor = SystemColors.Desktop; + btnUpdate.BackColor = Color.RoyalBlue; btnUpdate.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); btnUpdate.ForeColor = SystemColors.Window; - btnUpdate.Location = new Point(309, 408); + btnUpdate.Location = new Point(136, 497); btnUpdate.Name = "btnUpdate"; btnUpdate.Size = new Size(174, 56); btnUpdate.TabIndex = 11; @@ -262,11 +298,92 @@ btnUpdate.UseVisualStyleBackColor = false; btnUpdate.MouseClick += btnUpdate_MouseClick; // + // grdDataList + // + dataGridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = SystemColors.Control; + dataGridViewCellStyle1.Font = new Font("맑은 고딕", 7.8F, FontStyle.Regular, GraphicsUnit.Point, 129); + dataGridViewCellStyle1.ForeColor = SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True; + grdDataList.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + grdDataList.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + grdDataList.Columns.AddRange(new DataGridViewColumn[] { Col0, Col1, Col2, Col3, Col4, Col5, Col6 }); + grdDataList.Location = new Point(704, 46); + grdDataList.Name = "grdDataList"; + grdDataList.RowHeadersWidth = 51; + grdDataList.Size = new Size(641, 679); + grdDataList.TabIndex = 13; + // + // lblBox + // + lblBox.BackColor = Color.White; + lblBox.Location = new Point(43, 46); + lblBox.Name = "lblBox"; + lblBox.Size = new Size(597, 542); + lblBox.TabIndex = 14; + // + // Col0 + // + Col0.HeaderText = "경매일자"; + Col0.MinimumWidth = 6; + Col0.Name = "Col0"; + Col0.ReadOnly = true; + Col0.Width = 125; + // + // Col1 + // + Col1.HeaderText = "품목명"; + Col1.MinimumWidth = 6; + Col1.Name = "Col1"; + Col1.ReadOnly = true; + Col1.Width = 125; + // + // Col2 + // + Col2.HeaderText = "산지"; + Col2.MinimumWidth = 6; + Col2.Name = "Col2"; + Col2.ReadOnly = true; + Col2.Width = 125; + // + // Col3 + // + Col3.HeaderText = "전체수량"; + Col3.MinimumWidth = 6; + Col3.Name = "Col3"; + Col3.ReadOnly = true; + Col3.Width = 80; + // + // Col4 + // + Col4.HeaderText = "정가수의 수량"; + Col4.MinimumWidth = 6; + Col4.Name = "Col4"; + Col4.ReadOnly = true; + // + // Col5 + // + Col5.HeaderText = "전체물량"; + Col5.MinimumWidth = 6; + Col5.Name = "Col5"; + Col5.ReadOnly = true; + Col5.Width = 80; + // + // Col6 + // + Col6.HeaderText = "정가수의 물량"; + Col6.MinimumWidth = 6; + Col6.Name = "Col6"; + Col6.ReadOnly = true; + // // Form3 // AutoScaleDimensions = new SizeF(9F, 20F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(1008, 563); + ClientSize = new Size(1357, 737); + Controls.Add(grdDataList); Controls.Add(btnCancel); Controls.Add(btnUpdate); Controls.Add(pannStopTime); @@ -279,14 +396,16 @@ Controls.Add(label1); Controls.Add(lblTerminalIP); Controls.Add(lblTerminalName); + Controls.Add(lblBox); Name = "Form3"; - Text = "Form3"; + Text = "S"; pannUpdate.ResumeLayout(false); pannUpdate.PerformLayout(); pannStartTime.ResumeLayout(false); pannStartTime.PerformLayout(); pannStopTime.ResumeLayout(false); pannStopTime.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)grdDataList).EndInit(); ResumeLayout(false); } @@ -302,9 +421,6 @@ private Panel pannUpdate; private Panel pannStartTime; private Panel pannStopTime; - private RadioButton rdoUpdate1m; - private RadioButton rdoUpdate5m; - private RadioButton rdoUpdate3m; private TextBox txtBoxOnYY; private TextBox txtBoxOnMM; private Label label5; @@ -313,5 +429,20 @@ private TextBox txtBoxOffYY; private Button btnCancel; private Button btnUpdate; + private TextBox txtBoxDisplay; + private Label label7; + private Label label8; + private TextBox txtBoxOnSS; + private Label label9; + private TextBox txtBoxOffSS; + private DataGridView grdDataList; + private Label lblBox; + private DataGridViewTextBoxColumn Col0; + private DataGridViewTextBoxColumn Col1; + private DataGridViewTextBoxColumn Col2; + private DataGridViewTextBoxColumn Col3; + private DataGridViewTextBoxColumn Col4; + private DataGridViewTextBoxColumn Col5; + private DataGridViewTextBoxColumn Col6; } } \ No newline at end of file diff --git a/ControlServer/Form3.cs b/ControlServer/Form3.cs index 7f7b793..863f05a 100644 --- a/ControlServer/Form3.cs +++ b/ControlServer/Form3.cs @@ -3,44 +3,220 @@ using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; +using System.Drawing.Drawing2D; // 둥근 모서리 그리기(GraphicsPath)에 필수 +using System.IO; using System.Text; using System.Windows.Forms; +using System.Xml.Linq; namespace ControlServer { public partial class Form3 : Form { - public Form3(string terminalName, string terminalIP) // 매개변수 추가 + private Form1 _mainForm; // 메인 폼 참조 변수 + private string _targetIP; + private string _filePath; + + // 둥근 모서리 반지름 설정 (정수형 int로 선언) + private const int CornerRadiusValue = 15; + + public Form3(Form1 mainForm, string terminalName, string terminalIP, string filePath) { InitializeComponent(); - // 가져온 데이터를 Form3의 라벨이나 텍스트박스에 표시 + // 1. 버튼 테두리 없애고 Flat 스타일 및 이벤트 연결 + ConfigureModernStyles(); + + // 2. 그리드 디자인을 오른쪽 시안 스타일에 맞게 초기화 + InitDataGridViewStyles(); + + _mainForm = mainForm; + _targetIP = terminalIP; + _filePath = filePath; + lblTerminalName.Text = terminalName; lblTerminalIP.Text = terminalIP; + string[] timeData = _mainForm.GetProgramTimesByIp(_targetIP); + + txtBoxDisplay.Text = string.IsNullOrEmpty(timeData[0]) ? "5" : timeData[0]; + + if (!string.IsNullOrEmpty(timeData[1]) && timeData[1].Contains(":")) + { + string[] onTime = timeData[1].Split(':'); + txtBoxOnYY.Text = onTime[0]; + txtBoxOnMM.Text = onTime[1]; + txtBoxOnSS.Text = onTime[2]; + } + + if (!string.IsNullOrEmpty(timeData[2]) && timeData[2].Contains(":")) + { + string[] offTime = timeData[2].Split(':'); + txtBoxOffYY.Text = offTime[0]; + txtBoxOffMM.Text = offTime[1]; + txtBoxOffSS.Text = offTime[2]; + } + txtBoxOnYY.TextChanged += ValidateInputs; txtBoxOnMM.TextChanged += ValidateInputs; + txtBoxOnSS.TextChanged += ValidateInputs; txtBoxOffYY.TextChanged += ValidateInputs; txtBoxOffMM.TextChanged += ValidateInputs; + txtBoxOffSS.TextChanged += ValidateInputs; + txtBoxOnYY.PlaceholderText = "YY"; txtBoxOnMM.PlaceholderText = "MM"; + txtBoxOnSS.PlaceholderText = "SS"; txtBoxOffYY.PlaceholderText = "YY"; txtBoxOffMM.PlaceholderText = "MM"; + txtBoxOffSS.PlaceholderText = "SS"; + + LoadAndParseFile(); + } + + // ⭐️ 오른쪽 그리드뷰 디자인 시안을 반영한 메서드 + // ⭐️ 오른쪽 그리드뷰 디자인 시안을 반영한 메서드 + private void InitDataGridViewStyles() + { + grdDataList.AllowUserToResizeRows = false; + grdDataList.AllowUserToResizeColumns = false; + grdDataList.RowHeadersVisible = false; // 왼쪽 화살표 열 숨김 + grdDataList.AllowUserToAddRows = false; // 빈 칸 추가 방지 + grdDataList.ReadOnly = true; // 읽기 전용 + grdDataList.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 행 선택 + grdDataList.MultiSelect = false; + + // 커스텀 헤더 스타일을 적용하기 위해 반드시 false 설정 + grdDataList.EnableHeadersVisualStyles = false; + + // 그리드 전체 배경 및 기본 테두리 제거 (시안처럼 하얗고 투명하게) + grdDataList.BackgroundColor = Color.White; + grdDataList.BorderStyle = BorderStyle.None; + + // 셀 구분선 설정 (옅은 회색 가로선만 남김) + grdDataList.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal; + grdDataList.GridColor = Color.FromArgb(240, 242, 245); + + // [상단 헤더 스타일 수정] + DataGridViewCellStyle headerStyle = new DataGridViewCellStyle(); + headerStyle.BackColor = Color.FromArgb(44, 62, 80); + headerStyle.ForeColor = Color.White; + headerStyle.Font = new Font("맑은 고딕", 9.5F, FontStyle.Bold); + headerStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + + // 행을 선택하더라도 헤더의 선택 배경색/글자색이 기본 배경색과 똑같이 유지되도록 고정 + headerStyle.SelectionBackColor = Color.FromArgb(44, 62, 80); + headerStyle.SelectionForeColor = Color.White; + + grdDataList.ColumnHeadersDefaultCellStyle = headerStyle; + grdDataList.ColumnHeadersHeight = 38; // 헤더 높이 여유롭게 조정 + grdDataList.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + + // 행 선택 시 헤더 스타일 상속으로 인한 테두리 및 색상 왜곡 방지 + grdDataList.EnableHeadersVisualStyles = false; + + // [일반 데이터 셀 스타일 수정] + DataGridViewCellStyle cellStyle = new DataGridViewCellStyle(); + cellStyle.BackColor = Color.White; + cellStyle.ForeColor = Color.FromArgb(50, 50, 50); // 부드러운 차콜 블랙 + cellStyle.Font = new Font("맑은 고딕", 9F, FontStyle.Regular); + cellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + + // 행 선택(클릭) 시 파란색 대신 부드러운 회청색으로 채우기 + cellStyle.SelectionBackColor = Color.FromArgb(242, 246, 252); + cellStyle.SelectionForeColor = Color.FromArgb(50, 50, 50); + + grdDataList.DefaultCellStyle = cellStyle; + + // 시안처럼 행 간격(높이)을 시원하게 벌려 가시성을 높임 + grdDataList.RowTemplate.Height = 38; + + grdDataList.ClearSelection(); + } + + private void ConfigureModernStyles() + { + // 수정 버튼 스타일 설정 (테두리 삭제) + btnUpdate.FlatStyle = FlatStyle.Flat; + btnUpdate.FlatAppearance.BorderSize = 0; + + // 취소 버튼 스타일 설정 (테두리 삭제 및 부드러운 회색) + btnCancel.FlatStyle = FlatStyle.Flat; + btnCancel.FlatAppearance.BorderSize = 0; + btnCancel.BackColor = Color.FromArgb(230, 235, 240); + btnCancel.ForeColor = Color.FromArgb(80, 80, 80); + + // 둥근 처리를 위한 Paint 이벤트 연결 + if (lblBox != null) lblBox.Paint += lblBox_Paint; + btnUpdate.Paint += Button_Paint; + btnCancel.Paint += Button_Paint; + } + + // 둥근 모서리 경로를 만들어주는 공통 메서드 + private GraphicsPath GetRoundPath(Rectangle bounds, int radius) + { + GraphicsPath path = new GraphicsPath(); + int diameter = radius * 2; + + path.AddArc(bounds.X, bounds.Y, diameter, diameter, 180, 90); + path.AddArc(bounds.Right - diameter, bounds.Y, diameter, diameter, 270, 90); + path.AddArc(bounds.Right - diameter, bounds.Bottom - diameter, diameter, diameter, 0, 90); + path.AddArc(bounds.X, bounds.Bottom - diameter, diameter, diameter, 90, 90); + path.CloseAllFigures(); + + return path; + } + + // 흰색 배경 박스 둥글게 자르기 + private void lblBox_Paint(object? sender, PaintEventArgs e) + { + if (sender is Control control) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + using (GraphicsPath path = GetRoundPath(new Rectangle(0, 0, control.Width, control.Height), CornerRadiusValue)) + { + control.Region = new Region(path); + } + } + } + + // 버튼들 둥글게 자르기 + private void Button_Paint(object? sender, PaintEventArgs e) + { + if (sender is Button button) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + using (GraphicsPath path = GetRoundPath(new Rectangle(0, 0, button.Width, button.Height), 10)) + { + button.Region = new Region(path); + } + } } private void ValidateInputs(object? sender, EventArgs e) { - // 프로그램 시간 조건 체크 bool isOnYYEmpty = string.IsNullOrWhiteSpace(txtBoxOnYY.Text); bool isOnMMEmpty = string.IsNullOrWhiteSpace(txtBoxOnMM.Text); + bool isOnSSEmpty = string.IsNullOrWhiteSpace(txtBoxOnSS.Text); bool isOffYYEmpty = string.IsNullOrWhiteSpace(txtBoxOffYY.Text); - bool isOffMMEmpty = string.IsNullOrWhiteSpace(@txtBoxOffMM.Text); + bool isOffMMEmpty = string.IsNullOrWhiteSpace(txtBoxOffMM.Text); + bool isOffSSEmpty = string.IsNullOrWhiteSpace(txtBoxOffSS.Text); - // 둘 다 비어있거나(AND), 둘 다 비어있지 않거나(AND) - bool isTimeValid = (isOnYYEmpty && isOnMMEmpty && isOffYYEmpty && isOffMMEmpty) || (!isOnYYEmpty && !isOnMMEmpty && !isOffYYEmpty && !isOffMMEmpty); + bool isTimeValid = (isOnYYEmpty && isOnMMEmpty && isOnSSEmpty && isOffYYEmpty && isOffMMEmpty && isOffSSEmpty) || + (!isOnYYEmpty && !isOnMMEmpty && !isOnSSEmpty && !isOffYYEmpty && !isOffMMEmpty && !isOffSSEmpty); - // 저장 버튼 활성화 btnUpdate.Enabled = isTimeValid; + + if (isTimeValid) + { + btnUpdate.BackColor = Color.FromArgb(52, 152, 219); // 활성화 스카이블루 + btnUpdate.ForeColor = Color.White; + } + else + { + btnUpdate.BackColor = Color.FromArgb(180, 210, 235); // 비활성화 흐린 블루 + btnUpdate.ForeColor = Color.White; + } } private void btnCancel_MouseClick(object sender, MouseEventArgs e) @@ -50,8 +226,53 @@ namespace ControlServer private void btnUpdate_MouseClick(object sender, MouseEventArgs e) { - // 수정 - // 수정 시 DB 저장 + string displayTime = txtBoxDisplay.Text; + string onTime = txtBoxOnYY.Text + ":" + txtBoxOnMM.Text + ":" + txtBoxOnSS.Text; + string offTime = txtBoxOffYY.Text + ":" + txtBoxOffMM.Text + ":" + txtBoxOffSS.Text; + + _mainForm.SaveProgramTimesToGrid(_targetIP, displayTime, onTime, offTime); + + string protocol = $"SET_TIME|{displayTime}\n"; + _mainForm.SendDataToSingleAgent(_targetIP, protocol); + + MessageBox.Show("수정되었습니다.", "알림", MessageBoxButtons.OK, MessageBoxIcon.Information); + + this.Close(); + } + + private void LoadAndParseFile() + { + if (!File.Exists(_filePath)) return; + string fileContent = File.ReadAllText(_filePath); + if (string.IsNullOrWhiteSpace(fileContent)) return; + + ParseAndBindServerData(fileContent); + } + + private void ParseAndBindServerData(string rawData) + { + try + { + var doc = System.Xml.Linq.XDocument.Parse(rawData); + grdDataList.Rows.Clear(); + + foreach (var item in doc.Descendants("AuctionTable")) + { + grdDataList.Rows.Add( + item.Element("aucDate")?.Value, + item.Element("itemName")?.Value, + item.Element("origin")?.Value, + item.Element("totalQty")?.Value, + item.Element("fixPriceQty")?.Value, + item.Element("totalAmt")?.Value, + item.Element("fixPriceAmt")?.Value + ); + } + } + catch (Exception ex) + { + MessageBox.Show("XML 파싱 에러: " + ex.Message, "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); + } } } -} +} \ No newline at end of file diff --git a/ControlServer/Form3.resx b/ControlServer/Form3.resx index 8b2ff64..67f8b33 100644 --- a/ControlServer/Form3.resx +++ b/ControlServer/Form3.resx @@ -117,4 +117,25 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + True + + + True + + + True + + + True + + + True + + + True + + + True + \ No newline at end of file diff --git a/ControlServer/Form4.Designer.cs b/ControlServer/Form4.Designer.cs deleted file mode 100644 index 674169c..0000000 --- a/ControlServer/Form4.Designer.cs +++ /dev/null @@ -1,166 +0,0 @@ -namespace ControlServer -{ - partial class Form4 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - DataGridViewCellStyle dataGridViewCellStyle7 = new DataGridViewCellStyle(); - DataGridViewCellStyle dataGridViewCellStyle12 = new DataGridViewCellStyle(); - DataGridViewCellStyle dataGridViewCellStyle8 = new DataGridViewCellStyle(); - DataGridViewCellStyle dataGridViewCellStyle9 = new DataGridViewCellStyle(); - DataGridViewCellStyle dataGridViewCellStyle10 = new DataGridViewCellStyle(); - DataGridViewCellStyle dataGridViewCellStyle11 = new DataGridViewCellStyle(); - grdLog = new DataGridView(); - Col5 = new DataGridViewTextBoxColumn(); - Col0 = new DataGridViewTextBoxColumn(); - Col3 = new DataGridViewTextBoxColumn(); - Col4 = new DataGridViewTextBoxColumn(); - Col6 = new DataGridViewTextBoxColumn(); - Col7 = new DataGridViewTextBoxColumn(); - btnPrev = new Button(); - ((System.ComponentModel.ISupportInitialize)grdLog).BeginInit(); - SuspendLayout(); - // - // grdLog - // - dataGridViewCellStyle7.Alignment = DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle7.BackColor = SystemColors.ButtonShadow; - dataGridViewCellStyle7.Font = new Font("맑은 고딕", 9F); - dataGridViewCellStyle7.ForeColor = SystemColors.WindowText; - dataGridViewCellStyle7.SelectionBackColor = SystemColors.Highlight; - dataGridViewCellStyle7.SelectionForeColor = SystemColors.HighlightText; - dataGridViewCellStyle7.WrapMode = DataGridViewTriState.True; - grdLog.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; - grdLog.ColumnHeadersHeight = 29; - grdLog.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; - grdLog.Columns.AddRange(new DataGridViewColumn[] { Col5, Col0, Col3, Col4, Col6, Col7 }); - dataGridViewCellStyle12.Alignment = DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle12.BackColor = SystemColors.Window; - dataGridViewCellStyle12.Font = new Font("맑은 고딕", 9F); - dataGridViewCellStyle12.ForeColor = SystemColors.ControlText; - dataGridViewCellStyle12.SelectionBackColor = SystemColors.Highlight; - dataGridViewCellStyle12.SelectionForeColor = SystemColors.HighlightText; - dataGridViewCellStyle12.WrapMode = DataGridViewTriState.False; - grdLog.DefaultCellStyle = dataGridViewCellStyle12; - grdLog.Location = new Point(164, 87); - grdLog.Name = "grdLog"; - grdLog.RowHeadersWidth = 51; - grdLog.Size = new Size(1000, 638); - grdLog.TabIndex = 4; - // - // Col5 - // - dataGridViewCellStyle8.Alignment = DataGridViewContentAlignment.MiddleCenter; - Col5.DefaultCellStyle = dataGridViewCellStyle8; - Col5.Frozen = true; - Col5.HeaderText = "일시"; - Col5.MinimumWidth = 6; - Col5.Name = "Col5"; - Col5.Width = 220; - // - // Col0 - // - dataGridViewCellStyle9.Alignment = DataGridViewContentAlignment.MiddleCenter; - Col0.DefaultCellStyle = dataGridViewCellStyle9; - Col0.Frozen = true; - Col0.HeaderText = "단말기명"; - Col0.MinimumWidth = 6; - Col0.Name = "Col0"; - Col0.Width = 170; - // - // Col3 - // - dataGridViewCellStyle10.Alignment = DataGridViewContentAlignment.MiddleCenter; - Col3.DefaultCellStyle = dataGridViewCellStyle10; - Col3.Frozen = true; - Col3.HeaderText = "명령 유형"; - Col3.MinimumWidth = 6; - Col3.Name = "Col3"; - Col3.Width = 125; - // - // Col4 - // - dataGridViewCellStyle11.Alignment = DataGridViewContentAlignment.MiddleCenter; - Col4.DefaultCellStyle = dataGridViewCellStyle11; - Col4.Frozen = true; - Col4.HeaderText = "수행자"; - Col4.MinimumWidth = 6; - Col4.Name = "Col4"; - Col4.Width = 125; - // - // Col6 - // - Col6.Frozen = true; - Col6.HeaderText = "결과"; - Col6.MinimumWidth = 6; - Col6.Name = "Col6"; - Col6.Width = 125; - // - // Col7 - // - Col7.Frozen = true; - Col7.HeaderText = "상세내용"; - Col7.MinimumWidth = 6; - Col7.Name = "Col7"; - Col7.Width = 285; - // - // btnPrev - // - btnPrev.Font = new Font("맑은 고딕", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 129); - btnPrev.Location = new Point(164, 12); - btnPrev.Name = "btnPrev"; - btnPrev.Size = new Size(174, 56); - btnPrev.TabIndex = 13; - btnPrev.Text = "이전"; - btnPrev.UseVisualStyleBackColor = true; - btnPrev.MouseClick += btnPrev_MouseClick; - // - // Form4 - // - AutoScaleDimensions = new SizeF(9F, 20F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(1357, 737); - Controls.Add(btnPrev); - Controls.Add(grdLog); - Name = "Form4"; - Text = "Form4"; - ((System.ComponentModel.ISupportInitialize)grdLog).EndInit(); - ResumeLayout(false); - } - - #endregion - - private DataGridView grdLog; - private DataGridViewTextBoxColumn Col5; - private DataGridViewTextBoxColumn Col0; - private DataGridViewTextBoxColumn Col3; - private DataGridViewTextBoxColumn Col4; - private DataGridViewTextBoxColumn Col6; - private DataGridViewTextBoxColumn Col7; - private Button btnPrev; - } -} \ No newline at end of file diff --git a/ControlServer/Form4.cs b/ControlServer/Form4.cs deleted file mode 100644 index 3745b0a..0000000 --- a/ControlServer/Form4.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace ControlServer -{ - public partial class Form4 : Form - { - public Form4() - { - InitializeComponent(); - - grdLog.RowHeadersVisible = false; // 그리드 자동으로 생성되는 첫 번째 열 제거 - grdLog.AllowUserToAddRows = false; // 새 행 입력용 기본 로우 제거 - grdLog.EnableHeadersVisualStyles = false; // 헤더 기본 테마 사용 안 함 - grdLog.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray; // 헤더 배경색 - grdLog.ColumnHeadersHeight = 40; // 헤더 높이 - grdLog.RowHeadersVisible = false; // 행 헤더 제거 - grdLog.AllowUserToAddRows = false; // // 행 추가 금지 - grdLog.AllowUserToResizeRows = false; // 행 높이 조절 금지 - grdLog.AllowUserToResizeColumns = false; // 열 너비 조절 금지 - grdLog.ReadOnly = true; // 읽기 전용 - grdLog.ClearSelection(); - } - - private void btnPrev_MouseClick(object sender, MouseEventArgs e) - { - this.Close(); - } - } -} diff --git a/ControlServer/Properties/Resources.Designer.cs b/ControlServer/Properties/Resources.Designer.cs index a98024f..41cb486 100644 --- a/ControlServer/Properties/Resources.Designer.cs +++ b/ControlServer/Properties/Resources.Designer.cs @@ -69,5 +69,45 @@ namespace ControlServer.Properties { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap imgCountBox { + get { + object obj = ResourceManager.GetObject("imgCountBox", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap imgCountBox1 { + get { + object obj = ResourceManager.GetObject("imgCountBox1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap imgDataRegister { + get { + object obj = ResourceManager.GetObject("imgDataRegister", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap imgDataUpdate { + get { + object obj = ResourceManager.GetObject("imgDataUpdate", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/ControlServer/Properties/Resources.resx b/ControlServer/Properties/Resources.resx index dab1ac7..bfad3b4 100644 --- a/ControlServer/Properties/Resources.resx +++ b/ControlServer/Properties/Resources.resx @@ -118,7 +118,19 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\imgDataRegister.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\button-search.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\imgDataUpdate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\imgCountBox.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\imgCountBox1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/ControlServer/Resources/imgCountBox.png b/ControlServer/Resources/imgCountBox.png new file mode 100644 index 0000000000000000000000000000000000000000..c06331344a6ccf3979005f56e07a3d4069d69398 GIT binary patch literal 224039 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 KXN$6R7V(!;qq4~tOH90LCqlVc1>kIiSJMzbK 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]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 literal 0 HcmV?d00001 diff --git a/ControlServer/Resources/imgDataUpdate.png b/ControlServer/Resources/imgDataUpdate.png new file mode 100644 index 0000000000000000000000000000000000000000..452a8664a922016cb121abd47570988a0d8f20bf GIT binary patch literal 647 zcmV;20(kw2P)sfh%y zf(jzKQ#Gp~0U@a9OQ>kncMuN&5%eX*iztfj8j%?Jq=(sM*tomBx*HTy(6{dXs(#g7 zRZ+BI|Eh_wxnhhZHI7J)@ya!J&d;-Hc)*k?F&>NYQ4Go}Rz8Vw-|rb1FsZU%jF;`O zj!Sv&QVzBpt}!mk8>zA{Jj#qYQI<=Weir4S7-yYwGRZh4%DG$#rBT|qEGZQaE!4ne zOoTy|Sus|Ni+;q)4apeo;^b(o+=-2qLjIp()SJ$@5U`g;jPK1TopLl(C6{s{Homl{ z!1V?*BF2l{Yh$G!Xzp}L-oC(2Io^7$#=;<=L0~bS77{nQ<+R;SE4w;D^ObR+J6L&N zJdOw9u}0CEDqF?49vipXSCZno9`+Tf|tTf}(fKfISN`d_W$6;$4e^4bTr zZs1tC&`e#$80)oJM9J1H`Y_VoZiY{T-zy@lBLH{etU7Ys=fB z7Hv8_i=Z?;;gvFePOU~i=)ugjQ@jjyE!--wkbzN+~lzz+lYAfPOkTVZ}inGIDb z%KNY%Q%X6_M<3-`AEVFG%vJVAgR;b!6y@IUI#6tU@FS6LsnPI^5lPvRD2JSKST3{M hkGw+!ZdmkJ_6ze+nmJ1=U4H-o002ovPDHLkV1labEja)H literal 0 HcmV?d00001 diff --git a/ControlServer/RoundedPanel.cs b/ControlServer/RoundedPanel.cs new file mode 100644 index 0000000..a27bb8e --- /dev/null +++ b/ControlServer/RoundedPanel.cs @@ -0,0 +1,49 @@ +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; +using System.ComponentModel; + +namespace ControlServer +{ + public class RoundedPanel : Panel + { + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int CornerRadius { get; set; } = 30; + + public RoundedPanel() + { + this.DoubleBuffered = true; + // 컨트롤의 배경색이 바뀔 때 다시 그리도록 설정 + this.SetStyle(ControlStyles.AllPaintingInWmPaint | + ControlStyles.OptimizedDoubleBuffer | + ControlStyles.ResizeRedraw | + ControlStyles.UserPaint, true); + } + + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + // 배경을 투명하게 처리하고 둥근 영역만 남김 + using (GraphicsPath path = new GraphicsPath()) + { + path.AddArc(0, 0, CornerRadius, CornerRadius, 180, 90); + path.AddArc(Width - CornerRadius - 1, 0, CornerRadius, CornerRadius, 270, 90); + path.AddArc(Width - CornerRadius - 1, Height - CornerRadius - 1, CornerRadius, CornerRadius, 0, 90); + path.AddArc(0, Height - CornerRadius - 1, CornerRadius, CornerRadius, 90, 90); + path.CloseAllFigures(); + + // 영역(Region)을 설정하여 모서리 바깥쪽을 클릭 방지 및 투명 처리 + this.Region = new Region(path); + + // 배경 채우기 + using (SolidBrush brush = new SolidBrush(this.BackColor)) + { + e.Graphics.FillPath(brush, path); + } + } + + base.OnPaint(e); + } + } +} \ No newline at end of file