From ebcc1d53f14112363bbf539bcaf0202aadcdc9d7 Mon Sep 17 00:00:00 2001
From: C3032 <1057644574@qq.com>
Date: 星期一, 13 四月 2026 12:58:58 +0800
Subject: [PATCH] 2D取图计数功能完成

---
 LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs |   87 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 69 insertions(+), 18 deletions(-)

diff --git a/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs b/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs
index 0e70eb0..516d367 100644
--- a/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs
+++ b/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs
@@ -28,7 +28,6 @@
         {
             InitializeComponent();
             cmbType.Items.Clear();
-
             if (communicator != null && !string.IsNullOrEmpty(communicator.CommunicatorConnections["鍨嬪彿"]?.ToString()))
             {
                 cmbType.Items.Add(communicator.CommunicatorConnections["鍨嬪彿"]?.ToString());
@@ -39,41 +38,44 @@
         {
             InitializeComponent();
             if (communicator == null)
+            {
                 return;
-
+            }
             cmbIP.Enabled = false;
             txtIP.Enabled = false;
             txtPort.Enabled = false;
+            cmbDataType.Enabled = false;
 
 
             lblType.Visible = false;
             lblAddress.Visible = false;
             cmbType.Visible = false;
             txtAddress.Visible = false;
+            lblDataType.Visible = false;
+            cmbDataType.Visible = false;
 
 
             this.Text = name;
-
             if (communicator is UARTPort)
             {
                 //缁熻鍙敤绔彛
                 SerialPortStream temp = new SerialPortStream();
                 string[] ArryPort = temp.GetPortNames();
                 for (int i = 0; i < ArryPort.Length; i++)
+                {
                     cmbIP.Items.Add(ArryPort[i]);
-
+                }
                 cmbIP.Text = communicator.CommunicatorConnections["鍦板潃"]?.ToString();
                 txtPort.Text = communicator.CommunicatorConnections["绔彛"]?.ToString();
                 txtIP.Visible = false;
                 cmbIP.Visible = true;
-
                 this.btnRuleSend.Visible = true;
-
-
                 lblType.Visible = false;
                 lblAddress.Visible = false;
                 cmbType.Visible = false;
                 txtAddress.Visible = false;
+                lblDataType.Visible = false;
+                cmbDataType.Visible = false;
 
                 lblIP.Text = "COM鍙�";
                 lblPort.Text = "娉㈢壒鐜�";
@@ -81,17 +83,16 @@
             else if (communicator is TCPClient || communicator is TCPServer)
             {
                 txtIP.Text = communicator.CommunicatorConnections["鍦板潃"]?.ToString();
-                txtPort.SelectedText = communicator.CommunicatorConnections["绔彛"]?.ToString();
+                txtPort.Text = communicator.CommunicatorConnections["绔彛"]?.ToString();
                 txtIP.Visible = true;
                 cmbIP.Visible = false;
-
                 this.btnRuleSend.Visible = false;
-
-
                 lblType.Visible = false;
                 lblAddress.Visible = false;
                 cmbType.Visible = false;
                 txtAddress.Visible = false;
+                lblDataType.Visible = false;
+                cmbDataType.Visible = false;
 
                 lblIP.Text = "鍦板潃";
                 lblPort.Text = "绔彛";
@@ -101,7 +102,6 @@
                 txtIP.Text = communicator.CommunicatorConnections["鍦板潃"]?.ToString();
                 txtPort.Text = communicator.CommunicatorConnections["绔彛"]?.ToString();
                 cmbType.Items.Clear();
-
                 if (!string.IsNullOrEmpty(communicator.CommunicatorConnections["鍨嬪彿"]?.ToString()))
                 {
                     cmbType.Items.Add(communicator.CommunicatorConnections["鍨嬪彿"]?.ToString());
@@ -111,14 +111,25 @@
                 {
                     txtAddress.Text = communicator.CommunicatorConnections["鍙橀噺鍦板潃"]?.ToString();
                 }
+
+                // 鍒濆鍖栨暟鎹被鍨�
+                cmbDataType.Items.Clear();
+                cmbDataType.Items.AddRange(new string[] { "String", "Bool", "Byte", "Int", "DInt", "Real", "Double", "Word", "DWord" });
+                if (communicator.CommunicatorConnections.Contains("鏁版嵁绫诲瀷"))
+                    cmbDataType.Text = communicator.CommunicatorConnections["鏁版嵁绫诲瀷"].ToString();
+                else
+                    cmbDataType.Text = "String";
+
                 txtIP.Visible = true;
                 cmbIP.Visible = false;
                 this.btnRuleSend.Visible = false;
-
                 lblType.Visible = true;
                 lblAddress.Visible = true;
                 cmbType.Visible = true;
                 txtAddress.Visible = true;
+                lblDataType.Visible = true;
+                cmbDataType.Visible = true;
+                cmbDataType.Enabled = true; // 鍚敤鏁版嵁绫诲瀷閫夋嫨
 
                 lblIP.Text = "IP";
                 lblPort.Text = "妲�";
@@ -127,6 +138,15 @@
             this.communicator = communicator;
             //鍔犺浇鍥炶皟鍑芥暟
             Subscribe();
+        }
+
+        private void cmbDataType_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            if (communicator != null)
+            {
+                communicator.CommunicatorConnections.Add("鏁版嵁绫诲瀷", cmbDataType.Text);
+                communicatorChanged(communicator);
+            }
         }
 
         private void CommunicatorForm_FormClosing(object sender, FormClosingEventArgs e) => Unsubscribe();
@@ -228,6 +248,24 @@
             }
         }
 
+        private void ShowLogMsg(string msg)
+        {
+            // 濡傛灉褰撳墠涓嶆槸 UI 绾跨▼锛屽垯閫氳繃 Invoke 灏嗘搷浣滆皟搴﹀埌 UI 绾跨▼
+            if (this.InvokeRequired)
+            {
+                this.Invoke(new Action<string>((message) =>
+                {
+                    this.txtReceiveMsg.AppendText("[" + DateTime.Now.ToString("HH:mm:ss.fff") + "] " + message + "\r\n");
+                    this.txtReceiveMsg.ScrollToCaret();
+                }), msg);
+            }
+            else
+            {
+                this.txtReceiveMsg.AppendText("[" + DateTime.Now.ToString("HH:mm:ss.fff") + "] " + msg + "\r\n");
+                this.txtReceiveMsg.ScrollToCaret();
+            }
+        }
+
         private void btnSend_Click(object sender, EventArgs e)
         {
             if (communicator == null)
@@ -235,6 +273,8 @@
 
             if (communicator.SendMessage(txtSendMsg.Text))
                 ShowSendMsg(txtSendMsg.Text);
+            else
+                ShowLogMsg(communicator.Msg);
         }
 
         private void btnRuleSend_Click(object sender, EventArgs e)
@@ -253,19 +293,30 @@
 
             if (communicator.SendMessage(SendMsg))
                 ShowSendMsg(SendMsg);
+            else
+                ShowLogMsg(communicator.Msg);
         }
 
         private void txtAddress_TextChanged(object sender, EventArgs e)
         {
-            if (communicator != null && !communicator.CommunicatorConnections.Contains("鍙橀噺鍦板潃"))
+            if (communicator != null)
             {
                 communicator.CommunicatorConnections.Add("鍙橀噺鍦板潃", txtAddress.Text);
-            }
-            else if (communicator != null)
-            {
-                communicator.CommunicatorConnections["鍙橀噺鍦板潃"] = txtAddress.Text;
                 communicatorChanged(communicator);
             }
         }
+
+        private void cmbVarType_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            //if (communicator != null && !communicator.CommunicatorConnections.Contains("鍙橀噺绫诲瀷"))
+            //{
+            //    communicator.CommunicatorConnections.Add("鍙橀噺绫诲瀷", cmbVarType.Text);
+            //}
+            //else if (communicator != null)
+            //{
+            //    communicator.CommunicatorConnections["鍙橀噺绫诲瀷"] = cmbVarType.Text;
+            //    communicatorChanged(communicator);
+            //}
+        }
     }
 }

--
Gitblit v1.9.3