Skip to content

Commit

Permalink
Changed project to VS2012
Browse files Browse the repository at this point in the history
Added new truck channels telemetry from SDK 1.5
  • Loading branch information
nlhans committed May 17, 2015
1 parent 167e93b commit 219ca54
Show file tree
Hide file tree
Showing 15 changed files with 279 additions and 300 deletions.
107 changes: 61 additions & 46 deletions ets2-client/C#/Ets2SdkClient.Demo/Form1.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,64 +28,79 @@ public Form1()

private void Telemetry_Data(Ets2Telemetry data, bool updated)
{
if (this.InvokeRequired)
try
{
this.Invoke(new TelemetryData(Telemetry_Data), new object[2] {data, updated});
return;
}
if (this.InvokeRequired)
{
this.Invoke(new TelemetryData(Telemetry_Data), new object[2] { data, updated });
return;
}

lbGeneral.Text = "General info:\r\n SDK Version: " + data.Version.SdkPlugin + "\r\n Reported game Version: " +
data.Version.Ets2Major + "." + data.Version.Ets2Minor + "\r\n\r\nTruck: " + data.Truck + " ("+data.TruckId +")\r\nManufacturer: " + data.Manufacturer + "("+data.ManufacturerId+")" +
"\r\nGame Timestamp: " + data.Time + "\r\nPaused? " + data.Paused;
// Do some magic trickery to display ALL info:
var grps = new object[]
lbGeneral.Text = "General info:\r\n SDK Version: " + data.Version.SdkPlugin + "\r\n Reported game Version: " +
data.Version.Ets2Major + "." + data.Version.Ets2Minor + "\r\n\r\nTruck: " + data.Truck + " (" + data.TruckId + ")\r\nManufacturer: " + data.Manufacturer + "(" + data.ManufacturerId + ")" +
"\r\nGame Timestamp: " + data.Time + "\r\nPaused? " + data.Paused;

// Do some magic trickery to display ALL info:
var grps = new object[]
{
data.Drivetrain, data.Physics, data.Controls, data.Axilliary, data.Damage, data.Lights, data.Job
};

foreach (var grp in grps)
{
// Find the right tab page:
var grpName = grp.GetType().Name;
if (grpName.StartsWith("_"))
grpName = grpName.Substring(1);
foreach (var grp in grps)
{
// Find the right tab page:
var grpName = grp.GetType().Name;
if (grpName.StartsWith("_"))
grpName = grpName.Substring(1);

var tabPage = default(TabPage);
var tabFound = false;
var tabPage = default(TabPage);
var tabFound = false;

for (int k = 0; k < telemetryInfo.TabCount; k++)
{
if (telemetryInfo.TabPages[k].Text == grpName)
for (int k = 0; k < telemetryInfo.TabCount; k++)
{
tabPage = telemetryInfo.TabPages[k];
tabFound = true;
if (telemetryInfo.TabPages[k].Text == grpName)
{
tabPage = telemetryInfo.TabPages[k];
tabFound = true;
}
}
if (!tabFound)
{
tabPage = new CustomTabPage(grpName);
telemetryInfo.TabPages.Add(tabPage);
}
}
if (!tabFound)
{
tabPage = new CustomTabPage(grpName);
telemetryInfo.TabPages.Add(tabPage);
}

// All properties;
var props = grp.GetType().GetProperties().OrderBy(x=>x.Name);
var labels = new StringBuilder();
var vals = new StringBuilder();
foreach (var prop in props)
{
labels.AppendLine(prop.Name + ":");
vals.AppendLine(prop.GetValue(grp, null).ToString());
}
// All properties;
var props = grp.GetType().GetProperties().OrderBy(x => x.Name);
var labels = new StringBuilder();
var vals = new StringBuilder();
foreach (var prop in props)
{
labels.AppendLine(prop.Name + ":");
object val = prop.GetValue(grp, null);
if (val is float[])
{
vals.AppendLine(string.Join(", ", (val as float[]).Select(x=> x.ToString("0.000"))));
}
else
{
vals.AppendLine(val.ToString());
}
}

tabPage.Controls.Clear();
var lbl1 = new Label { Location = new Point(3, 3), Size = new Size(200, tabPage.Height-6) };
var lbl2 = new Label { Location = new Point(203, 3), Size = new Size(200, tabPage.Height-6) };
lbl1.Text = labels.ToString();
lbl2.Text = vals.ToString();
tabPage. Controls.Add(lbl1);
tabPage.Controls.Add(lbl2);
tabPage.Controls.Clear();
var lbl1 = new Label { Location = new Point(3, 3), Size = new Size(200, tabPage.Height - 6) };
var lbl2 = new Label { Location = new Point(203, 3), Size = new Size(1000, tabPage.Height - 6) };
lbl1.Text = labels.ToString();
lbl2.Text = vals.ToString();
lbl2.AutoSize = false;
tabPage.Controls.Add(lbl1);
tabPage.Controls.Add(lbl2);
}
}
catch
{
}
}
}
}
}
28 changes: 28 additions & 0 deletions ets2-client/C#/Ets2SdkClient/Ets2SdkData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,34 @@ public struct Ets2SdkData
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
public byte[] truckModel;

