Jump to content
Want to report an issue? Have a bug to report? Please look here first!!!! Read more... ×

F1 2019 UDP Specification

Recommended Posts

On 6/20/2019 at 4:29 PM, Faya said:

Restricted data (Your Telemetry setting)

There is some data in the UDP that you may not want other players seeing if you are in a multiplayer game. This is controlled by the “Your Telemetry” setting in the Telemetry options.

Hi @Faya @Hoo

I have trawled every menu in the game, but cannot find a 'Your Telemetery' setting. I'm running in Windows 7 (directx 11)

The reason I'm looking for it is because I'm getting a strange issue where I'm not feeling any car motion, road bumps, engine revs etc when I'm driving. However, when the computer is driving (e.g. before starting a flying lap in qualifying, or driving out of the pits) everything is working and feels good. I was thinking it could be something to do with this setting, but I cannot find it to set it to Public.

Thanks

Share this post


Link to post
Share on other sites

Hi .... I'm playing with data from a OSQ (One shot quali) and struggling to work out a laptime that corresponds with that shown in the game.

As there's no end of lap event and there's no lap 2 data to get the Lastlap data from the best i can work out is that I can use the last recieved LapData packet and try and take a best guess.

So for example I have captured a full laps worth of data and have the last lapdata packet send from the game... when I get the SEND event I know we are complete so i perform the following calculation. Taking the last position in the lap (distance), work out how far it is to the end of the lap (track length from a session packet - lapdistance from the Lapdata packet) ... calculate speed in meters/sec from speed in the telemetry packet and then calculate the time it would take to travel the remaining distance.

Sound logical ?  

The trouble is that the result i'm getting is significantly different to what i see as a game time.

From an example data capture ...   Current Lapdistance of 5895.4595 meters, total tracklength of 5896 meters and current laptime of 96.11017 secs and speed of 242 kph .... 

5896-5895.4595 = 0.5405 meters
242/3.6 (to convert to m/s) = 67.222

0.5403/67.222 = 0.0080405 seconds  (time to travel remaining distance)

Total laptime is  96.1182 

BUT the time reported in the game was 96.136  but that's 0.0177 out from my calculation ......  Is there a better way to calculate this ? Am i missing something ?

Share this post


Link to post
Share on other sites
2 hours ago, trenamax said:

Hi @Faya @Hoo

I have trawled every menu in the game, but cannot find a 'Your Telemetery' setting. I'm running in Windows 7 (directx 11)

The reason I'm looking for it is because I'm getting a strange issue where I'm not feeling any car motion, road bumps, engine revs etc when I'm driving. However, when the computer is driving (e.g. before starting a flying lap in qualifying, or driving out of the pits) everything is working and feels good. I was thinking it could be something to do with this setting, but I cannot find it to set it to Public.

Thanks

Hi @trenamax ,

The option is not yet available. It should present in version 1.05 (which is currently in development).

It sounds like the problem you are having relates to the controller settings. There is an option within the Customise Controls menus which allows you turn off controller vibration / force feedback. I think this single options controls all of these effects, so I'd try looking there first to see if that option is enabled.

 

Share this post


Link to post
Share on other sites
2 hours ago, Hoo said:

Hi @trenamax ,

The option is not yet available. It should present in version 1.05 (which is currently in development).

It sounds like the problem you are having relates to the controller settings. There is an option within the Customise Controls menus which allows you turn off controller vibration / force feedback. I think this single options controls all of these effects, so I'd try looking there first to see if that option is enabled.

 

Thanks @Hoo - I'll await version 1.05 in that case.

I don't think the controller settings are related to my issue, it's a little more involved than that:

I'm talking about the feedback I get through my seat, driven by Simcommander SimVibe (which uses the telemetry output from the game).  Last year SimCommander / SimVibe never adopted the new F1 2018 UDP structure, so I had to write my own UDP converter app for F1 2018, to convert the new structure back to the legacy structure, so I could run the latest UDP structure to drive my F1 wheel replicas which use SliMaxManager and the latest UDP structure, see here:

whilst also running SimVibe with the legacy structure simultaneously (using my converter app and the Sim Race Proxy Server to forward the UDP output from the game to multiple ports)

So I've recently updated my converter app for F1 2019, but yeah I'm seeing this issue where not all the effects are coming through. Strange because the car telemetry packet hasn't changed this year. Interestingly gear shifts are coming through just fine, I can feel the seat move when I shift. But revs, and rumble strips etc are not coming through at all. The seat vibration feels as though the car is idle in the garage. As I mentioned in my original post though, I think when the computer has control it is working. Which is what game me the hunch that maybe it's an issue with the new yourTelemetry feature.

Edited by trenamax

Share this post


Link to post
Share on other sites

Hi Guys,

Does anyone used Python to receive UPD data and convert It to struct like the definition on initial post? 

I am receiving data like :

