Ejemplo n.º 1
0
        public void ReadInfrequentData()
        {
            var reader         = new LogFileReader("test5.zip");
            var sampleProvider = reader.GetProvider(new[] { "test", "Henk" }, 100, 20000); // from 100ms to 20000ms

            var    lastTime             = 99;
            int    inperiodIntegerCheck = 100 / 20 - 1;
            string inperiodStringCheck  = "FFFF";

            foreach (var sample in sampleProvider.GetSamples())
            {
                var time = sample.Timestamp;

                // The difference is always 1, because test has sample every 1.
                Assert.AreEqual(1, time - lastTime);
                lastTime = time;

                var other   = sample.Get("Henk");
                var int1    = other.ReadAs <int>("testInt");
                var string1 = other.ReadAs <string>("test");


                if (time % 20 == 0)
                {
                    inperiodIntegerCheck++;
                }
                if (time % 20 == 5)
                {
                    byte[] b = new byte[4];
                    for (int i = 0; i < 4; i++)
                    {
                        b[i] = ((byte)(0x41 + (1 + inperiodIntegerCheck) % 26));
                    }
                    inperiodStringCheck = Encoding.ASCII.GetString(b);
                }


                Assert.AreEqual(inperiodIntegerCheck, int1);
                Assert.AreEqual(inperiodStringCheck, string1);
            }

            var sampleProvider2 = reader.GetProvider(new[] { "Henk" }, 100, 2000000); // from 100ms to 20000ms

            lastTime = 99;

            foreach (var sample in sampleProvider2.GetSamples())
            {
                var time = sample.Timestamp;
                Assert.AreEqual(1, time - lastTime);
                lastTime = time;

                // even though this group only has new data every '1', the main timeline still has every 1.
                // So they are synchronised this way
            }
        }
Ejemplo n.º 2
0
        public void Export()
        {
            StringBuilder csv = new StringBuilder();

            var telRead = new LogFileReader("Tmp.zip");
            var telProvider = telRead.GetProvider(new[] {"Session","Driver 7427264"}, 0, 1000000);

            foreach(var sample in telProvider.GetSamples())
            {
                var me = sample.Get("Driver 7427264");
                var sess = sample.Get("Session");

                if(me!= null)
                csv.AppendLine(sample.Timestamp + "," +
                                 sess.ReadAs<float>("Time") + "," +
                                 me.ReadAs<string>("TyreCompoundFront") + "," +
                                 me.ReadAs<float>("Speed") + "," +
                                 me.ReadAs<float>("Fuel") + "," +
                                 me.ReadAs<float>("InputThrottle") + "," +
                                 me.ReadAs<float>("InputBrake") + "," +
                                 me.ReadAs<float>("TyreTemperatureInsideLF") + "," +
                                 me.ReadAs<float>("RPM") + "," +
                                 me.ReadAs<int>("Gear"));
            }

            File.WriteAllText("dump.csv", csv.ToString());
        }
Ejemplo n.º 3
0
        public void Export()
        {
            if (File.Exists("TelemetryLoggerTests_Tmp.zip") == false)
            {
                Assert.Ignore();
            }
            StringBuilder csv = new StringBuilder();

            var telRead     = new LogFileReader("TelemetryLoggerTests_Tmp.zip");
            var telProvider = telRead.GetProvider(new[] { "Session", "Driver 7427264" }, 0, 1000000);

            foreach (var sample in telProvider.GetSamples())
            {
                var me   = sample.Get("Driver 7427264");
                var sess = sample.Get("Session");

                if (me != null)
                {
                    csv.AppendLine(sample.Timestamp + "," +
                                   sess.ReadAs <float>("Time") + "," +
                                   me.ReadAs <string>("TyreCompoundFront") + "," +
                                   me.ReadAs <float>("Speed") + "," +
                                   me.ReadAs <float>("Fuel") + "," +
                                   me.ReadAs <float>("InputThrottle") + "," +
                                   me.ReadAs <float>("InputBrake") + "," +
                                   me.ReadAs <float>("TyreTemperatureInsideLF") + "," +
                                   me.ReadAs <float>("RPM") + "," +
                                   me.ReadAs <int>("Gear"));
                }
            }

            File.WriteAllText("dump.csv", csv.ToString());
        }
