Skip to content

Commit a3b6df6

Browse files
committed
串口初始化优化
1 parent 9644d6f commit a3b6df6

File tree

5 files changed

+64
-40
lines changed

5 files changed

+64
-40
lines changed

CommunTools/Enums/FuncItemCom.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public enum Com_BaseFuncItem
7676
/// WebSocket
7777
/// </summary>
7878
[Description(" UDP通讯")]
79-
[FuncURI("Frm_ComWebSocket")]
79+
[FuncURI("Frm_ComUDP")]
8080
COM_ComUDP = 9
8181
}
8282

CommunTools/FrmBaseCom/Frm_ComWebSocket.cs

+6-4
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ private void OpenWSServer()
7474
private void MessageReceived()
7575
{
7676
//注册消息接收事件,接收服务端发送的数据
77-
wsClient.MessageReceived += (data) => {
77+
wsClient.MessageReceived += (data) =>
78+
{
7879

7980
StringBuilder sb = new StringBuilder();
8081
sb.AppendFormat("[{0}]# \n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
@@ -83,7 +84,7 @@ private void MessageReceived()
8384
txtShowMsg.Text += sb.ToString();
8485
};
8586
}
86-
87+
8788
void ShowMsg(string str)
8889
{
8990
txtShowMsg.AppendText(str + "\r\n");
@@ -94,15 +95,16 @@ private void btnSend_BtnClick(object sender, EventArgs e)
9495
if (!string.IsNullOrWhiteSpace(richTextBox_Send.Text.Trim()))
9596
{
9697
string inputMsg = richTextBox_Send.Text.ToString();
97-
98+
9899
wsClient.SendMessage(inputMsg);
99100
MessageReceived();
100101
}
101102
}
102103

103104
private void Frm_ComWebSocket_FormClosed(object sender, FormClosedEventArgs e)
104105
{
105-
wsClient.Dispose();
106+
if (wsClient != null)
107+
wsClient.Dispose();
106108
}
107109
}
108110
}

CommunTools/FrmBaseCom/Frm_SerialPort.cs

+14-25
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,15 @@ private void btnOpenServer_BtnClick(object sender, EventArgs e)
121121
serialPort1.StopBits = (StopBits)System.Enum.Parse(typeof(StopBits), cmbStopBits.Text);
122122
serialPort1.Handshake = (Handshake)System.Enum.Parse(typeof(Handshake), cmbHandShake.Text);
123123

124+
serialPort1.ReceivedBytesThreshold = 1;
125+
124126
serialPort1.RtsEnable = ckbRts.Checked;
125127
serialPort1.DtrEnable = ckbDtr.Checked;
126128

127129
serialPort1.WriteBufferSize = 1048576; /* 输出缓冲区的大小为1048576字节 = 1MB */
128130
serialPort1.ReadBufferSize = 2097152; /* 输入缓冲区的大小为2097152字节 = 2MB */
129131

130-
SetSeriaPortEncoding();
132+
serialPort1.Encoding = SetSeriaPortEncoding((EnumEncoding)System.Enum.Parse(typeof(EnumEncoding), cmbEncoding.Text));
131133

132134
try
133135
{
@@ -155,31 +157,18 @@ private void btnOpenServer_BtnClick(object sender, EventArgs e)
155157
}
156158
}
157159

158-
private void SetSeriaPortEncoding()
159-
{
160-
EnumEncoding encoding = (EnumEncoding)System.Enum.Parse(typeof(EnumEncoding), cmbEncoding.Text);
161-
switch (encoding)
162-
{
163-
case EnumEncoding.ASCII:
164-
165-
serialPort1.Encoding = System.Text.Encoding.ASCII;
166-
break;
167-
case EnumEncoding.UTF8:
168-
169-
serialPort1.Encoding = System.Text.Encoding.UTF8;
170-
break;
171-
case EnumEncoding.Unicode:
160+
// EnumEncoding encoding = (EnumEncoding)System.Enum.Parse(typeof(EnumEncoding), cmbEncoding.Text);
172161

173-
serialPort1.Encoding = System.Text.Encoding.Unicode;
174-
break;
175-
case EnumEncoding.UTF32:
162+
private Encoding SetSeriaPortEncoding(EnumEncoding encoding) =>
163+
encoding switch
164+
{
165+
EnumEncoding.ASCII => Encoding.ASCII,
166+
EnumEncoding.UTF8 => Encoding.UTF8,
167+
EnumEncoding.Unicode => Encoding.Unicode,
168+
EnumEncoding.UTF32 => Encoding.UTF32,
169+
_ => throw new ArgumentException(message: "invalid enum value", paramName: nameof(encoding))
176170

177-
serialPort1.Encoding = System.Text.Encoding.UTF32;
178-
break;
179-
default:
180-
break;
181-
}
182-
}
171+
};
183172

184173
private void SetBtnEnable(bool isEnable)
185174
{
@@ -659,7 +648,7 @@ private void cmbEncoding_SelectedIndexChanged(object sender, EventArgs e)
659648
{
660649
if (cmbEncoding.SelectedIndex >= 0)
661650
{
662-
SetSeriaPortEncoding();
651+
serialPort1.Encoding = SetSeriaPortEncoding((EnumEncoding)System.Enum.Parse(typeof(EnumEncoding), cmbEncoding.Text));
663652
}
664653
}
665654
}

CommunTools/FrmBaseCom/Frm_SerialServer.Designer.cs

+38-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CommunTools/FrmBaseCom/Frm_SerialServer.cs

+5-3
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ private void InitializeSerialSet()
4242
(cmbPortParity,EnumHelper.GetEnumList(typeof(sp.PortParity))),
4343
(cmbBandRate,EnumHelper.GetEnumList(typeof(sp.BandRate))),
4444
(cmbStopBits,EnumHelper.GetEnumList(typeof(sp.StopBits))),
45-
(cmbDataBits,EnumHelper.GetEnumList(typeof(sp.DataBit)))
45+
(cmbDataBits,EnumHelper.GetEnumList(typeof(sp.DataBit))),
46+
(cmbHandShake,EnumHelper.GetEnumList(typeof(sp.HandShake)))
4647
};
4748

4849
foreach ((SkinComboBox box, IList<EnumListModel> enumModel) item in ps)
@@ -159,7 +160,7 @@ private bool InitSerialPort(TCPComServer comServer)
159160
comServer.EntitySerialPort.WriteTimeout = 3000;
160161

161162
//设置数据流控制;数据传输的握手协议
162-
comServer.EntitySerialPort.Handshake = Handshake.None;
163+
comServer.EntitySerialPort.Handshake = (Handshake)System.Enum.Parse(typeof(Handshake), cmbHandShake.Text);
163164
comServer.EntitySerialPort.ReceivedBytesThreshold = 1;
164165
comServer.EntitySerialPort.RtsEnable = true;
165166

@@ -287,7 +288,8 @@ private void ListenClient(object comServer)
287288
server.TCPClient = server.EntityTCPListen.AcceptTcpClient();
288289
}
289290
catch
290-
{ }
291+
{
292+
}
291293
if (server.TCPClient == null)
292294
{
293295
continue;

0 commit comments

Comments
 (0)