Example #1
0
        private void Decrypt(string path, string secret, string salt, Action <ExtendBinaryReader> action)
        {
            byte[] bytes = null;
            Decrypt(path,
                    secret,
                    salt,
                    (Stream cs) =>
            {
                using (var ms = new MemoryStream())
                {
                    var buffer = new byte[1024];
                    var read   = cs.Read(buffer, 0, buffer.Length);
                    while (read > 0)
                    {
                        ms.Write(buffer, 0, read);
                        read = cs.Read(buffer, 0, buffer.Length);
                    }

                    bytes = ms.ToArray();
                }
            });

            using (var ms = new MemoryStream(bytes))
                using (var reader = new ExtendBinaryReader(ms))
                {
                    action(reader);
                }
        }
Example #2
0
        private IReadOnlyList <MHCC.Common.DataAccess.Models.Recording> ParseVersion1(string hash,
                                                                                      ExtendBinaryReader reader)
        {
            var headerLength = reader.ReadInt32();
            var dataLength   = reader.ReadInt32();

            var bytes = reader.ReadBytes(headerLength);

            var headerString = Encoding.UTF8.GetString(bytes);

            var header = JsonConvert.DeserializeObject <Header>(headerString);

            var result = new List <MHCC.Common.DataAccess.Models.Recording>();

            foreach (var meas in header.Measurements)
            {
                foreach (var recording in meas.Recordings)
                {
                    var values = new float[meas.Count];

                    // 1 for version byte
                    // 4 for header length bytes
                    // 4 for data length bytes
                    reader.BaseStream.Position = 1 + 4 + 4 + headerLength + recording.StartIndex;

                    for (var i = 0; i < meas.Count; i++)
                    {
                        values[i] = reader.ReadSingle();
                    }

                    result.Add(new MHCC.Common.DataAccess.Models.Recording
                    {
                        Timestamp       = recording.Timestamp,
                        MeasurementID   = meas.MeasurementID,
                        Type            = recording.Type,
                        AlarmStatus     = recording.Alarmstatus,
                        BiasVoltage     = recording.BiasVoltage,
                        Hash            = hash,
                        MeasurementType = meas.MeasurementType,
                        Overall         = recording.Overall,
                        RPM             = recording.RPM,
                        Delta           = recording.Delta,
                        Offset          = recording.Offset,
                        XUnit           = meas.XUnit,
                        Count           = meas.Count,
                        YUnit           = meas.YUnit,
                        //AlarmCalculated = true,
                        YValues = values
                    });
                }
            }

            return(result);
        }