Ejemplo n.º 4
0
        public void PlaybackTestData()
        {
            float[] rpmWave;
            float[] speedWave;
            GetWaves(out rpmWave, out speedWave);

            StringBuilder outSine = new StringBuilder();

            var telRead = new LogFileReader("Tmp.zip");
            var telProvider = telRead.GetProvider(new[] { "Driver" }, 0, 1024*25);
            var index = 0;
            foreach (var sample in telProvider.GetSamples())
            {
                var driver = sample.Get("Driver");

                Assert.AreEqual(true, driver.ReadAs<bool>("IsPlayer"));
                Assert.AreEqual(false, driver.ReadAs<bool>("IsAI"));
                Assert.AreEqual(speedWave[index], driver.ReadAs<float>("Speed"));
                Assert.AreEqual(rpmWave[index], driver.ReadAs<float>("RPM"));

                index++;
                outSine.AppendLine(index+","+driver.ReadAs<float>("Speed") + "," + driver.ReadAs<float>("RPM"));
            }
            File.WriteAllText("sinewave.csv", outSine.ToString());

            Assert.AreEqual(1024, index);

            telProvider = telRead.GetProvider(new[] { "Driver" }, 512*25, 1024 * 25);
            index = 512;
            foreach (var sample in telProvider.GetSamples())
            {
                var driver = sample.Get("Driver");

                Assert.AreEqual(true, driver.ReadAs<bool>("IsPlayer"));
                Assert.AreEqual(false, driver.ReadAs<bool>("IsAI"));
                Assert.AreEqual(speedWave[index], driver.ReadAs<float>("Speed"));
                Assert.AreEqual(rpmWave[index], driver.ReadAs<float>("RPM"));

                index++;

            }

            Assert.AreEqual(1024, index);
        }
Ejemplo n.º 5
0
        public void PlaybackTestData()
        {
            float[] rpmWave;
            float[] speedWave;
            GetWaves(out rpmWave, out speedWave);

            StringBuilder outSine = new StringBuilder();

            var telRead     = new LogFileReader("Tmp.zip");
            var telProvider = telRead.GetProvider(new[] { "Driver" }, 0, 1024 * 25);
            var index       = 0;

            foreach (var sample in telProvider.GetSamples())
            {
                var driver = sample.Get("Driver");

                Assert.AreEqual(true, driver.ReadAs <bool>("IsPlayer"));
                Assert.AreEqual(false, driver.ReadAs <bool>("IsAI"));
                Assert.AreEqual(speedWave[index], driver.ReadAs <float>("Speed"));
                Assert.AreEqual(rpmWave[index], driver.ReadAs <float>("RPM"));

                index++;
                outSine.AppendLine(index + "," + driver.ReadAs <float>("Speed") + "," + driver.ReadAs <float>("RPM"));
            }
            File.WriteAllText("sinewave.csv", outSine.ToString());

            Assert.AreEqual(1024, index);

            telProvider = telRead.GetProvider(new[] { "Driver" }, 512 * 25, 1024 * 25);
            index       = 512;
            foreach (var sample in telProvider.GetSamples())
            {
                var driver = sample.Get("Driver");

                Assert.AreEqual(true, driver.ReadAs <bool>("IsPlayer"));
                Assert.AreEqual(false, driver.ReadAs <bool>("IsAI"));
                Assert.AreEqual(speedWave[index], driver.ReadAs <float>("Speed"));
                Assert.AreEqual(rpmWave[index], driver.ReadAs <float>("RPM"));

                index++;
            }

            Assert.AreEqual(1024, index);
        }
Ejemplo n.º 6
0
        public void ReadInfrequentData()
        {
            var reader = new LogFileReader("test5.zip");
            var sampleProvider = reader.GetProvider(new[] { "test", "Henk" }, 100, 20000); // from 100ms to 20000ms

            var lastTime = 99;
            int inperiodIntegerCheck = 100 / 20 - 1;
            string inperiodStringCheck = "FFFF";
            foreach (var sample in sampleProvider.GetSamples())
            {
                var time = sample.Timestamp;

                // The difference is always 1, because test has sample every 1.
                Assert.AreEqual(1, time - lastTime);
                lastTime = time;

                var other = sample.Get("Henk");
                var int1 = other.ReadAs<int>("testInt");
                var string1 = other.ReadAs<string>("test");

                if (time % 20 == 0)
                    inperiodIntegerCheck++;
                if (time % 20 == 5)
                {
                    byte[] b = new byte[4];
                    for (int i = 0; i < 4; i++)
                        b[i] = ((byte)(0x41 + (1 + inperiodIntegerCheck) % 26));
                    inperiodStringCheck = Encoding.ASCII.GetString(b);
                }

                Assert.AreEqual(inperiodIntegerCheck, int1);
                Assert.AreEqual(inperiodStringCheck, string1);

            }

            var sampleProvider2 = reader.GetProvider(new[] { "Henk" }, 100, 2000000); // from 100ms to 20000ms
            lastTime = 99;

            foreach (var sample in sampleProvider2.GetSamples())
            {
                var time = sample.Timestamp;
                Assert.AreEqual(1, time - lastTime);
                lastTime = time;

                // even though this group only has new data every '1', the main timeline still has every 1.
                // So they are synchronised this way
            }
        }
