using HslCommunication;


namespace DataBlockHelper.Entity.DB2103Entity
{
    public class FOR_MOTOR_VFDEntity
    {
        public FOR_MOTOR_VFDEntity(ushort startSet) 
        {
            OperateResult<byte[]> read = PlcConnect.Instance.Read("DB2103." + startSet + ".0", 14);

            var content = read.Content;

            byte byt = content[0];

            AutoMode = byt.GetBit(0);
            ManMode = 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];

            Running = byt.GetBit(0);
            Alarm = byt.GetBit(1);
            Error = byt.GetBit(2);
            Enable = byt.GetBit(3);
            Polarity = byt.GetBit(4);

            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 AutoMode { get; private set; }
        public bool ManMode { 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 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; }

    }
}