Пример #1
0
        public void FirstHeaderDateTimeTest()
        {
            var firstDate = default(DateTime);
            var recordsRead = -999;
            using(var stream = DaqDataFileTestUtility.CreateSampleDaqFileStream()) {
                using(var reader = new DaqDataFileReader(stream)) {
                    recordsRead = reader.ReadNextValidStamp(out firstDate);
                }
            }

            Assert.AreNotEqual(-999, recordsRead, "Tested method was not executed.");
            Assert.AreNotEqual(-1,firstDate, "Valid date was not found.");
            Assert.AreNotEqual(default(DateTime), firstDate, "Valid date was not found.");

            Assert.AreEqual(new DateTime(2010,3,15,19,30,23),firstDate, "Wrong date was read.");
        }
Пример #2
0
        public static DaqDataFileInfo Create(FileInfo fileInfo)
        {
            int nid = 0;

            string idValue = AnemFileNameRegex.Match(fileInfo.Name).Groups[1].Value;

            if (String.IsNullOrEmpty(idValue) || 1 != idValue.Length)
            {
                return(null);
            }

            char idChar = Char.ToUpperInvariant(idValue[0]);

            if (idChar >= 'A' && idChar <= 'Z')
            {
                nid = idChar - 'A';
            }
            else
            {
                return(null);
            }

            try {
                using (FileStream fs = File.Open(fileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) {
                    DateTime stamp;
                    int      recordsPassed = -1;
                    using (var reader = new DaqDataFileReader(fs)) {
                        recordsPassed = reader.ReadNextValidStamp(out stamp);
                    }
                    if (recordsPassed >= 0)
                    {
                        if (0 != recordsPassed)
                        {
                            stamp = stamp.Subtract(new TimeSpan(0, 0, recordsPassed));
                        }
                        return(new DaqDataFileInfo(fileInfo, nid, stamp));
                    }
                    return(null);
                }
            }
            catch (IOException ioEx) {
                return(null);
            }
        }
Пример #3
0
        public void ReadFirstThreeRecordsTest()
        {
            DateTime stamp;
            // setup the stamp variable to compare
            Assert.True(DaqDataFileInfo.TryConvert7ByteDateTime(
                new byte[] { 0x07, 0xda, 0x03, 0x0f, 0x13, 0x1e, 0x17, 0xa5 },
                0, out stamp
            ));
            using (var stream = DaqDataFileTestUtility.CreateSampleDaqFileStream()) {
                using (var reader = new DaqDataFileReader(stream)) {

                    Assert.True(reader.MoveNext());
                    Assert.AreEqual(
                        PackedReadingValues.FromDeviceBytes(new byte[] {
                            0x00, 0x01, 0x09, 0x41, 0x33, 0x60, 0x00, 0x1f
                        }, 0),
                        reader.Current.Values
                    );
                    Assert.AreEqual(stamp.Add(new TimeSpan(0, 0, 0, 1)), reader.Current.TimeStamp);

                    Assert.True(reader.MoveNext());
                    Assert.AreEqual(
                        PackedReadingValues.FromDeviceBytes(new byte[] {
                            0x00, 0x01, 0x05, 0x41, 0x33, 0x60, 0x00, 0x1f
                        }, 0),
                        reader.Current.Values
                    );
                    Assert.AreEqual(stamp.Add(new TimeSpan(0, 0, 0, 2)), reader.Current.TimeStamp);

                    Assert.True(reader.MoveNext());
                    Assert.AreEqual(
                        PackedReadingValues.FromDeviceBytes(new byte[] {
                            0x00, 0x01, 0x09, 0x41, 0x33, 0x60, 0x00, 0x1f
                        }, 0),
                        reader.Current.Values
                    );
                    Assert.AreEqual(stamp.Add(new TimeSpan(0, 0, 0, 3)), reader.Current.TimeStamp);

                }
            }
        }
Пример #4
0
        private static int ProcessFile(FileInfo file)
        {
            if (!file.Exists) {
                Console.WriteLine("ERROR: file '{0}' not found.", file.FullName);
                return 1;
            }

            try {
                // try to convert daq to csv
                using (var daqDataFileReader = new DaqDataFileReader(file)) {
                    return SaveDump(ReadAll(daqDataFileReader), file.FullName);
                }
            }
            catch (IOException ex) {
                if (!file.Extension.EndsWith("csv", StringComparison.OrdinalIgnoreCase))
                    Console.WriteLine("ERROR: csv may already exist.");
            }
            catch (Exception ex) {
                return 1;
            }

            return 2;
        }
Пример #5
0
 private static IEnumerable<PackedReading> ReadAll(DaqDataFileReader reader)
 {
     while (reader.MoveNext()) {
         yield return reader.Current;
     }
 }
Пример #6
0
        public static DaqDataFileInfo Create(FileInfo fileInfo)
        {
            int nid = 0;

            string idValue = AnemFileNameRegex.Match(fileInfo.Name).Groups[1].Value;
            if (String.IsNullOrEmpty(idValue) || 1 != idValue.Length) {
                return null;
            }

            char idChar = Char.ToUpperInvariant(idValue[0]);
            if (idChar >= 'A' && idChar <= 'Z') {
                nid = idChar - 'A';
            }
            else {
                return null;
            }

            try {
                using (FileStream fs = File.Open(fileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) {
                    DateTime stamp;
                    int recordsPassed = -1;
                    using (var reader = new DaqDataFileReader(fs)) {
                        recordsPassed = reader.ReadNextValidStamp(out stamp);
                    }
                    if (recordsPassed >= 0) {
                        if (0 != recordsPassed) {
                            stamp = stamp.Subtract(new TimeSpan(0, 0, recordsPassed));
                        }
                        return new DaqDataFileInfo(fileInfo, nid, stamp);
                    }
                    return null;
                }
            }
            catch (IOException ioEx) {
                return null;
            }
        }