// ***** REVISION 4 ****** //
[FieldOffset(868)]
public float speedLimit;

[FieldOffset(872)]
public float routeDistance;

[FieldOffset(876)]
public float routeTime;

[FieldOffset(880)]
public float fuelRange;

[FieldOffset(884)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)]
public float[] gearRatioForward;

[FieldOffset(980)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public float[] gearRatioReverse;

[FieldOffset(1012)]
public float gearRatioDifferential;

[FieldOffset(1016)]
public int gearDashboard;


public bool GetBool(Ets2SdkBoolean i)
{
if (i == Ets2SdkBoolean.TrailerAttached)
Expand Down
26 changes: 26 additions & 0 deletions ets2-client/C#/Ets2SdkClient/Ets2Telemetry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ public class _Drivetrain
public bool ElectricEnabled { get; internal set; }

public int Gear { get; internal set; }
public float[] GearRatiosForward { get; internal set; }
public float[] GearRatiosReverse { get; internal set; }
public float GearRatioDifferential { get; internal set; }
public int GearDashboard { get; internal set; }
public int GearsForward { get; internal set; }
public int GearsReverse { get; internal set; }
public int GearRange { get; internal set; }
Expand All @@ -57,6 +61,7 @@ public class _Drivetrain
public float SpeedMph { get; internal set; }

public float Fuel { get; internal set; }
public float FuelRange { get; internal set; }
public float FuelMax { get; internal set; }

// Deprecated: was never actually functional
Expand Down Expand Up @@ -114,6 +119,9 @@ public class _Job
public string CityDestination { get; internal set; }
public string CompanySource { get; internal set; }
public string CompanyDestination { get; internal set; }
public float NavigationDistanceLeft { get; internal set; } // meter
public float NavigationTimeLeft { get; internal set; }
public float SpeedLimit { get; internal set; } // meter/second
}

public class _Axilliary
Expand Down Expand Up @@ -244,6 +252,7 @@ public Ets2Telemetry(Ets2SdkData raw, Ets2SdkUnmanaged rawUnmanaged)
Drivetrain.SpeedMph = Physics.SpeedKmh / 1.6f;

Drivetrain.Fuel = raw.fuel;
Drivetrain.FuelRange = raw.fuelRange;
Drivetrain.FuelAvgConsumption = raw.fuelAvgConsumption;
Drivetrain.FuelMax = raw.fuelCapacity;
Drivetrain.FuelRate = raw.fuelRate;
Expand All @@ -255,6 +264,19 @@ public Ets2Telemetry(Ets2SdkData raw, Ets2SdkUnmanaged rawUnmanaged)
Drivetrain.GearsForward = raw.gears;
Drivetrain.GearsReverse = raw.gearsReverse;

// Note all gears
var gearFw = raw.gearRatioForward;
var gearRw = raw.gearRatioReverse;

Array.Resize<float>(ref gearFw, Drivetrain.GearsForward);
Array.Resize<float>(ref gearRw, Drivetrain.GearsReverse);

Drivetrain.GearRatiosForward = gearFw;
Drivetrain.GearRatiosReverse = gearRw;
Drivetrain.GearRatioDifferential = raw.gearRatioDifferential;

Drivetrain.GearDashboard =raw.gearDashboard;

Drivetrain.MotorBrake = raw.GetBool(Ets2SdkBoolean.MotorBrake);
Drivetrain.OilPressure = raw.oilPressure;
Drivetrain.OilTemperature = raw.oilTemperature;
Expand All @@ -278,6 +300,10 @@ public Ets2Telemetry(Ets2SdkData raw, Ets2SdkUnmanaged rawUnmanaged)
Job.TrailerName = Encoding.UTF8.GetString(raw.trailerName).Replace('\0', ' ').Trim();
Job.Cargo = rawUnmanaged.TrailerModel.Replace('\0', ' ').Trim();

Job.NavigationDistanceLeft = raw.routeDistance;
Job.NavigationTimeLeft = raw.routeTime;
Job.SpeedLimit = raw.speedLimit;

// Axilliary flags
Axilliary.AdblueWarning = raw.GetBool(Ets2SdkBoolean.AdblueWarning);
Axilliary.AirPressureEmergency = raw.GetBool(Ets2SdkBoolean.AirPressureEmergency);
Expand Down
26 changes: 0 additions & 26 deletions ets2-telemetry/ets2-telemetry.sln

This file was deleted.

Loading

0 comments on commit 219ca54

Please sign in to comment.