/// <summary>
        /// FileVersion.Current - 46 bytes
        /// </summary>
        /// <returns></returns>
        public new byte[] ToBytes()
        {
            var bytes = new List <byte>();

            var calibrationHRaw   = Convert.ToByte(CalibrationH * 10.0);
            var calibrationLRaw   = Convert.ToByte(CalibrationL * 10.0);
            var decommissionedRaw = ((int)Status) + ((int)Jumper * 16);

            switch (FileVersion)
            {
            case FileVersion.Current:
                bytes.AddRange(base.ToBytes());
                bytes.AddRange(Value.Value.ToBytes());
                bytes.Add((byte)Math.Log(Filter, 2));
                bytes.Add((byte)decommissionedRaw);
                bytes.Add(SubId.ToByte());
                bytes.Add(SubProduct.ToByte());
                bytes.Add((byte)Control);
                bytes.Add((byte)AutoManual);
                bytes.Add((byte)DigitalAnalog);
                bytes.Add((byte)CalibrationSign);
                bytes.Add(SubNumberToByte(SubNumber));
                bytes.Add(calibrationHRaw);
                bytes.Add(calibrationLRaw);
                bytes.Add(ToByte(Value.Unit, DigitalAnalog));
                break;

            default:
                throw new FileVersionNotImplementedException(FileVersion);
            }

            CheckSize(bytes.Count, GetSize(FileVersion));

            return(bytes.ToArray());
        }
        /// <summary>
        /// FileVersion.Current - 45 bytes
        /// </summary>
        /// <returns></returns>
        public new byte[] ToBytes()
        {
            var bytes = new List <byte>();

            switch (FileVersion)
            {
            case FileVersion.Current:
                bytes.AddRange(Description.ToBytes(19));
                bytes.Add((byte)LowVoltage);
                bytes.Add((byte)HighVoltage);
                bytes.AddRange(Label.ToBytes(9));
                bytes.AddRange(Value.Value.ToBytes());
                bytes.Add((byte)AutoManual);
                bytes.Add((byte)DigitalAnalog);
                bytes.Add((byte)HwSwitchStatus);
                bytes.Add((byte)Control);
                bytes.Add((byte)DigitalControl);
                bytes.Add((byte)Decommissioned);
                bytes.Add(VariablePoint.ToByte(Value.Unit, DigitalAnalog));
                bytes.Add(SubId.ToByte());
                bytes.Add(SubProduct.ToByte());
                bytes.Add(SubNumberToByte(SubNumber));
                bytes.Add((byte)PwmPeriod);
                break;

            default:
                throw new FileVersionNotImplementedException(FileVersion);
            }

            CheckSize(bytes.Count, GetSize(FileVersion));

            return(bytes.ToArray());
        }