using LB_VisionProcesses.Communicators;
|
using LB_VisionProcesses.Communicators.TCom;
|
using RJCP.IO.Ports;
|
using System;
|
using System.Collections.Concurrent;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.IO.Ports;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace LB_SmartVision.Forms.Pages.CommunicatorPage
|
{
|
public partial class CreateCommunicatorForm : Form
|
{
|
public BaseCommunicator communicator { get; set; }
|
|
public bool bCreate = false;
|
|
public CreateCommunicatorForm(BaseCommunicator communicator = null)
|
{
|
InitializeComponent();
|
// 禁止修改窗口大小
|
this.FormBorderStyle = FormBorderStyle.FixedDialog;
|
if (communicator == null)
|
communicator = new UARTPort();
|
|
rButtonUART.Checked = true;
|
uiButtonCreate.Enabled = false;
|
}
|
|
private void uiButtonTest_Click(object sender, EventArgs e)
|
{
|
uiButtonCreate.Enabled = false;
|
|
rButtonUART.Enabled = false;
|
rButtonTCPServer.Enabled = false;
|
rButtonTCPClient.Enabled = false;
|
rButtonMonitor.Enabled = false;
|
|
if (communicator != null)
|
communicator.Disconnect();
|
|
if (rButtonUART.Checked)
|
{
|
communicator = new UARTPort();
|
|
IP = uiComboBoxPort.Text;
|
PORT = uiTextBoxPort.Text;
|
}
|
else if (rButtonTCPServer.Checked)
|
{
|
communicator = new TCPServer();
|
|
IP = uiIPTextBox.Text;
|
PORT = uiTextBoxPort.Text;
|
}
|
else if (rButtonTCPClient.Checked)
|
{
|
communicator = new TCPClient();
|
|
IP = uiIPTextBox.Text;
|
PORT = uiTextBoxPort.Text;
|
}
|
else if (rButtonMonitor.Checked)
|
{
|
communicator = new LocalMonitor();
|
|
IP = uiTextBoxPath.Text;
|
PORT = uiTextBoxPort.Text;
|
}
|
else
|
{
|
MessageBox.Show("未选择通讯类型!", "异常");
|
return;
|
}
|
|
communicator.CommunicatorConnections.Add("地址", IP);
|
communicator.CommunicatorConnections.Add("端口", PORT);
|
if (communicator.Connect())
|
{
|
uiButtonCreate.Enabled = true;
|
communicator.Disconnect();
|
}
|
else
|
MessageBox.Show($"初始化通讯口失败,原因是:{communicator.Msg}", "异常");
|
}
|
|
public string IP = string.Empty;
|
public string PORT = string.Empty;
|
|
private void uiButtonCreate_Click(object sender, EventArgs e)
|
{
|
if (communicator.Connect())
|
{
|
bCreate = true;
|
this.Close();
|
}
|
else
|
MessageBox.Show($"初始化通讯口失败,原因是:{communicator.Msg}", "异常");
|
}
|
|
private void uiButtonCancel_Click(object sender, EventArgs e)
|
{
|
if (communicator != null)
|
communicator.Disconnect();
|
|
bCreate = false;
|
this.Close();
|
}
|
|
private void rButtonUART_CheckedChanged(object sender, EventArgs e)
|
{
|
uiButtonCreate.Enabled = false;
|
if (communicator != null)
|
communicator.Disconnect();
|
|
if (rButtonUART.Checked)
|
{
|
uiLabelIP.Visible = true;
|
uiLabelIP.Text = "COM口";
|
uiIPTextBox.Visible = false;
|
uiComboBoxPort.Visible = true;
|
uiTextBoxPath.Visible = false;
|
|
uiLabelPort.Visible = true;
|
uiLabelPort.Text = "波特率";
|
uiTextBoxPort.Visible = true;
|
|
uiButtonCreate.Enabled = false;
|
}
|
}
|
|
private void rButtonTCPServer_CheckedChanged(object sender, EventArgs e)
|
{
|
uiButtonCreate.Enabled = false;
|
if (communicator != null)
|
communicator.Disconnect();
|
|
if (rButtonTCPServer.Checked)
|
{
|
uiLabelIP.Visible = true;
|
uiLabelIP.Text = "地址";
|
uiIPTextBox.Visible = true;
|
uiComboBoxPort.Visible = false;
|
uiTextBoxPath.Visible = false;
|
|
uiLabelPort.Visible = true;
|
uiLabelPort.Text = "端口";
|
uiTextBoxPort.Visible = true;
|
|
uiButtonCreate.Enabled = false;
|
}
|
}
|
|
private void rButtonTCPClient_CheckedChanged(object sender, EventArgs e)
|
{
|
uiButtonCreate.Enabled = false;
|
if (communicator != null)
|
communicator.Disconnect();
|
|
if (rButtonTCPClient.Checked)
|
{
|
uiLabelIP.Visible = true;
|
uiLabelIP.Text = "地址";
|
uiIPTextBox.Visible = true;
|
uiComboBoxPort.Visible = false;
|
uiTextBoxPath.Visible = false;
|
|
uiLabelPort.Visible = true;
|
uiLabelPort.Text = "端口";
|
uiTextBoxPort.Visible = true;
|
}
|
}
|
|
private void rButtonMonitor_CheckedChanged(object sender, EventArgs e)
|
{
|
uiButtonCreate.Enabled = false;
|
if (communicator != null)
|
communicator.Disconnect();
|
|
if (rButtonMonitor.Checked)
|
{
|
uiLabelIP.Visible = true;
|
uiLabelIP.Text = "监控文件";
|
uiIPTextBox.Visible = false;
|
uiComboBoxPort.Visible = false;
|
uiTextBoxPath.Visible = true;
|
|
uiLabelPort.Visible = true;
|
uiLabelPort.Text = "写入文件";
|
uiTextBoxPort.Visible = true;
|
}
|
}
|
|
private void uiComboBoxPort_MouseClick(object sender, MouseEventArgs e)
|
{
|
uiButtonCreate.Enabled = false;
|
uiComboBoxPort.Text = string.Empty;
|
|
uiComboBoxPort.Items.Clear();
|
//统计可用端口
|
SerialPortStream temp = new SerialPortStream();
|
string[] ArryPort = temp.GetPortNames();
|
for (int i = 0; i < ArryPort.Length; i++)
|
uiComboBoxPort.Items.Add(ArryPort[i]);
|
}
|
|
private void uiTextBoxPort_TextChanged(object sender, EventArgs e)
|
{
|
uiButtonCreate.Enabled = false;
|
}
|
|
private void uiIPTextBox_MouseClick(object sender, MouseEventArgs e)
|
{
|
uiButtonCreate.Enabled = false;
|
}
|
}
|
}
|