| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | 
							- using System.Collections.Generic;
 
- using Houdar.Core.Communication.Transport;
 
- using Houdar.Core.Util.Extension;
 
- using Houdar.PLC.Driver.Simenss.Protocol.Common;
 
- using Houdar.PLC.Driver.Simenss.Protocol.Header;
 
- using Houdar.PLC.Driver.Simenss.Protocol.ReadData;
 
- namespace Houdar.PLC.Driver.Simenss.Protocol.WriteData
 
- {
 
-     public class WriteRequest:IBuildRequest
 
-     {
 
-         public HeaderPacket Header { get; set; }
 
-         public WriteParamsRequest Params { get; set; }
 
-         public WriteDataRequest[] Data { get; set; }
 
-         public List<DataItem> DataItems { get; set; }
 
-         public WriteRequest()
 
-         {
 
-             Header = new HeaderPacket();
 
-             Params = new WriteParamsRequest();
 
-         }
 
-         public void Build()
 
-         {
 
-             Params.Build(DataItems);
 
-             Data = new WriteDataRequest[DataItems.Count];
 
-             ushort dataLength = 0;
 
-             for (int i = 0; i < DataItems.Count; i++)
 
-             {
 
-                 var tmp = new WriteDataRequest();
 
-                 Data[i] = tmp;
 
-                 var dataItem = DataItems[i];
 
-                 tmp.Build(dataItem, i == DataItems.Count - 1);
 
-                 dataLength += tmp.PacketLength;
 
-             }
 
-             ushort paramsLength = Params.PacketLength;
 
-             Header.Build(PduType.Request, paramsLength, dataLength);
 
-         }
 
-         public ByteBuffer GetBuffer()
 
-         {
 
-             ByteBuffer buffer = ByteBuffer.Allocate();
 
-             Header.GetByteBuffer(buffer);
 
-             Params.GetByteBuffer(buffer);
 
-             Data.ForEach(t => t.GetByteBuffer(buffer));
 
-             return buffer;
 
-         }
 
-     }
 
- }
 
 
  |