DiRT Rally

DiRT Rally

データを表示:
UDP telemetry protocol for 'extradata > 0'?
Yesterday I constructed some simple java-code to receive the telemetry data dirt rally sends via UDP. I got to the point where I was able to read all the motion related information according to the OutSim protocol, described in the InSim documentation from Live For Speed.

Does anybody know how I can get the additional information about gear / speed / rpm etc. (OutGauge) this way?

I already played around with the hardware_settings_config.xml file and I know it comes down to the value of 'extradata'. The problem is, setting it to something like 1 to 3 seems to change the output so drastically that I can't figure out what dirt rally is trying to tell me :(. Is this some combination of OutSim and OutGauge?

extradata = 0: sends 68 bytes,
extradata = 1: sends 152 bytes

At first I thought this could be the OutSim-package followed by the OutGauge-package or vice versa, maybe whitout some redundant information like only one info about time and id, but that doesn't seem to fit.

I already searched for an explanation or detailed protocol documentation, but couldn't find one.

So.... HELP! :D
< >
1-15 / 32 のコメントを表示
Hi,

I have the same problem... Also, I received the value 0 at the acceleration parameters many times!!! (1 frame is fine, 10 badly...)

Did you find extra info about this interface??

Thanks!
Look at here. Source Code includet

http://www.racedepartment.com/downloads/dirt-rally-telemetry-setup-tool.7755/

Some Codemasters-Telemetry-Tools for the F1 series running with DIRT Rally
@lf 2015年12月17日 10時43分 
It would be very nice if Codies could implement telemetry ingame, without us having to resort to a mod.

Do it, Codies, you know you want =D
Hi again,

I found some information about this in a project from somebody else for one of the f1-games here:

http://sourceforge.net/p/f1telemetry/code/ci/master/tree/source/F1Telemetry-base/src/main/java/hu/vbt/f1telemetry/model/telemetry/TelemetryPacket.java#l21

In addition to that there was an entry on reddit about some other values (if extradata=3):

https://www.reddit.com/r/dirtgame/comments/3bye07/using_the_15_sim_racing_dash_with_dirt_rally/


I could not find any official information about the protocol so this is my best guess so far from combined sources:

The ones marked with ? are the ones I couldn't figure out so far (most of them are 0 anyway). The 'Temperature Brake'-stuff is a guess, because they rise as soon as you brake in the game and then slowly go back to 20 (in finland). So maybe these are in celsius. The 'number of laps' could be completely wrong, because I only saw that this value is 1 and is grouped with the total track length. Need to test that in rallycross or something to be sure.

-------------------------------------------------------------

for extradata = 3: output = 64 floats
byteformat: little endian

Position Info | Content Info
No. Byte | Format Value

0. 0 float Time
1. 4 float Time of Current Lap
2. 8 float Distance Driven on Current Lap
3. 12 float Distance Driven Overall
4. 16 float Position X
5. 20 float Position Y
6. 24 float Position Z
7. 28 float Velocity (Speed) [m/s]
8. 32 float Velocity X
9. 36 float Velocity Y
10. 40 float Velocity Z
11. 44 float Roll Vector X
12. 48 float Roll Vector Y
13. 52 float Roll Vector Z
14. 56 float Pitch Vector X
15. 60 float Pitch Vector Y
16. 64 float Pitch Vector Z
17. 68 float Position of Suspension Rear Left
18. 72 float Position of Suspension Rear Right
19. 76 float Position of Suspension Front Left
20. 80 float Position of Suspension Front Right
21. 84 float Velocity of Suspension Rear Left
22. 88 float Velocity of Suspension Rear Right
23. 92 float Velocity of Suspension Front Left
24. 96 float Velocity of Suspension Front Right
25. 100 float Velocity of Wheel Rear Left
26. 104 float Velocity of Wheel Rear Right
27. 108 float Velocity of Wheel Front Left
28. 112 float Velocity of Wheel Front Right
29. 116 float Position Throttle
30. 120 float Position Steer
31. 124 float Position Brake
32. 128 float Position Clutch
33. 132 float Gear [0 = Neutral, 1 = 1, 2 = 2, ..., 10 = Reverse]
34. 136 float G-Force Lateral
35. 140 float G-Force Longitudinal
36. 144 float Current Lap
37. 148 float Speed of Engine [rpm / 10]
38. 152 float ?
39. 156 float ?
40. 160 float ?
41. 164 float ?
42. 168 float ?
43. 172 float ?
44. 176 float ?
45. 180 float ?
46. 184 float ?
47. 188 float ?
48. 192 float ?
49. 196 float ?
50. 200 float ?
51. 204 float Temperature Brake Rear Left ?
52. 208 float Temperature Brake Rear Right ?
53. 212 float Temperature Brake Front Left ?
54. 216 float Temperature Brake Front Right ?
55. 220 float ?
56. 224 float ?
57. 228 float ?
58. 232 float ?
59. 236 float ?
60. 240 float Number of Laps in Total ?
61. 244 float Length of Track in Total
62. 248 float ?
63. 252 float Maximum rpm / 10
最近の変更はfab1701が行いました; 2016年3月7日 9時42分
fab1701 の投稿を引用:
I found some information about this in a project from somebody else for one of the f1-games here:

Wow! Very nice!
Yeah, I hope this helps :D

