| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- using Core.Communication.Transport;
 
- using PLC.Siemens.Protocol.Common;
 
- namespace PLC.Siemens.Protocol.DateTime
 
- {
 
-     public class DateTimeData
 
-     {
 
-         public byte Ret { get; set; }//0xFF
 
-         public byte Size { get; set; }
 
-         public ushort Length { get; set; }
 
-         public byte Rsvd { get; set; }
 
-         public byte HiYear { get; set; }
 
-         public byte[] Time { get; set; }//³¤¶È8
 
-         public ushort PacketLength { get { return 0x0E; } }
 
-         public DateTimeData()
 
-         {
 
-             Time = new byte[8];
 
-         }
 
-         public void Build(ByteBuffer buffer)
 
-         {
 
-             Ret = buffer.PopByte();
 
-             Size = buffer.PopByte();
 
-             Length = buffer.PopUshort();
 
-             Rsvd = buffer.PopByte();
 
-             HiYear = buffer.PopByte();
 
-             Time = buffer.PopBytes(8);
 
-         }
 
-         public void Build(System.DateTime dt)
 
-         {
 
-             Ret = 0xFF;
 
-             Size = (byte) TsType.TsResOctet;
 
-             Length = 0x000A;
 
-             Rsvd = 0x00;
 
-             HiYear = 0x19; // *must* be 19 tough it's not the Hi part of the year...
 
-             
 
-             Time[0] = WordToBcd((ushort)(dt.Year - 2000));
 
-             Time[1] = WordToBcd((ushort)(dt.Month));
 
-             Time[2] = WordToBcd((ushort)(dt.Day));
 
-             Time[3] = WordToBcd((ushort)(dt.Hour));
 
-             Time[4] = WordToBcd((ushort)(dt.Minute));
 
-             Time[5] = WordToBcd((ushort)(dt.Second));
 
-             Time[6] = 0x00;
 
-             Time[7] = WordToBcd((ushort)(dt.DayOfWeek));
 
-         }
 
-         public void GetByteBuffer(ByteBuffer buffer)
 
-         {
 
-             buffer.Push(Ret);
 
-             buffer.Push(Size);
 
-             buffer.Push(Length);
 
-             buffer.Push(Rsvd);
 
-             buffer.Push(HiYear);
 
-             buffer.Push(Time);
 
-         }
 
-         private static byte WordToBcd(ushort value)
 
-         {
 
-             return (byte)(((value / 10) << 4) | (value % 10));
 
-         }
 
-     }
 
- }
 
 
  |