-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathets2telemetry.py
More file actions
162 lines (135 loc) · 7.19 KB
/
ets2telemetry.py
File metadata and controls
162 lines (135 loc) · 7.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
from ets2sdkdata import Ets2SdkData, Ets2SdkBoolean
from numpy import resize
class Ets2Telemetry:
class _Version:
def __init__(self, data: Ets2SdkData):
self.SdkPlugin = data.ets2_telemetry_plugin_revision
self.Ets2Major = data.ets2_version_major
self.Ets2Minor = data.ets2_version_minor
class _Physics:
def __init__(self, data: Ets2SdkData):
self.Speed = data.speed
self.SpeedKmh = data.speed * 3.6
self.SpeedMph = self.SpeedKmh / 1.6
self.AccelerationX = data.accelerationX
self.AccelerationY = data.accelerationY
self.AccelerationZ = data.accelerationZ
self.CoordinateX = data.coordinateX
self.CoordinateY = data.coordinateY
self.CoordinateZ = data.coordinateZ
self.RotationX = data.rotationX
self.RotationY = data.rotationY
self.RotationZ = data.rotationZ
class _DriveTrain:
def __init__(self, data: Ets2SdkData):
self.ElectricEnabled = data.get_boolean(Ets2SdkBoolean.ELECTRIC_ENABLED)
self.EngineEnabled = data.get_boolean(Ets2SdkBoolean.ENGINE_ENABLED)
self.EngineRpm = data.engineRpm
self.EngineRpmMAX = data.engineRpmMax
self.Gear = data.gear
self.GearRange = data.gearRangeActive
self.GearRanges = data.gearRanges
self.GearsForward = data.gears
self.GearsReverse = data.gearsReverse
self.GearRatiosForward = resize(data.gearRatioForward, self.GearsForward)
self.GearRatiosReverse = resize(data.gearRatioReverse, self.GearsReverse)
self.GearRatioDifferential = data.gearRatioDifferential
self.GearDashboard = data.gearDashboard
self.Fuel = data.fuel
self.FuelMax = data.fuelCapacity
self.FuelRate = data.fuelRate
self.FuelAvgConsumption = data.fuelAvgConsumption
self.FuelRange = data.fuelRange
self.FuelWarningLight = data.fuelWarning
self.AirPressure = data.airPressure
self.BrakeTemperature = data.brakeTemperature
self.Adblue = data.adblue
self.AdblueConsumption = data.adblueConsumption
self.OilPressure = data.oilPressure
self.OilTemperature = data.oilTemperature
self.WaterTemperature = data.waterTemperature
self.BatteryVoltage = data.batteryVoltage
self.TruckOdometer = data.truckOdometer
self.CruiseControl = data.get_boolean(Ets2SdkBoolean.CRUISE_CONTROL)
self.CruiseControlSpeed = data.cruiseControlSpeed
self.CruiseControlSpeedKmh = data.cruiseControlSpeed * 3.6
self.CruiseControlSpeedMph = self.CruiseControlSpeedKmh / 1.6
self.MotorBrake = data.get_boolean(Ets2SdkBoolean.MOTOR_BRAKE)
self.ParkingBrake = data.get_boolean(Ets2SdkBoolean.PARK_BRAKE)
self.Retarder = data.retarderBrake
self.ShifterSlot = data.shifterSlot
self.ShifterToggle = data.shifterToggle
class _Controls:
def __init__(self, data: Ets2SdkData):
self.UserSteer = data.userSteer
self.UserThrottle = data.userThrottle
self.UserBrake = data.userBrake
self.UserClutch = data.userClutch
self.GameSteer = data.gameSteer
self.GameThrottle = data.gameThrottle
self.GameBrake = data.gameBrake
self.GameClutch = data.gameClutch
class _Job:
def __init__(self, data: Ets2SdkData):
self.OnJob = data.onJob != 0
self.JobFinished = data.jobFinished != 0
self.TrailerAttached = data.get_boolean(Ets2SdkBoolean.TRAILER_ATTACHED)
self.Mass = data.trailerMass
self.TrailerId = data.trailerId.decode("utf-8")
self.TrailerName = data.trailerName.decode("utf-8")
self.Cargo = self.TrailerName
self.Income = data.jobIncome
self.Deadline = data.jobDeadline
self.NavigationDistanceLeft = data.routeDistance
self.NavigationTimeLeft = data.routeTime
self.CitySource = data.jobCitySource.decode("utf-8")
self.CityDestination = data.jobCityDestination.decode("utf-8")
self.CompanySource = data.jobCompanySource.decode("utf-8")
self.CompanyDestination = data.jobCompanyDestination.decode("utf-8")
class _Auxiliary:
def __init__(self, data: Ets2SdkData):
self.Wipers = data.get_boolean(Ets2SdkBoolean.WIPERS)
self.BatteryVoltageWarning = data.get_boolean(Ets2SdkBoolean.BATTERY_VOLTAGE_WARNING)
self.AirPressureWarning = data.get_boolean(Ets2SdkBoolean.AIR_PRESSURE_WARNING)
self.AirPressureEmergency = data.get_boolean(Ets2SdkBoolean.AIR_PRESSURE_EMERGENCY)
self.AdblueWarning = data.get_boolean(Ets2SdkBoolean.ADBLUE_WARNING)
self.OilPressureWarning = data.get_boolean(Ets2SdkBoolean.OIL_PRESSURE_WARNING)
self.WaterTemperatureWarning = data.get_boolean(Ets2SdkBoolean.WATER_TEMPERATURE_WARNING)
class _Damage:
def __init__(self, data: Ets2SdkData):
self.WearEngine = data.wearEngine
self.WearTransmission = data.wearTransmission
self.WearCabin = data.wearCabin
self.WearChassis = data.wearChassis
self.WearWheels = data.wearWheels
self.WearTrailer = data.wearTrailer
class _Lights:
def __init__(self, data: Ets2SdkData):
self.BlinkerLeftActive = data.get_boolean(Ets2SdkBoolean.BLINKER_LEFT_ACTIVE)
self.BlinkerRightActive = data.get_boolean(Ets2SdkBoolean.BLINKER_RIGHT_ACTIVE)
self.BlinkerLeftOn = data.get_boolean(Ets2SdkBoolean.BLINKER_LEFT_ON)
self.BlinkerRightOn = data.get_boolean(Ets2SdkBoolean.BLINKER_RIGHT_ON)
self.ParkingLights = data.get_boolean(Ets2SdkBoolean.LIGHTS_PARKING)
self.LowBeam = data.get_boolean(Ets2SdkBoolean.LIGHTS_BEAM_LOW)
self.HighBeam = data.get_boolean(Ets2SdkBoolean.LIGHTS_BEAM_HIGH)
self.FrontAux = data.get_boolean(Ets2SdkBoolean.LIGHTS_AUX_FRONT)
self.RoofAux = data.get_boolean(Ets2SdkBoolean.LIGHTS_AUX_ROOF)
self.Beacon = data.get_boolean(Ets2SdkBoolean.LIGHTS_BEACON)
self.BrakeLights = data.get_boolean(Ets2SdkBoolean.LIGHTS_BRAKE)
self.ReverseLights = data.get_boolean(Ets2SdkBoolean.LIGHTS_REVERSE)
self.DashboardLights = data.lightsDashboard
def __init__(self, data: Ets2SdkData):
self.Time = data.time
self.Pause = data.paused > 0
self.TruckId = data.truckModel
self.Truck = data.truckModel.decode("utf-8")
self.Manufacturer = data.truckMake.decode("utf-8")
self.ManufacturerId = data.truckMakeId.decode("utf-8")
self.Version = self._Version(data)
self.Physics = self._Physics(data)
self.DriveTrain = self._DriveTrain(data)
self.Controls = self._Controls(data)
self.Job = self._Job(data)
self.Auxiliary = self._Auxiliary(data)
self.Damage = self._Damage(data)
self.Lights = self._Lights(data)