public TelemetrySnapshot(DriverInfo playerInfo, WeatherInfo weatherInfo, InputInfo inputInfo, SimulatorSourceInfo simulatorSourceInfo) { PlayerData = playerInfo; WeatherInfo = weatherInfo; InputInfo = inputInfo; SimulatorSourceInfo = simulatorSourceInfo; }
private void ExtractLastData(DatagramPayload datagramPayload) { if (datagramPayload.ContainsOtherDriversTiming) { _lastDriversInfo = datagramPayload.DriversInfo; _lastLeaderInfo = datagramPayload.LeaderInfo; _lastPlayerInfo = datagramPayload.DriversInfo.Any(x => x.IsPlayer) ? datagramPayload.DriversInfo.FirstOrDefault(x => x.IsPlayer) : _lastPlayerInfo; } if (datagramPayload.ContainsPlayersTiming) { _lastPlayerInfo = datagramPayload.PlayerInfo; if (_lastDriversInfo != null) { int index = Array.IndexOf(_lastDriversInfo, _lastDriversInfo.FirstOrDefault(x => x.IsPlayer)); if (index != -1) { _lastDriversInfo[index] = _lastPlayerInfo; } } } if (datagramPayload.ContainsSimulatorSourceInfo) { _lastSimulatorSourceInfo = datagramPayload.SimulatorSourceInfo; } }
public DatagramPayloadUnPacker() { _lastDriversInfo = new DriverInfo[0]; _lastPlayerInfo = new DriverInfo(); _lastLeaderInfo = new DriverInfo(); _lastSimulatorSourceInfo = new SimulatorSourceInfo(); }
public bool AreEqual(SimulatorSourceInfo x, SimulatorSourceInfo y) { if (x == null && y == null) { return(true); } if (x == null || y == null) { return(false); } return(x.GapInformationProvided == y.GapInformationProvided); }
private void RemoveUnnecessaryData(DatagramPayload datagramPayload) { if (!_isNetworkConservationEnabled) { return; } if (_packageTimer.Elapsed > _packedDelay) { _packageTimer.Restart(); } if (_playerInfoDelayTimer.Elapsed > _playerInfoDelay) { _playerInfoDelayTimer.Restart(); } else { datagramPayload.PlayerInfo = null; datagramPayload.ContainsPlayersTiming = false; } if (_driversInfoDelayTimer.Elapsed > _driversInfoDelay) { _driversInfoDelayTimer.Restart(); } else { datagramPayload.ContainsOtherDriversTiming = false; datagramPayload.DriversInfo = null; datagramPayload.LeaderInfo = null; } if (_lastSimulatorSourceName != datagramPayload.Source || !_simulatorSourceInfoComparator.AreEqual(datagramPayload.SimulatorSourceInfo, _lastSimulatorSourceInfo)) { _lastSimulatorSourceName = datagramPayload.Source; _lastSimulatorSourceInfo = datagramPayload.SimulatorSourceInfo; } else { datagramPayload.ContainsSimulatorSourceInfo = false; datagramPayload.SimulatorSourceInfo = null; } }
public TimedTelemetrySnapshot(TimeSpan lapTime, DriverInfo playerInfo, WeatherInfo weatherInfo, InputInfo inputInfo, SimulatorSourceInfo simulatorSourceInfo) : base(playerInfo, weatherInfo, inputInfo, simulatorSourceInfo) { LapTime = lapTime; }
public void CreateLapEndSnapshot(DriverInfo driverInfo, WeatherInfo weather, InputInfo inputInfo, SimulatorSourceInfo simulatorSourceInfo) { LapEndSnapshot = new TelemetrySnapshot(driverInfo, weather, inputInfo, simulatorSourceInfo); }
public LapTelemetryInfo(DriverInfo driverInfo, SimulatorDataSet dataSet, LapInfo lapInfo, TimeSpan snapshotInterval, SimulatorSourceInfo simulatorSourceInfo) { LapStarSnapshot = new TelemetrySnapshot(driverInfo, dataSet.SessionInfo.WeatherInfo, dataSet.InputInfo, simulatorSourceInfo); LapInfo = lapInfo; PortionTimes = new LapPortionTimes(10, dataSet.SessionInfo.TrackInfo.LayoutLength.InMeters, lapInfo); TimedTelemetrySnapshots = new TimedTelemetrySnapshots(snapshotInterval); }
public void AddNextSnapshot(TimeSpan lapTime, DriverInfo playerInfo, WeatherInfo weatherInfo, InputInfo inputInfo, SimulatorSourceInfo simulatorSource) { if ((playerInfo.InPits && playerInfo.Speed.InKph < 5) || lapTime < _nextSnapshotTime) { return; } _nextSnapshotTime = lapTime + _snapshotsIntervals; _snapshots.Add(new TimedTelemetrySnapshot(lapTime, playerInfo, weatherInfo, inputInfo, simulatorSource)); }