| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- using System;
 
- using Houdar.PLC.Driver.Simenss.Protocol.Common;
 
- using Houdar.PLC.Driver.Simenss.Protocol.ReadData;
 
- using ByteBuffer = Houdar.Core.Communication.Transport.ByteBuffer;
 
- namespace Houdar.PLC.Driver.Simenss.Protocol.WriteData
 
- {
 
-     public class WriteDataRequest
 
-     {
 
-         public byte ReturnCode { get; set; }
 
-         public byte TransportSize { get; set; }
 
-         public ushort DataLength { get; set; }
 
-         public byte[] Data { get; set; }// 17 = header + params + data header -1
 
-         public ushort PacketLength { get { return (ushort)(0x04 + Data.Length); } }
 
-         public void Build(DataItem item, bool isLast)
 
-         {
 
-             var sizeByte = (ushort)(item.SizeByte*item.Length);
 
-             ReturnCode = 0x00;
 
-             switch (item.DataType)
 
-             {
 
-                 case DataType.Bit:
 
-                     TransportSize = (byte)TsType.TsResBit; ;
 
-                     break;
 
-                 case DataType.Int:
 
-                 case DataType.DInt:
 
-                     TransportSize = (byte)TsType.TsResInt;
 
-                     break;
 
-                 case DataType.Real:
 
-                     TransportSize = (byte)TsType.TsResReal;// TS_ResReal;
 
-                     break;
 
-                 case DataType.Char:
 
-                 case DataType.Counter:
 
-                 case DataType.Timer:
 
-                     TransportSize = (byte)TsType.TsResOctet;//TS_ResOctet;
 
-                     break;
 
-                 default:
 
-                     TransportSize = (byte)TsType.TsResByte;
 
-                     break;
 
-             };
 
-             if ((TransportSize != (byte)TsType.TsResOctet) &&
 
-                 (TransportSize != (byte)TsType.TsResReal) &&
 
-                 (TransportSize != (byte)TsType.TsResBit))
 
-                 DataLength = (ushort)(sizeByte * 8);
 
-             else
 
-                 DataLength = (sizeByte);
 
-             if (!isLast && sizeByte%2 != 0)
 
-                 Data = new byte[sizeByte + 1];
 
-             else
 
-                 Data= new byte[sizeByte];
 
-             Array.Copy(item.Data, item.DataOffset, Data, 0, sizeByte);
 
-         }
 
-         public void GetByteBuffer(ByteBuffer buffer)
 
-         {
 
-             buffer.Push(ReturnCode);
 
-             buffer.Push(TransportSize);
 
-             buffer.Push(DataLength);
 
-             buffer.Push(Data);
 
-         }
 
-     }
 
- }
 
 
  |