using HslCommunication;
using System.Linq;

namespace DataBlockHelper.Entity.DB91Entity
{
    public class ForMotorVFD
    {
        public ForMotorVFD(ushort startSet, byte[] bytes)
        {
            //OperateResult<byte[]> read = PlcConnect.Instance.Read("DB91." + startSet + ".0", 14);

            var content = bytes.Skip(startSet).Take(14).ToArray();

            byte byt = content[0];

            Auto_BT = byt.GetBit(0);
            Man_BT = byt.GetBit(1);
            Start_A = byt.GetBit(2);
            Stop_A = byt.GetBit(3);
            Start_M = byt.GetBit(4);
            Stop_M = byt.GetBit(5);
            AlarmReset = byt.GetBit(6);
            EXT_Estop = byt.GetBit(7);

            byt = content[1];

            AutoMode = byt.GetBit(0);
            ManMode = byt.GetBit(1);
            VVVF_OK = byt.GetBit(2);
            Running = byt.GetBit(3);
            Alarm = byt.GetBit(4);
            Error = byt.GetBit(5);
            Enable = byt.GetBit(6);
            Polarity = byt.GetBit(7);

            SetSpeed_A = PlcConnect.Instance.ByteTransform.TransSingle(content, 2);
            SetSpeed_M = PlcConnect.Instance.ByteTransform.TransSingle(content, 6);
            ACT_Speed = PlcConnect.Instance.ByteTransform.TransSingle(content, 10);
        }
        public bool Auto_BT { get; private set; }
        public bool Man_BT { get; private set; }
        public bool Start_A { get; private set; }
        public bool Stop_A { get; private set; }
        public bool Start_M { get; private set; }
        public bool Stop_M { get; private set; }
        public bool AlarmReset { get; private set; }
        public bool EXT_Estop { get; private set; }
        public bool AutoMode { get; private set; }
        public bool ManMode { get; private set; }
        public bool VVVF_OK { get; private set; }
        public bool Running { get; private set; }
        public bool Alarm { get; private set; }
        public bool Error { get; private set; }
        public bool Enable { get; private set; }
        public bool Polarity { get; private set; }
        public float SetSpeed_A { get; private set; }
        public float SetSpeed_M { get; private set; }
        public float ACT_Speed { get; private set; }


    }
}