b'\x38\xd3.......' (it's a large Chaim of data), but I didn't know to tranform It in a used data struct.

 

 

Share this post


Link to post
Share on other sites
On 6/20/2019 at 11:29 AM, Faya said:

struct CarMotionData {

float m_worldPositionX; // World space X position

float m_worldPositionY; // World space Y position

float m_worldPositionZ; // World space Z position
...

};

For the m_worldPositionX, m_worldPositionY, and m_worldPositionZ variables: what point on the car is that position referring to? Is it the car's center of gravity? The centerpoint of one of the axles? The optical center of the TVPod camera?

 

 

Share this post


Link to post
Share on other sites

Bug report:

- still the two last buttons 

0x2000

Left Stick Click

0x4000

Right Stick Click

 

were not send in PC-UDP-stream. Who can confirm?

 

- Multiplayer Names not in PC-UDP-stream; just "Player" - will this be corrected at all? Codemaster: please give a statement. @Faya

Share this post


Link to post
Share on other sites

@AndyHamp - if the maths is all correct then I wonder if one of the numbers used for the calculation is frame out, e.g. distance remaining?

Share this post


Link to post
Share on other sites

@CanTQuiT - we are reviewing the naming policy, but I don't expect this to come soon. The route we are considering involves players giving explicit consent for other users to have access to key UDP info, so apps should not be build around the assumption that you will have access to player's sensitive data. This is something we can't do.

If you can provide specific use-cases for us to examine, that will help us refine our proposal to something that is both useful to you and compliant with the latest legal guidelines.

 

Share this post


Link to post
Share on other sites

@ElectricTurtle - I think this is taken from the centre of the car chassis, which falls just behind the driver's seat:

 WorldPosition.jpg

Share this post


Link to post
Share on other sites

Hi everyone,

I am currently writing an app (cross-platform Mac/iOS) that would, among other things, replicate the live gaps we often see on TV between two drivers, which is updated every few seconds instead of every sector. However, this kind of information doesn't seem to be present in the UDP specs, so it must be calculated somehow. I'm looking for the best approach to get the most accurate results possible.

Which data do you think would be most useful to process this? I'm currently thinking about using lap numbers, and distance traveled in the lap so far by the two drivers, then remember each frame in a big array, to compute the time it takes for the second driver to reach the lap distance from the first driver, but I'm not sure this is the best method, nor if it would produce very accurate results.

Anyway, thanks for your ideas!

Share this post


Link to post
Share on other sites

@Poulpusyou 're on the right track. It is even enough to store the data in your proposed array only from the first driver like you described and calculate the difference to each driver.

  • Thanks 1

Share this post


Link to post
Share on other sites

IS there a way to know when will be the next pit?

 

in the DFU you can see the next probably pit by the strategy , but i can't see anything in the UDP packet for this

 

 

Share this post


Link to post
Share on other sites

Why in UDP front tyres are little worn even at the session start? Game shows front tyres wear level about 15% lower than in UDP packets

Share this post


Link to post
Share on other sites

Hi ... is anyone noticing something odd about the 3 Gforce values ?   

It seems to me in the data i've been looking at that the values are often zero ..... logically i'd have thought the value would NEVER be zero for all three if the car is in motion... 

Share this post


Link to post
Share on other sites
On 7/19/2019 at 8:42 AM, Hoo said:

@AndyHamp - if the maths is all correct then I wonder if one of the numbers used for the calculation is frame out, e.g. distance remaining?

I think the fault is my assumptions about what the calc should be ... if track length is as per my example then if you actually use a track length of 1 meter greater the calculation seems to work ...

From an example data capture ...   Current Lap distance of 5895.4595 meters, total track length of 5896 meters and current laptime of 96.11017 secs and speed of 242 kph .... 

5896 + 1 - 5895.4595 = 1.5405 meters
242/3.6 (to convert to m/s) = 67.222

1.5403/67.222 = 0.022916 seconds  (time to travel remaining distance)

Total laptime is  96.13308

The time reported in the game was 96.136 which is now pretty damned close !

Share this post


Link to post
Share on other sites

@Hoo,
How can we get the driver names in the MP session? What value does "m_name[48]" get in the MP session? Really the SteamID, as @Faya in the thread from 20.06.20 described in "Participants Packet"? I thank you for an explanation,
clintwood60

Edited by clintwood60

Share this post


Link to post
Share on other sites

 

4 hours ago, clintwood60 said:

@Hoo,
How can we get the driver names in the MP session? What value does "m_name[48]" get in the MP session? Really the SteamID, as @Faya in the thread from 20.06.20 described in "Participants Packet"? I thank you for an explanation,
clintwood60

In a MP session, this will return a default value as we do not provide players names in online sessions at the moment. For AI drivers and in offline mode, this will be the driver name.

 

Share this post


Link to post
Share on other sites

@Hoo

 

I use Sim Dashboard but i see sometimes differences between the damage on the game and Sim Dashboard (with Telemetry data).

 

I tested this with F2 cars and you can see the damage differences on my printscreen and on the App.

Is there something to do about that?

 

Thanks

 

20190706_223708.thumb.jpg.a581fa8a796b4fc17275674d744c8bfe.jpg

Edited by GioProductions
Extra info

Share this post


Link to post
Share on other sites
33 minutes ago, Hoo said:

 

In a MP session, this will return a default value as we do not provide players names in online sessions at the moment. For AI drivers and in offline mode, this will be the driver name.

 

Thank you for the fast answer. Can you give us an outlook or an alternative? Every telemetry tool is almost unusable for streaming a league race ... not very satisfying ...

Share this post


Link to post
Share on other sites
1 hour ago, clintwood60 said:

Thank you for the fast answer. Can you give us an outlook or an alternative? Every telemetry tool is almost unusable for streaming a league race ... not very satisfying ...

Sorry - I don't have any alternative suggestions at the moment. Some of the other app devs might have some workarounds though?

Share this post


Link to post
Share on other sites

I am making an ios app and sometimes when i am testing the app it seems like the packets are coming through very! slowly. Like in slow motion. can anyone help with this?

Share this post


Link to post
Share on other sites

If Packets can contain multiple types, then what is the point in the packet identifier?

I used to check on the byte size, but now Lap Data and Car Setup are both 843.
I can't check on the packet id, as packet id 6 is very often a different type.

Am I missing something here?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×