Skip to content

Commit 180a9c2

Browse files
committed
feat: 패킷 분리 버퍼 추가
1 parent a8c9589 commit 180a9c2

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

Data/RequestPacket.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ private RequestPacket(byte slaveAddr, byte functionCode, byte[] data, byte byteC
3838

3939
public RequestPacket(byte[] frame)
4040
{
41+
_frame = frame;
4142
if (frame[1] == 0x0F || frame[1] == 0x10)
4243
{
4344
_slaveAddr = frame[0];
@@ -54,7 +55,7 @@ public RequestPacket(byte[] frame)
5455
{
5556
_slaveAddr = frame[0];
5657
_functionCode = frame[1];
57-
_data = new byte[frame.Length - 5];
58+
_data = new byte[frame.Length - 4];
5859
Array.Copy(frame, 2, _data, 0, _data.Length);
5960
_crc = new byte[2];
6061
Array.Copy(frame, frame.Length - 2, _crc, 0, 2);

MainForm.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ namespace ModBusSimMaster
66
public partial class MainForm : Form
77
{
88
private readonly SerialPort serialPort;
9+
private readonly List<byte> packetBuffer = [];
910

1011
public MainForm()
1112
{
@@ -45,14 +46,19 @@ private void SetControls(bool isOpen)
4546
addressTextBox.Enabled = isOpen;
4647
dataTextBox.Enabled = isOpen;
4748
txBtn.Enabled = isOpen;
49+
selPortNm.Enabled = !isOpen;
4850
}
4951

50-
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
52+
private async void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
5153
{
54+
await Task.Delay(100); // 100ms Áö¿¬ Ãß°¡
55+
5256
SerialPort sp = (SerialPort)sender;
5357
byte[] buffer = new byte[sp.BytesToRead];
5458
sp.Read(buffer, 0, buffer.Length);
5559

60+
61+
5662
var packet = new RequestPacket(buffer);
5763
byte[] crc = new byte[2];
5864
Array.Copy(buffer, buffer.Length - 2, crc, 0, 2);
@@ -132,5 +138,6 @@ private byte SelFuncCodeToByte()
132138
};
133139
;
134140
}
141+
135142
}
136143
}

0 commit comments

Comments
 (0)