Skip to content

Commit

Permalink
Another r3e shared memory change
Browse files Browse the repository at this point in the history
  • Loading branch information
Winzarten committed Apr 3, 2019
1 parent 1c15b7f commit 25c79b0
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 13 deletions.
23 changes: 18 additions & 5 deletions Connectors/R3EConnector/R3E.cs
@@ -1,5 +1,6 @@
namespace SecondMonitor.R3EConnector
{
using System;
using System.Runtime.InteropServices;

internal class Constant
Expand All @@ -15,7 +16,7 @@ internal enum VersionMajor
internal enum VersionMinor
{
// Minor version number to test against
R3EVersionMinor = 5
R3EVersionMinor = 6
};

internal enum Session
Expand Down Expand Up @@ -483,6 +484,15 @@ internal struct TireTempInformation
public float HotTemp;
}

[StructLayout(LayoutKind.Sequential, Pack = 1)]
internal struct BrakeTemp
{
public float CurrentTemp;
public float OptimalTemp;
public float ColdTemp;
public float HotTemp;
}

[StructLayout(LayoutKind.Sequential, Pack = 1)]
internal struct TireTemperature<T>
{
Expand Down Expand Up @@ -545,7 +555,7 @@ internal struct R3EDriverInfo
[StructLayout(LayoutKind.Sequential, Pack = 1)]
internal struct DriverData
{
public R3EDriverInfo DriverInfo;
public R3EDriverInfo R3EDriverInfo;

// Note: See the R3E.Constant.FinishStatus enum
public int FinishStatus;
Expand Down Expand Up @@ -717,7 +727,7 @@ internal struct R3ESharedData
public int SessionType;

// The current iteration of the current type of session (second qualifying session, etc.)
// Note: 0-indexed, -1 = N/A
// Note: 1 = first, 2 = second etc, -1 = N/A
public int SessionIteration;

// If the session is time based, lap based or time based with an extra lap at the end
Expand Down Expand Up @@ -1076,10 +1086,13 @@ internal struct R3ESharedData
public int TireSubtypeFront;
public int TireSubtypeRear;

// Brake temperature (-1.0 = N/A)
// Current brake temperature (-1.0 = N/A)
// Optimum temperature
// Cold temperature
// Hot temperature
// Unit: Celsius (C)
// Note: Not valid for AI or remote players
public TireData<float> BrakeTemp;
public TireData<BrakeTemp> BrakeTemp;

// Brake pressure (-1.0 = N/A)
// Unit: Kilo Newtons (kN)
Expand Down
16 changes: 8 additions & 8 deletions Connectors/R3EConnector/R3EDataConvertor.cs
Expand Up @@ -170,10 +170,10 @@ private static void AddTyresInfo(R3ESharedData data, SimulatorDataSet simData)

private static void AddBrakesInfo(R3ESharedData data, SimulatorDataSet simData)
{
simData.PlayerInfo.CarInfo.WheelsInfo.FrontLeft.BrakeTemperature.ActualQuantity = Temperature.FromCelsius(data.BrakeTemp.FrontLeft);
simData.PlayerInfo.CarInfo.WheelsInfo.FrontRight.BrakeTemperature.ActualQuantity = Temperature.FromCelsius(data.BrakeTemp.FrontRight);
simData.PlayerInfo.CarInfo.WheelsInfo.RearLeft.BrakeTemperature.ActualQuantity = Temperature.FromCelsius(data.BrakeTemp.RearLeft);
simData.PlayerInfo.CarInfo.WheelsInfo.RearRight.BrakeTemperature.ActualQuantity = Temperature.FromCelsius(data.BrakeTemp.RearRight);
simData.PlayerInfo.CarInfo.WheelsInfo.FrontLeft.BrakeTemperature.ActualQuantity = Temperature.FromCelsius(data.BrakeTemp.FrontLeft.CurrentTemp);
simData.PlayerInfo.CarInfo.WheelsInfo.FrontRight.BrakeTemperature.ActualQuantity = Temperature.FromCelsius(data.BrakeTemp.FrontRight.CurrentTemp);
simData.PlayerInfo.CarInfo.WheelsInfo.RearLeft.BrakeTemperature.ActualQuantity = Temperature.FromCelsius(data.BrakeTemp.RearLeft.CurrentTemp);
simData.PlayerInfo.CarInfo.WheelsInfo.RearRight.BrakeTemperature.ActualQuantity = Temperature.FromCelsius(data.BrakeTemp.RearRight.CurrentTemp);
}

private static void AddOilSystemInfo(R3ESharedData data, SimulatorDataSet simData)
Expand Down Expand Up @@ -287,7 +287,7 @@ private DriverInfo CreateDriverInfo(R3ESharedData r3RData, DriverData r3RDriverD
{
DriverInfo driverInfo = new DriverInfo
{
DriverName = FromByteArray(r3RDriverData.DriverInfo.Name),
DriverName = FromByteArray(r3RDriverData.R3EDriverInfo.Name),
CompletedLaps = r3RDriverData.CompletedLaps,
CarName = string.Empty,
InPits = r3RDriverData.InPitlane == 1
Expand All @@ -299,9 +299,9 @@ private DriverInfo CreateDriverInfo(R3ESharedData r3RData, DriverData r3RDriverD
driverInfo.Speed = Velocity.FromMs(r3RDriverData.CarSpeed);
driverInfo.LapDistance = r3RDriverData.LapDistance;
driverInfo.TotalDistance = r3RDriverData.CompletedLaps * r3RData.LayoutLength + r3RDriverData.LapDistance;
driverInfo.CarName = _database.GetCarName(r3RDriverData.DriverInfo.ModelId);
driverInfo.CarClassName = _database.GetClassName(r3RDriverData.DriverInfo.ClassId);
driverInfo.CarClassId = r3RDriverData.DriverInfo.ClassPerformanceIndex.ToString();
driverInfo.CarName = _database.GetCarName(r3RDriverData.R3EDriverInfo.ModelId);
driverInfo.CarClassName = _database.GetClassName(r3RDriverData.R3EDriverInfo.ClassId);
driverInfo.CarClassId = r3RDriverData.R3EDriverInfo.ClassPerformanceIndex.ToString();
driverInfo.FinishStatus = FromR3RStatus(r3RDriverData.FinishStatus);
driverInfo.WorldPosition = new Point3D(Distance.FromMeters(r3RDriverData.Position.X * -1), Distance.FromMeters(r3RDriverData.Position.Y), Distance.FromMeters(r3RDriverData.Position.Z));
ComputeDistanceToPlayer(_lastPlayer, driverInfo, r3RData);
Expand Down

0 comments on commit 25c79b0

Please sign in to comment.