| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | 
							- using System;
 
- using System.Text;
 
- using Houdar.PLC.Driver.Simenss.Protocol.Common;
 
- using ByteBuffer = Houdar.Core.Communication.Transport.ByteBuffer;
 
- namespace Houdar.PLC.Driver.Simenss.Protocol.ListBlocks
 
- {
 
-     public class DataBlockInfoDataResponse
 
-     {
 
-         public byte Ret { get; set; }
 
-         public byte Size { get; set; }
 
-         public ushort Length { get; set; }
 
-         public byte CstB { get; set; }
 
-         public BlockType BlkType { get; set; }
 
-         public ushort CstW1 { get; set; }
 
-         public ushort CstW2 { get; set; }
 
-         public ushort CstPp { get; set; }
 
-         public byte Unknown1 { get; set; }
 
-         public byte BlkFlags { get; set; }
 
-         public BlockLangType BlkLang { get; set; }
 
-         public SubBlockType SubBlkType { get; set; }
 
-         public ushort BlkNumber { get; set; }
 
-         public uint LenLoadMem { get; set; }
 
-         public byte[] BlkSec { get; set; }//[4]
 
-         //public uint CodeTimeMs { get; set; }
 
-         //public ushort CodeTimeDy { get; set; }
 
-         //public uint IntfTimeMs { get; set; }
 
-         //public ushort IntfTimeDy { get; set; }
 
-         public System.DateTime CodeDateTime { get; set; }
 
-         public System.DateTime IntfDateTime { get; set; }
 
-         public ushort SbbLen { get; set; }
 
-         public ushort AddLen { get; set; }
 
-         public ushort LocDataLen { get; set; }
 
-         public ushort Mc7Len { get; set; }
 
-         public string Author { get; set; }//[8]
 
-         public string Family { get; set; }//[8]
 
-         public string Header { get; set; }//[8]
 
-         public byte Version { get; set; }
 
-         public byte Unknown2 { get; set; }
 
-         public ushort BlkChksum { get; set; }
 
-         public byte[] Resvd1 { get; set; }//[4]
 
-         public byte[] Resvd2 { get; set; }//[4]
 
-         private BlockType GetBlockType(SubBlockType subBlockType)
 
-         {
 
-             switch (subBlockType)
 
-             {
 
-                 case SubBlockType.OB: return BlockType.OB;
 
-                 case SubBlockType.DB: return BlockType.DB;
 
-                 case SubBlockType.SDB: return BlockType.SDB;
 
-                 case SubBlockType.FC: return BlockType.FC;
 
-                 case SubBlockType.SFC: return BlockType.SFC;
 
-                 case SubBlockType.FB: return BlockType.FB;
 
-                 case SubBlockType.SFB: return BlockType.SFB;
 
-                 default: return 0;
 
-             };
 
-         }
 
-         public void Build(ByteBuffer buffer)
 
-         {
 
-             Ret = buffer.PopByte();
 
-             Size = buffer.PopByte();
 
-             Length = buffer.PopUshort();
 
-             CstB = buffer.PopByte();
 
-             BlkType = (BlockType)buffer.PopByte();
 
-             CstW1 = buffer.PopUshort();
 
-             CstW2 = buffer.PopUshort();
 
-             CstPp = buffer.PopUshort();
 
-             Unknown1 = buffer.PopByte();
 
-             BlkFlags = buffer.PopByte();
 
-             BlkLang = (BlockLangType)buffer.PopByte();
 
-             SubBlkType = (SubBlockType)buffer.PopByte();
 
-             BlkType = GetBlockType(SubBlkType);//根据SunblockType
 
-             BlkNumber = buffer.PopUshort();
 
-             LenLoadMem = buffer.PopUint();
 
-             BlkSec = buffer.PopBytes(4);// { get; set; }//[4]
 
-             var codeTimeMs = buffer.PopUint();//毫秒时间 
 
-             var codeTimeDy = buffer.PopUshort();//天数 开始时间1984/1/1
 
-             var intfTimeMs = buffer.PopUint();//毫秒时间
 
-             var intfTimeDy = buffer.PopUshort();//天数 开始时间1984/1/1
 
-             System.DateTime date = new System.DateTime(1984, 1, 1);
 
-             CodeDateTime = date.AddDays(codeTimeDy).AddMilliseconds(codeTimeMs);
 
-             IntfDateTime = date.AddDays(intfTimeDy).AddMilliseconds(intfTimeMs);
 
-             SbbLen = buffer.PopUshort();
 
-             AddLen = buffer.PopUshort();
 
-             LocDataLen = buffer.PopUshort();
 
-             Mc7Len = buffer.PopUshort();
 
-             var author = buffer.PopBytes(8);//{ get; set; }//[8]
 
-             var family = buffer.PopBytes(8);//{ get; set; }//[8]
 
-             var header = buffer.PopBytes(8);//{ get; set; }//[8]
 
-             Author = Encoding.UTF8.GetString(author).TrimEnd('\0');
 
-             Family = Encoding.UTF8.GetString(family).TrimEnd('\0');
 
-             Header = Encoding.UTF8.GetString(header).TrimEnd('\0');
 
-             Version = buffer.PopByte();
 
-             Unknown2 = buffer.PopByte();
 
-             BlkChksum = buffer.PopUshort();
 
-             Resvd1 = buffer.PopBytes(4);//{ get; set; }//[4]
 
-             Resvd2 = buffer.PopBytes(4);// { get; set; }//[4]
 
-         }
 
-         /// <summary>Returns a string that represents the current object.</summary>
 
-         /// <returns>A string that represents the current object.</returns>
 
-         //public override string ToString()
 
-         //{
 
-         //    return $"Block Type   : {BlkType}\r\n" +
 
-         //           $"Block Number : {BlkNumber}\r\n" +
 
-         //           $"Block Lang   : {BlkLang}\r\n" +
 
-         //           $"Block Flags  : {Convert.ToString(BlkFlags, 2).PadLeft(8,'0')}\r\n" +
 
-         //           $"MC7 Size     : {Mc7Len}\r\n" +
 
-         //           $"Load Size    : {LenLoadMem}\r\n" +
 
-         //           $"Local Data   : {LocDataLen}\r\n" +
 
-         //           $"SBB Length   : {SbbLen}\r\n" +
 
-         //           $"CheckSum     : {BlkChksum.ToString("X4")}\r\n" +
 
-         //           $"Version      : {(Version/16.0).ToString("F1")}\r\n" +
 
-         //           $"Code Date    : {CodeDateTime}\r\n" +
 
-         //           $"Intf.Date    : {IntfDateTime}\r\n" +
 
-         //           $"Author       : {Author}\r\n" +
 
-         //           $"Family       : {Family}\r\n" +
 
-         //           $"Header       : {Header}";
 
-         //}
 
-     }
 
- }
 
 
  |