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 } }
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()); }
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()); }
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); }
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); }
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 } }
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); } }
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); } }
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()); }
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()); }