SzlRequest.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using PlcSiemens.O;
  2. using PlcSiemens.Protocol.Common;
  3. using PlcSiemens.Protocol.Header;
  4. namespace PlcSiemens.Protocol.Szl
  5. {
  6. public class SzlRequest : IBuildRequest
  7. {
  8. public HeaderPacket Header { get; set; }
  9. public ParamsRequest Params { get; set; }
  10. public SzlDataRequest Data { get; set; }
  11. public bool First = true;
  12. public byte Seq = 0x00;
  13. public ushort ID { get; set; }
  14. public ushort Index = 0x0000;
  15. public SzlRequest()
  16. {
  17. Header = new HeaderPacket();
  18. Params = new ParamsRequest();
  19. Data = new SzlDataRequest();
  20. }
  21. public void Build()
  22. {
  23. Params.Build(First, Seq, GrType.GrSzl, PduFuncType.SFunReadSzl);
  24. Data.Build(First, ID, Index);
  25. Header.Build(PduType.Userdata, Params.PacketLength, Data.PacketLength);
  26. }
  27. public ByteBuffer GetBuffer()
  28. {
  29. ByteBuffer buffer = ByteBuffer.Allocate();
  30. Header.GetByteBuffer(buffer);
  31. Params.GetByteBuffer(buffer);
  32. Data.GetByteBuffer(buffer);
  33. return buffer;
  34. }
  35. }
  36. }