Ejemplo n.º 7
0
        public void ReadFrequentData()
        {
            var reader = new LogFileReader("test4.zip");

            var sampleProvider = reader.GetProvider(new[] { "test" }, 100, 20000); // from 100ms to 2000ms

            int startI = 100;
            foreach (var sample in sampleProvider.GetSamples())
            {
                var group = sample.Get("test");
                var whatWasAnInteger = group.ReadAs<float>("testInt");

                Assert.AreEqual((float)startI, whatWasAnInteger);
                startI++;

                Assert.LessOrEqual(whatWasAnInteger, 20001);
                Assert.GreaterOrEqual(whatWasAnInteger, 100);
            }
        }
Ejemplo n.º 8
0
        public void ReadFrequentData()
        {
            var reader = new LogFileReader("test4.zip");

            var sampleProvider = reader.GetProvider(new[] { "test" }, 100, 20000); // from 100ms to 2000ms

            int startI = 100;

            foreach (var sample in sampleProvider.GetSamples())
            {
                var group            = sample.Get("test");
                var whatWasAnInteger = group.ReadAs <float>("testInt");

                Assert.AreEqual((float)startI, whatWasAnInteger);
                startI++;

                Assert.LessOrEqual(whatWasAnInteger, 20001);
                Assert.GreaterOrEqual(whatWasAnInteger, 100);
            }
        }
Ejemplo n.º 9
0
        public void analyzer()
        {
            // read the data file
            var telRead     = new LogFileReader(TestConstants.TestFolder + "\\2013-03-19-18-48 - Session.zip"); // data file of movie
            var telProvider = telRead.GetProvider(new[] { "Driver 7427264" }, 0, 100000000);                    // TODO: end-of-file-time

            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Time,RPM,Speed,X,Y,Z,Yaw,Whlspd LF, Whlspd RF, Whlspd LR, Whlspd RR,Blocking,Spinning");

            foreach (var sample in telProvider.GetSamples())
            {
                var me = sample.Get("Driver 7427264");
                //
                builder.AppendLine(sample.Timestamp + "," + me.ReadAs <float>("RPM") + "," + me.ReadAs <float>("Speed") +
                                   "," + me.ReadAs <float>("CoordinateX") + "," + me.ReadAs <float>("CoordinateY") + "," + me.ReadAs <float>("CoordinateZ") + "," + me.ReadAs <float>("Yaw")
                                   + "," + me.ReadAs <float>("TyreSpeedLF") + "," + me.ReadAs <float>("TyreSpeedRF") + "," + me.ReadAs <float>("TyreSpeedLR") + "," + me.ReadAs <float>("TyreSpeedRR")
                                   + "," + IsLockingWheels(me) + "," + IsSpinningWheels(me));
            }

            File.WriteAllText("out.2csv", builder.ToString());
        }
Ejemplo n.º 10
0
        public void analyzer()
        {
            // read the data file
            var telRead = new LogFileReader(TestConstants.TestFolder + "\\2013-03-19-18-48 - Session.zip"); // data file of movie
            var telProvider = telRead.GetProvider(new[] { "Driver 7427264" }, 0, 100000000); // TODO: end-of-file-time

            StringBuilder builder = new StringBuilder();

            builder.AppendLine("Time,RPM,Speed,X,Y,Z,Yaw,Whlspd LF, Whlspd RF, Whlspd LR, Whlspd RR,Blocking,Spinning");

            foreach (var sample in telProvider.GetSamples())
            {
                var me = sample.Get("Driver 7427264");
                //
                builder.AppendLine(sample.Timestamp + "," + me.ReadAs<float>("RPM") + "," + me.ReadAs<float>("Speed") +
                                   "," + me.ReadAs<float>("CoordinateX") + "," + me.ReadAs<float>("CoordinateY") + "," + me.ReadAs<float>("CoordinateZ") + "," + me.ReadAs<float>("Yaw")
                                   + "," + me.ReadAs<float>("TyreSpeedLF")+ "," + me.ReadAs<float>("TyreSpeedRF")+ "," + me.ReadAs<float>("TyreSpeedLR")+ "," + me.ReadAs<float>("TyreSpeedRR")
                                   + "," + IsLockingWheels(me) + "," + IsSpinningWheels(me));
            }

            File .WriteAllText("out.2csv", builder.ToString());
        }