From 28ddc75eadee6c73da2b955e320132fdbecc88de Mon Sep 17 00:00:00 2001
From: C3031 <shitiangui@lanpucloud.cn>
Date: 星期五, 16 一月 2026 16:44:11 +0800
Subject: [PATCH] 修改关闭按钮位置
---
LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs | 147 ++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 140 insertions(+), 7 deletions(-)
diff --git a/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs b/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs
index c582b42..516d367 100644
--- a/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs
+++ b/LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs
@@ -1,43 +1,81 @@
锘縰sing LB_VisionProcesses.Communicators;
+using LB_VisionProcesses.Communicators.SiemensS7;
using LB_VisionProcesses.Communicators.TCom;
using ReaLTaiizor.Forms;
using RJCP.IO.Ports;
+using S7.Net;
using System.Diagnostics;
+using System.Linq;
namespace LB_SmartVision.Forms.Pages.CommunicatorPage
{
- public partial class CommunicatorForm : MaterialForm
+ public delegate void CommunicatorChange(BaseCommunicator communicator);
+ public partial class CommunicatorForm : Form
{
BaseCommunicator communicator { get; set; }
+
+ public event CommunicatorChange CommunicatorChanged;
+
+ private void communicatorChanged(BaseCommunicator communicator)
+ {
+ if (CommunicatorChanged != null)
+ {
+ CommunicatorChanged(communicator);
+ }
+ }
public CommunicatorForm()
{
InitializeComponent();
+ cmbType.Items.Clear();
+ if (communicator != null && !string.IsNullOrEmpty(communicator.CommunicatorConnections["鍨嬪彿"]?.ToString()))
+ {
+ cmbType.Items.Add(communicator.CommunicatorConnections["鍨嬪彿"]?.ToString());
+ }
}
public CommunicatorForm(BaseCommunicator communicator, string name)
{
InitializeComponent();
if (communicator == null)
+ {
return;
-
+ }
cmbIP.Enabled = false;
txtIP.Enabled = false;
txtPort.Enabled = false;
- this.Text = name;
+ 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 = "娉㈢壒鐜�";
@@ -48,24 +86,67 @@
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 = "绔彛";
}
- else if (communicator is LocalMonitor)
+ else if (communicator is SiemensLBS7)
{
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());
+ cmbType.Text = communicator.CommunicatorConnections["鍨嬪彿"]?.ToString();
+ }
+ if (!string.IsNullOrEmpty(communicator.CommunicatorConnections["鍙橀噺鍦板潃"]?.ToString()))
+ {
+ 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 = "鐩戞帶鏂囦欢";
- lblPort.Text = "鍐欏叆鏂囦欢";
+ lblIP.Text = "IP";
+ lblPort.Text = "妲�";
}
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();
@@ -78,6 +159,14 @@
return;
//鍙栨秷鍥炶皟鍑芥暟
communicator.MessageReceived -= ShowReceiveMsg;
+ if (communicator != null)
+ {
+ communicatorChanged(communicator);
+ if (GlobalVar.dicCommunicators != null && GlobalVar.dicCommunicators.Keys.Count > 0 && GlobalVar.dicCommunicators.Keys.Contains(communicator.CommunicatorName))
+ {
+ GlobalVar.dicCommunicators[communicator.CommunicatorName] = communicator;
+ }
+ }
}
catch (Exception ex)
{
@@ -159,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)
@@ -166,6 +273,8 @@
if (communicator.SendMessage(txtSendMsg.Text))
ShowSendMsg(txtSendMsg.Text);
+ else
+ ShowLogMsg(communicator.Msg);
}
private void btnRuleSend_Click(object sender, EventArgs e)
@@ -184,6 +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.Add("鍙橀噺鍦板潃", 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