设备列表

This commit is contained in:
hsc
2026-06-10 16:27:35 +08:00
parent 2e07c0c446
commit 420ca0ffd6
12 changed files with 189 additions and 38 deletions

View File

@@ -0,0 +1,27 @@
using System.IO.Ports;
namespace DeviceCommand.Base
{
/// <summary>
/// 串口通信参数DeviceCommand 内部纯数据类,供设备类构造函数使用)。
/// 与 UIShare.UIViewModel.SerialPortConfigVM 字段一一对应,
/// StopBits / Parity 在此处使用 System.IO.Ports 强类型枚举,
/// 由 DeviceManager 从字符串解析后填入。
/// </summary>
public class SerialPortConfig
{
public string PortName { get; set; } = "COM1";
public int BaudRate { get; set; } = 9600;
public int DataBits { get; set; } = 8;
public StopBits StopBits { get; set; } = StopBits.One;
public Parity Parity { get; set; } = Parity.None;
public int ReadTimeout { get; set; } = 3000;
public int WriteTimeout { get; set; } = 3000;
}
}

View File

@@ -25,6 +25,15 @@ namespace DeviceCommand.Base
_serialPort = new SerialPort();
}
/// <summary>
/// 通过 <see cref="SerialPortConfig"/> 一次性配置串口通信参数。
/// </summary>
public Serial_Port(SerialPortConfig config) : this()
{
if (config == null) return;
ConfigureDevice(config.PortName, config.BaudRate, config.DataBits, config.StopBits, config.Parity, config.ReadTimeout, config.WriteTimeout);
}
public void ConfigureDevice(string portName, int baudRate, int dataBits = 8, StopBits stopBits = StopBits.One, Parity parity = Parity.None, int readTimeout = 3000, int writeTimeout = 3000)
{
PortName = portName;

View File

@@ -23,6 +23,15 @@ namespace DeviceCommand.Base
_tcpClient = new TcpClient();
}
/// <summary>
/// 通过 <see cref="TcpConfig"/> 一次性配置 TCP 通信参数。
/// </summary>
public Tcp(TcpConfig config) : this()
{
if (config == null) return;
ConfigureDevice(config.IPAddress, config.Port, config.SendTimeout, config.ReceiveTimeout);
}
public void ConfigureDevice(string ipAddress, int port, int sendTimeout = 3000, int receiveTimeout = 3000)
{
IPAddress = ipAddress;

View File

@@ -0,0 +1,17 @@
namespace DeviceCommand.Base
{
/// <summary>
/// TCP 通信参数DeviceCommand 内部纯数据类,供设备类构造函数使用)。
/// 与 UIShare.UIViewModel.TcpConfigVM 字段一一对应,由 DeviceManager 在实例化时填充。
/// </summary>
public class TcpConfig
{
public string IPAddress { get; set; } = "127.0.0.1";
public int Port { get; set; } = 502;
public int SendTimeout { get; set; } = 3000;
public int ReceiveTimeout { get; set; } = 3000;
}
}