Files
HawkeyeVision/Plugins/Siemens/B24SiemensPlugin/SiemensTCPSession.cs
2025-07-28 09:52:29 +02:00

29 lines
667 B
C#

using B24SiemensPlugin.TCP;
using Buffer = System.Buffer;
namespace B24SiemensPlugin;
public class SiemensTCPSession : TcpSession
{
public event Func<PLCPacket, PLCPacket>? OnPLCPacketReceived;
public SiemensTCPSession(TcpServer server) : base(server)
{
}
protected override void OnReceived(byte[] buffer, long offset, long size)
{
var data = new byte[size];
Buffer.BlockCopy(buffer, (int)offset, data, 0, (int)size);
PLCPacket packet = PLCPacket.Deserialize(data);
if(OnPLCPacketReceived!=null)
packet=OnPLCPacketReceived(packet);
SendAsync(packet.Serialize());
}
}