NegotiateRequest.cs 878 B

123456789101112131415161718192021222324252627282930313233
  1. using Core.Communication.Transport;
  2. using PLC.Siemens.Protocol.Common;
  3. using PLC.Siemens.Protocol.Header;
  4. using PLC.Siemens.O;
  5. namespace PLC.Siemens.Protocol.Negotiate
  6. {
  7. public class NegotiateRequest : IBuildRequest
  8. {
  9. public HeaderPacket Header { get; set; }
  10. public NegotiateRequestParams Params { get; set; }
  11. public ushort PduRequestLength { get; set; }
  12. public void Build()
  13. {
  14. Header = new HeaderPacket();
  15. Params = new NegotiateRequestParams();
  16. Header.Build(PduType.Request, Params.PacketLength, 0x00);
  17. Params.Build(PduRequestLength);
  18. }
  19. public ByteBuffer GetBuffer()
  20. {
  21. ByteBuffer buffer = ByteBuffer.Allocate();
  22. Header.GetByteBuffer(buffer);
  23. Params.GetByteBuffer(buffer);
  24. return buffer;
  25. }
  26. }
  27. }