C3204
2026-01-15 a987bb05357a451c8476098067573059287dc008
LB_SmartVision/Forms/Pages/CommunicatorPage/CommunicatorForm.cs
@@ -28,10 +28,14 @@
        {
            InitializeComponent();
            cmbType.Items.Clear();
            if (communicator != null && !string.IsNullOrEmpty(communicator.CommunicatorConnections["型号"]?.ToString()))
            {
                cmbType.Items.Add(communicator.CommunicatorConnections["型号"]?.ToString());
            }
            cmbVarType.Items.Clear();
            if (!string.IsNullOrEmpty(communicator.CommunicatorConnections["变量类型"]?.ToString()))
            {
                cmbVarType.Items.Add(communicator.CommunicatorConnections["变量类型"]?.ToString());
            }
        }
@@ -39,42 +43,37 @@
        {
            InitializeComponent();
            if (communicator == null)
            {
                return;
            }
            cmbIP.Enabled = false;
            txtIP.Enabled = false;
            txtPort.Enabled = false;
            lblType.Visible = false;
            lblAddress.Visible = false;
            cmbType.Visible = false;
            txtAddress.Visible = false;
            lbVarType.Visible = false;
            cmbVarType.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;
                lblIP.Text = "COM口";
                lblPort.Text = "波特率";
            }
@@ -84,15 +83,11 @@
                txtPort.SelectedText = 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;
                lblIP.Text = "地址";
                lblPort.Text = "端口";
            }
@@ -101,7 +96,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,15 +105,20 @@
                {
                    txtAddress.Text = communicator.CommunicatorConnections["变量地址"]?.ToString();
                }
                if (!string.IsNullOrEmpty(communicator.CommunicatorConnections["变量类型"]?.ToString()))
                {
                    cmbVarType.Items.Add(communicator.CommunicatorConnections["变量类型"]?.ToString());
                    cmbVarType.Text = communicator.CommunicatorConnections["变量类型"]?.ToString();
                }
                lbVarType.Visible = true;
                cmbVarType.Visible = true;
                txtIP.Visible = true;
                cmbIP.Visible = false;
                this.btnRuleSend.Visible = false;
                lblType.Visible = true;
                lblAddress.Visible = true;
                cmbType.Visible = true;
                txtAddress.Visible = true;
                lblIP.Text = "IP";
                lblPort.Text = "槽";
            }
@@ -267,5 +266,18 @@
                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);
            }
        }
    }
}