Example #1
0
        public static LoxStatFile Load(string fileName, bool headerOnly = false)
        {
            var loxStatFile = new LoxStatFile();

            loxStatFile.FileName = fileName;
            try
            {
                using (var reader = new BinaryReader(File.Open(fileName, FileMode.Open)))
                {
                    loxStatFile.ValueCount     = reader.ReadUInt16();
                    loxStatFile.Unknown0x02    = reader.ReadUInt16();
                    loxStatFile.Unknown0x04    = reader.ReadUInt32();
                    loxStatFile.TextLength     = reader.ReadInt32();
                    loxStatFile.TextBytes      = reader.ReadBytes(loxStatFile.TextLength);
                    loxStatFile.TextTerminator = reader.ReadByte();
                    loxStatFile.Padding        = reader.ReadBytes(
                        loxStatFile.GetPaddingLength(13 + loxStatFile.TextLength));

                    var dataPoints = new List <LoxStatDataPoint>();
                    loxStatFile.DataPoints = dataPoints;
                    if (!headerOnly)
                    {
                        LoxStatDataPoint.FromBinaryReader(loxStatFile, reader);
                    }
                }
            }
            catch (Exception ex)
            {
                loxStatFile.LoadException = ex;
            }
            return(loxStatFile);
        }
Example #2
0
        internal static void FromBinaryReader(LoxStatFile loxStatFile, BinaryReader reader)
        {
            var list       = loxStatFile.DataPoints;
            var valueCount = loxStatFile.ValueCount;
            int index      = 0;

            while (true)
            {
                var bytes = reader.ReadBytes(4);
                if (bytes.Length == 0)
                {
                    return;                    //End of file
                }
                var dataPoint = new LoxStatDataPoint
                {
                    LoxStatFile = loxStatFile,
                    Index       = index++,
                };
                list.Add(dataPoint);
                dataPoint.ObjectUidPart1  = BitConverter.ToUInt16(bytes, 0);
                dataPoint.ObjectUidPart2  = BitConverter.ToUInt16(bytes, 2);
                dataPoint.TimestampOffset = reader.ReadUInt32();
                dataPoint.Values          = new double[valueCount];
                for (int i = 0; i < valueCount; i++)
                {
                    dataPoint.Values[i] = reader.ReadDouble();
                }
                dataPoint.Padding = reader.ReadBytes(
                    loxStatFile.GetPaddingLength(8 + valueCount * 8));
            }
        }
Example #3
0
        private void LoadFile()
        {
            _fileNameTextBox.Text  = Path.GetFullPath(_fileNameTextBox.Text);
            _loxStatFile           = LoxStatFile.Load(_fileNameTextBox.Text);
            _dataGridView.RowCount = 0;
            var columns = _dataGridView.Columns;

            while (columns.Count > (_valueColumnOffset + 1))
            {
                columns.RemoveAt(columns.Count - 1);
            }
            _fileInfoTextBox.Text = string.Format("{0}: {1} data point(s) á {2} value(s)",
                                                  _loxStatFile.Text, _loxStatFile.DataPoints.Count, _loxStatFile.ValueCount);
            for (int i = 2; i <= _loxStatFile.ValueCount; i++)
            {
                var newColumn = (DataGridViewColumn)columns[_valueColumnOffset].Clone();
                newColumn.HeaderText = string.Format("{0} {1}", newColumn.HeaderText, i);
                columns.Add(newColumn);
            }
            _dataGridView.RowCount = _loxStatFile.DataPoints.Count;
            RefreshProblems();
        }