| | |
| | | cmbIP.Enabled = false; |
| | | txtIP.Enabled = false; |
| | | txtPort.Enabled = false; |
| | | cmbDataType.Enabled = false; |
| | | |
| | | |
| | | lblType.Visible = false; |
| | | lblAddress.Visible = false; |
| | | cmbType.Visible = false; |
| | | txtAddress.Visible = false; |
| | | lbVarType.Visible = false; |
| | | cmbVarType.Visible = false; |
| | | lblDataType.Visible = false; |
| | | cmbDataType.Visible = false; |
| | | |
| | | |
| | | this.Text = name; |
| | | if (communicator is UARTPort) |
| | | { |
| | |
| | | lblAddress.Visible = false; |
| | | cmbType.Visible = false; |
| | | txtAddress.Visible = false; |
| | | lblDataType.Visible = false; |
| | | cmbDataType.Visible = false; |
| | | |
| | | lblIP.Text = "COM口"; |
| | | lblPort.Text = "波特率"; |
| | | } |
| | | 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; |
| | |
| | | lblAddress.Visible = false; |
| | | cmbType.Visible = false; |
| | | txtAddress.Visible = false; |
| | | lblDataType.Visible = false; |
| | | cmbDataType.Visible = false; |
| | | |
| | | lblIP.Text = "地址"; |
| | | lblPort.Text = "端口"; |
| | | } |
| | |
| | | { |
| | | 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; |
| | | |
| | | // 初始化数据类型 |
| | | 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; |
| | |
| | | lblAddress.Visible = true; |
| | | cmbType.Visible = true; |
| | | txtAddress.Visible = true; |
| | | lblDataType.Visible = true; |
| | | cmbDataType.Visible = true; |
| | | cmbDataType.Enabled = true; // 启用数据类型选择 |
| | | |
| | | 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(); |
| | |
| | | } |
| | | } |
| | | |
| | | 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) |
| | |
| | | |
| | | if (communicator.SendMessage(txtSendMsg.Text)) |
| | | ShowSendMsg(txtSendMsg.Text); |
| | | else |
| | | ShowLogMsg(communicator.Msg); |
| | | } |
| | | |
| | | private void btnRuleSend_Click(object sender, EventArgs e) |
| | |
| | | |
| | | 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); |
| | | } |
| | | } |