using DataBlockHelper.DBHelpers; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.UI.WebControls; namespace DataBlockHelper.Entity { public class Db2101Entity { public Db2101Entity() { } public Db2101Entity(ushort startSet, byte[] bytes) { byte[] content = bytes.Skip(startSet).Take(4).ToArray(); var trans = PlcConnect.Instance.ByteTransform; var a = content[0]; var b = content[1]; enable = a.GetBit(0); finished = a.GetBit(1); time= trans.TransInt16(content,2); } public bool enable { get; set; } public bool finished { get; set; } public short time { get; set; } } public class Db2101LinEntity { public Db2101LinEntity(ushort startSet, byte[] bytes) { byte[] content = bytes.Skip(startSet).Take(10).ToArray(); var trans = PlcConnect.Instance.ByteTransform; var a = content[0]; Start = a.GetBit(0); End = a.GetBit(1); Soure= trans.TransInt16(content,2); model=trans.TransInt16(content,4); destination = trans.TransInt16(content, 6); number= trans.TransInt16(content, 8); } public bool Start { get; set; } public bool End { get; set; } /// /// 源仓 /// public short Soure { get; set; } /// /// 1 A 2B 3 A+B /// public short model { get; set; } public short destination { get; set; } public short number { get; set; } public int Get() { int fan = 0; int number = destination; // 你想要检查的数字 if (IsPowerOfTwo(number, out int exponent)) { fan=exponent; Console.WriteLine($"{number} 是 2 的 {exponent} 次方"); } return fan; } bool IsPowerOfTwo(int number, out int exponent) { exponent = 0; if (number < 1) { return false; } while (number > 1) { if (number % 2 != 0) { return false; } number /= 2; exponent++; } return true; } } }