Also, update:

Regarding 'Number of Laps': Just tested this in rally-cross and think this is accurate (got a constant 4 there in a 4 lap event).

stuff like water-temperature or control lights for engine, brakes and oil seem to be not transmitted at all sadly :(
(tried to break the car on purpose but didn't see that one of the unknown values changed)
maybe this needs some further analysis... but its possible that there is simply is no data in many of the floats marked with '?'. After all, most of them are 0.
最近の変更はfab1701が行いました; 2015年12月21日 8時52分
This structure data seems to works but the G-force lateral and longitudinal are strange.
The value works when the car is stopped , like noise. When the car run this value are equal to 0.
I've tried extradata =1 and 3.

Any idea to get them correctly ?

Sthanks you
fab1701 の投稿を引用:
stuff like water-temperature or control lights for engine, brakes and oil seem to be not transmitted at all sadly :(
(tried to break the car on purpose but didn't see that one of the unknown values changed)
maybe this needs some further analysis... but its possible that there is simply is no data in many of the floats marked with '?'. After all, most of them are 0.
I don't think this is simulated at all in DR. Could be why it doesn't work as it should.
@e6-lab:
The g-force output worked fine for me, if I remember correctly. I don't know why you just get 0. I didn't run my system since the last update, though (need to check that).
The value for extradata shouldn't make a difference, because for 1 and 2 DR just sends parts from this protocol (I'm using 3).
Maybe there is something wrong with your float formatting? In case you are writing your own program: Try printing the raw data bytes in hex format to be sure. The noise indicates that there is data after all.
Are you running DR in windowed mode? Thats causing some trouble maybe. I had to turn off v-sync or DR would freeze in windowed. No problems in fullscreen, high settings.

Overkill solution:
You could as well calculate the g-forces by yourself if you track the time and velocity-vector deltas. You just need to transform this vector into the relative coordinate system of the car given by the roll and pitch vector first (because the velocity vector is in world-space). That way you also get the vertical g-force :P. Of course this is way more complicated and less efficient than just using existing values straight away. So, although I'm doing this myself, I wouldn't recommend that unless you are interested in all force-directions. (and in case this is used with motion-seats or something: this must be done correctly to avoid any risks ;) )


@Rock Manlyfist:
We already have indication lights on the ingame-hud for the engine status and water overheat. So I think it's part of the simulation, but simply not forwarded to the telemetry output...
e6-lab 2016年5月10日 23時42分 
Hi Fab1701,
I use 3 too.
All the float work well and the code works perfectly with f1-2015.
I've tried the dirt telemetry tool and I've the same problem , I will look for the windowed problem.
Could you share the solution you find to get the acceleration in all direction , it is exactly what I need.

Thanks you
最近の変更はe6-labが行いました; 2016年5月11日 0時56分
Well, its not that complicated, but you need some basic understandig of calculating with vectors. And you have to keep in mind if you still have problems with the default g-forces given by dirt, then you can't be sure the other values are valid.

Nevertheless, what you basically do to obtain the forces in all directions:

1. We already get the velocity-vector of our car (floats 8-10). I think the values are in m/s if I remember correctly. So we already know the velocity of the car in all directions based on the world coordinates (this is important). To get the acceleration you simply log the time and the velocity-vector, to calculate the differences between your current data and the last one. There you have it, the velocity difference (in m/s) divided by the time difference (in seconds) is your acceleration m/s².

2. The ugly part is to transform these g-forces into the relative coordinate system, basically the coordinate system of our car. Here we need to calculate a basis change:
The relative coordinate system is defined by the roll and pitch vectors (floats 11-13 and 14-16). These are essentially the X and Z axis of our car (atm I dunno witch one points to the front though, but that should be easy to figure out). To build a basis in 3d space with them we just need a third vector, that is perpendicular to both of them. So we calculate the cross product of both. In a way this is then our yaw vector, or Y-axis of the car. And it doesn't matter if its pointing up or down, you can invert everything later on. The only thing to make sure is that all three of them need to be normalized. These three vectors then can be put together into a 3x3 matrix, that is now our basis matrix for our target coordinate system (of the car).
Then all you have to do is taking the inverse of this matrix and multiply that with the acceleration vector (from step 1.). After that you will have a vector with three components, one g-force for each axis.
Is there a way to implement the Handbrake into a Telemetry tool? I use the Dirt_Telemetry_tool to show the steering, trottle, brake, clutch but I think the Handbrake is an important information too.
In the Crest tool you can now see the handbrake so the information should be somewhere.
Baal Netbeck の投稿を引用:
Is there a way to implement the Handbrake into a Telemetry tool?

I remember both Zeb and Cortextual (authors of the TT) telling me that there's no UDP data for handbrake. But this was a good while back and things might have changed since.

EDIT:
Just checked that the Android app I use doesn't have an option for handbrake input either.
最近の変更はMeszesが行いました; 2016年5月13日 1時59分
Thanks for checking it, maybe we will get the data in the future.
You can use something like python to print all 63 floats of data real time and run game windowed. If your familiar with running a file but not scripting It i could.provide said .script.
最近の変更はwholemealheppleが行いました; 2016年5月13日 3時19分
< >
1-15 / 32 のコメントを表示
ページ毎: 1530 50