Exemple #1
0
        public void Record()
        {
            if (Process.GetProcessesByName("rfactor").Length == 0)
            {
                Assert.Ignore();
            }
            var rFactorProcess = Process.GetProcessesByName("rfactor")[0];

            IntPtr alloc = Marshal.AllocHGlobal(512 * 1024 * 1024);

            using (var host = new Plugins())
            {
                host.PluginDirectory = TestConstants.SimulatorsBinFolder;

                host.Load();

                // Simulators are now loaded

                var testPlugin = host.Simulators.Where(x => x.Name == "Test simulator").FirstOrDefault();
                testPlugin.SimulatorStart(rFactorProcess);

                var telSource = new Domain.Aggregates.Telemetry(testPlugin.TelemetryProvider, rFactorProcess);
                var telLogger = new TelemetryLogger("testSim", new TelemetryLoggerConfiguration(true, false, true, false));
                telLogger.SetAnnotater(new TelemetryArchive());
                telSource.SetLogger(telLogger);

                Thread.Sleep(60000);

                telLogger.Close();
                telSource = null;
            }

            Marshal.FreeHGlobal(alloc);
        }
        public void RecordTestData()
        {
            float[] rpmWave;
            float[] speedWave;
            GetWaves(out rpmWave, out speedWave);
            int index = 0;

            var provider = new MemoryProvider(null);
            var fakePool = new MemoryPool("Driver", MemoryAddress.StaticAbsolute, 0, 0);

            fakePool.Add(new MemoryFieldFunc <float>("Speed", (pool) => speedWave[index], true));
            fakePool.Add(new MemoryFieldFunc <float>("RPM", (pool) => rpmWave[index++], true));
            fakePool.Add(new MemoryFieldConstant <bool>("IsAI", false));
            fakePool.Add(new MemoryFieldConstant <bool>("IsPlayer", true));
            provider.Add(fakePool);

            var fakeDriver  = new TelemetryDriver(fakePool);
            var fakeDrivers = new List <TelemetryDriver>(new[] { fakeDriver });

            TelemetryLogger logger = new TelemetryLogger("testSim", new TelemetryLoggerConfiguration(true, true, true, true));

            logger.SetDatasource(provider);
            logger.SetAnnotater(new TelemetryArchive());
            GlobalEvents.Fire(new SessionStarted(), true);
            GlobalEvents.Fire(new DriversAdded(null, fakeDrivers), true);

            for (int i = 0; i < 1024; i++)
            {
                logger.Update(i * 25);
            }

            GlobalEvents.Fire(new SessionStopped(), true);
            Thread.Sleep(500);

            ZipStorer checkFile = ZipStorer.Open("tmp.zip", FileAccess.Read);

            var files = checkFile.ReadCentralDir();

            Assert.AreEqual(3, files.Count);
            Assert.AreEqual(1024 * 2 * 12 + 2 * 8, files.Where(x => x.FilenameInZip.Contains("Data.bin")).FirstOrDefault().FileSize);
            Assert.AreEqual(1024 * 8, files.Where(x => x.FilenameInZip.Contains("Time.bin")).FirstOrDefault().FileSize);
        }
Exemple #3
0
        public void StoreLogFile()
        {
            var dummyDataSource = new MockDataSource();

            var archive        = new TelemetryArchive();
            var loggerFromZero = new TelemetryLogger("test", new TelemetryLoggerConfiguration(true, true, true, true));

            loggerFromZero.SetDatasource(dummyDataSource);
            loggerFromZero.SetAnnotater(archive);
            var logWriter = new LogFileWriter("test.zip", "TelemetryArchiveTestsStoreLogFile");

            GlobalEvents.Fire(new SessionStarted(), true);

            loggerFromZero.Update(0);
            loggerFromZero.Update(10000);
            loggerFromZero.Update(20000);

            GlobalEvents.Fire(new SessionStopped(), true);

            Thread.Sleep(5000);
        }