DataBlockInfoRequest.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using PlcSiemens.O;
  2. using PlcSiemens.Protocol.Common;
  3. using PlcSiemens.Protocol.Header;
  4. namespace PlcSiemens.Protocol.ListBlocks
  5. {
  6. public class DataBlockInfoRequest : IBuildRequest
  7. {
  8. public HeaderPacket Header { get; set; }
  9. public ParamsRequest Params { get; set; }
  10. public DataBlockInfoDataRequest Data { get; set; }
  11. public BlockType BlockType { get; set; }
  12. public ushort DB { get; set; }
  13. public DataBlockInfoRequest()
  14. {
  15. Header = new HeaderPacket();
  16. Params = new ParamsRequest();
  17. Data = new DataBlockInfoDataRequest();
  18. }
  19. public void Build()
  20. {
  21. Data.Build(BlockType, DB);
  22. Params.Build(true, 0x00, GrType.GrBlocksInfo, PduFuncType.SFunBlkInfo);
  23. Header.Build(PduType.Userdata, Params.PacketLength, Data.PacketLength);
  24. }
  25. public ByteBuffer GetBuffer()
  26. {
  27. ByteBuffer buffer = ByteBuffer.Allocate();
  28. Header.GetByteBuffer(buffer);
  29. Params.GetByteBuffer(buffer);
  30. Data.GetByteBuffer(buffer);
  31. return buffer;
  32. }
  33. }
  34. }