示例#1
0
        /// <summary>
        /// FileVersion.Current - 104 bytes
        /// </summary>
        /// <returns></returns>
        public byte[] ToBytes()
        {
            var bytes = new List <byte>();

            switch (FileVersion)
            {
            case FileVersion.Current:
                bytes.AddRange(Label.ToBytes(9));
                for (var i = 0; i < 14; ++i)
                {
                    var input = Inputs.ElementAtOrDefault(i) ?? new NetPoint();
                    input.FileVersion = FileVersion;

                    bytes.AddRange(input.ToBytes());
                }
                for (var i = 0; i < 14; ++i)
                {
                    var range = Ranges.ElementAtOrDefault(i);
                    bytes.Add((byte)range);
                }
                bytes.Add((byte)Second);
                bytes.Add((byte)Minute);
                bytes.Add((byte)Hour);
                bytes.Add((byte)MaxTimeLength);
                bytes.Add((byte)InputsCount);
                bytes.Add((byte)AnalogInputsCount);
                bytes.Add((byte)Status);
                bytes.AddRange(((int)NextSampleTime).ToBytes());
                break;

            default:
                throw new FileVersionNotImplementedException(FileVersion);
            }

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

            return(bytes.ToArray());
        }