Jump to content Jump to content

F1 2021 UDP Specification


BarryBL
 Share

Recommended Posts

Hello

@Hoo I have two bugs for you.

1. the topic of the telemetry 2020 has disapear. do you know where he is ?
2. i am on a lobby, a guy join during the qualification 18 minutes. he took an HAAS. the race start, the game give him number 16 (charles leclerc). I am lost.
it's not possible to make in way that a guy who join a lobby late, when the Q2 or Race start, his number be overide on the official one ?

 

Regards

Link to comment
Share on other sites

  • Codemasters Staff
12 hours ago, ThibaudPHP said:

Hello

@Hoo I have two bugs for you.

1. the topic of the telemetry 2020 has disapear. do you know where he is ?
2. i am on a lobby, a guy join during the qualification 18 minutes. he took an HAAS. the race start, the game give him number 16 (charles leclerc). I am lost.
it's not possible to make in way that a guy who join a lobby late, when the Q2 or Race start, his number be overide on the official one ?

 

Regards

2020 telemetry setting should still be available. 

When loading into a session will players use their own details for car livery, helmet, suit, gloves and car number. However, when players drop into and active session during practice or qualifying sessions they will assume the details of the car that they drop into. Attempting to change all of this data part-way through a race would be very confusing so we don't do this.

Link to comment
Share on other sites

13 hours ago, ThibaudPHP said:

1. the topic of the telemetry 2020 has disapear. do you know where he is ?

You mean this one? @Hoo it is a bit odd that this thread is in the 2019 sub-forum instead of the F1 2020 sub-forum, was that always the case?

 

 

Link to comment
Share on other sites

2 hours ago, cgfdoo said:

You mean this one? @Hoo it is a bit odd that this thread is in the 2019 sub-forum instead of the F1 2020 sub-forum, was that always the case?

 

 

it was not this one i saved because he had more comments, but thanks because i can found what i want on it

Link to comment
Share on other sites

3 hours ago, Hoo said:

2020 telemetry setting should still be available. 

When loading into a session will players use their own details for car livery, helmet, suit, gloves and car number. However, when players drop into and active session during practice or qualifying sessions they will assume the details of the car that they drop into. Attempting to change all of this data part-way through a race would be very confusing so we don't do this.

Okay but on my yesterday session, a guy jump on a HAAS and obtain the number 16 (leclerc's number)

Link to comment
Share on other sites

On 8/15/2021 at 6:49 PM, codylane482 said:

After spending the last week troubleshooting, I too experience this now and it requires some fiddling with the IP address even when broadcast mode is turned on. But yeah, I think it's important to admit when you are wrong, and so far I've been totally wrong. As others have mentioned and I would agree it's most likely the Xbox networking implementation.

For now, it's far easier to run  my app with IPv4 address: 0.0.0.0:20777 and then in my Xbox F1 game settings set the IP address to the IP of my app.

I'm starting to wonder now if it's a subnet issue. For example, I use DHCP for my network and it's a wired connection. My DHCP server is running Linux and I know it's configured correctly to provide the correct subnet for all of it's DHCP clients. The one weird thing I've always noticed is that when my Xbox gets it's DHCP address it never gets the right netmask. It's always set to 255.0.0.0 but it should be 255.255.255.0 so I have to manually go in and set the IP and netmask.

 

I will continue to run some more tests and see if I can nail this down. 

Not a problem! Perhaps you were on an older game build at the time which didn't have the same issues as we were seeing.

The subnet mask not picking up correctly is obviously not right - easiest way to narrow down the issue is to take your Xbox to a friend/family house and connect it up there. If it picks up the correct mask you know the issue is with your DHCP server somewhere.

Using 255.0.0.0 as a mask on a network meant to be using 255.255.255.0 will probably stop broadcasts working, but directed IP packets should still arrive. If your IP address is for example 192.168.20.10 then with a 255.0.0.0 mask your LAN IP range is effectively 192.0.0.0->192.255.255.255, so anything else in your LAN range of 192.168.20.x is still in that range and won't get routed.

Good luck!

Link to comment
Share on other sites

Just a quick note, some F2 Teams ID's in the documentation are wrong.

These are the correct ID's:

ART_GRAND_PRIX = 70
CAMPOS_RACING = 71
CARLIN = 72
CHAROUZ_RACING_SYSTEM = 73
DAMS = 74
HITECH_GRAND_PRIX = 75
BWT_HWA_RACELAB = 76
MP_MOTORSPORT = 77
PREMA_RACING = 78
TRIDENT = 79
UNI_VIRTUOSI_RACING = 80

Link to comment
Share on other sites

On 8/20/2021 at 11:30 PM, DaveyGravy said:

Not a problem! Perhaps you were on an older game build at the time which didn't have the same issues as we were seeing.

The subnet mask not picking up correctly is obviously not right - easiest way to narrow down the issue is to take your Xbox to a friend/family house and connect it up there. If it picks up the correct mask you know the issue is with your DHCP server somewhere.

Using 255.0.0.0 as a mask on a network meant to be using 255.255.255.0 will probably stop broadcasts working, but directed IP packets should still arrive. If your IP address is for example 192.168.20.10 then with a 255.0.0.0 mask your LAN IP range is effectively 192.0.0.0->192.255.255.255, so anything else in your LAN range of 192.168.20.x is still in that range and won't get routed.

Good luck!

 

Thanks my friend. So far nothing new to report. I've stopped using Broadcast mode on my Xbox and I've tried your suggestions and I get the same result. I am going to blame this on MS since I know they like to not follow RFC's. I've not been able to find a workaround for Broadcast mode as of yet.

 

Probably the biggest challenges for folks using Xbox console is all the lack of features while using a console. For example my Fanatec F1 wheel I don't get all the nice features that Fanatec provided since I'm on a console and the Xbox SDK only supports a controller which as you probably know is pretty limited so all my fancy rotatory encoders on my wheel don't work. Sigh. I wish I had the extra funds to upgrade to a PC and run my sim from there.

 

I do have some ideas for my app that I'm working on so that I can enable webhooks and still use a raspberry pi and a custom LED rev light bar. I still need to implement this POC but so far my initial tests are working and I'm very excited about it. I will open source this when I am finished.

 

I also found a keyboard that I can use for a ButtonBox and I've relabeled the keys and attached it to my Track Racer rig which is pretty freaking hot. I love this stuff and I love this community. Keep up the good work!

Link to comment
Share on other sites

On CarStatusData packet, the m_tractionControl is always 2 for every other player, except myself.

When I have Medium TC on, it's 2 (not 1, as it should be).

When I turn TC off, the value is 0.

But every other player returns 2.

Is this the correct behaviour?

Thanks!

Link to comment
Share on other sites

On 8/25/2021 at 12:17 AM, ericgvmaia said:

Hello!

What is the formula to calculate the time gap (delta/interval) between cars on the race?

I wrote pretty long post on how to do that in a performant way. I think it was in the F1 2020 UDP Spec thread, but cannot find it anymore from this site, as it seems many posts on F1 2020 thread were removed. @Hoo any way to get the old posts recovered back to that thread?

In short, I divide the total race into small sectors (from 1m to 500m, which is user definable) and then store for each car the racetime the car enters the sector and then use this matrix (mini-sectors x cars) to get the time diff (to leader and/or to other cars).

Cheers

Link to comment
Share on other sites

2 minutes ago, LonelyRacer said:

I wrote pretty long post on how to do that in a performant way. I think it was in the F1 2020 UDP Spec thread, but cannot find it anymore from this site, as it seems many posts on F1 2020 thread were removed. @Hoo any way to get the old posts recovered back to that thread?

they was 2 post about telemetry udp 2020. they delete the one where your post and keep the other one.

the URL of the post you are seaching was this one => https://forums.codemasters.com/topic/50942-f1-2020-udp-specification/

Edited by ThibaudPHP
link
Link to comment
Share on other sites

3 hours ago, LonelyRacer said:

I wrote pretty long post on how to do that in a performant way. I think it was in the F1 2020 UDP Spec thread, but cannot find it anymore from this site, as it seems many posts on F1 2020 thread were removed. @Hoo any way to get the old posts recovered back to that thread?

In short, I divide the total race into small sectors (from 1m to 500m, which is user definable) and then store for each car the racetime the car enters the sector and then use this matrix (mini-sectors x cars) to get the time diff (to leader and/or to other cars).

Cheers

Thanks for your reply. I couldn't find your other post either.

I ended up doing almost the same thing. Saving the racetime for each driver based on the totalDistance in a matrix.

Then comparing to the nearest distance found.

Working pretty well so far.

But still think they could provide this in the LapData (would be more accurate).

Cheers!

Link to comment
Share on other sites

On 8/18/2021 at 1:22 AM, TMIllo said:

Hi,

Wondering if you can help. I'm trying to pull the driver name, specifically the Steam ID. In the telemetry sheet, it says either m_networkId or m_name[48] should be what I use to get this (I think?)

When I use networkID I get a number, which isn't helpful and when I use m_name I can only do it by Position [GameRawData.PlayerParticipantData.m_name01] and that only returns the letter P, despite no-one in our session starting with that letter.

Ideally, and I'd assume this is possible, like to pull the SteamID of the user and also be able to pull the steamID of everyone in the session. Can you help with what I'm doing wrong?

 

  

Me too ...

 

Data :


  m_numPlayers: 2,
  m_lobbyPlayers: [
    {
      m_aiControlled: 1,
      m_teamId: 0,
      m_nationality: 10,
      m_name: 'Lewis HAMILTON',
      m_carNumber: 44,
      m_readyStatus: 0
    },
    {
      m_aiControlled: 0,
      m_teamId: 2,
      m_nationality: 63,
      m_name: 'Joueur',
      m_carNumber: 68,
      m_readyStatus: 0
    },

 

Link to comment
Share on other sites

21 hours ago, Ramalokee said:

Hello,

The variable in structure LapData aren't reset :

m_sector1TimeInMs

m_sector2TimeInMs

m_lapDistance

 

Could you reset the variable at new lap, thank you.

 

revois ton code.

Et  pour les noms. utilise la fonction recherche dans les précédents topics de telemetrie 2016,2017,2018,2019,2020. tu verras les nombreux débats, solutions proposées pour se voir imposer des "non" de la part de codemaster

Link to comment
Share on other sites

J'ai changé le code pour adapter avec F1 2021, changement de quelques conditions et c'est bon.

 

Par contre les noms j'avais trouvé une solution avec l'équipe / numéro. La solution du steam_id était bien, pour cela que j'ai changé la structure pour F1 2021... Dommage ....

Link to comment
Share on other sites

Just now, Ramalokee said:

J'ai changé le code pour adapter avec F1 2021, changement de quelques conditions et c'est bon.

 

Par contre les noms j'avais trouvé une solution avec l'équipe / numéro. La solution du steam_id était bien, pour cela que j'ai changé la structure pour F1 2021... Dommage ....

continue avec équipe / numéro. 🙂

Link to comment
Share on other sites

Demander ou faire en sorte que les pilotes indiquent leur numéro sans les changer en cours de saison / drapeau, ce n'est pas pour moi une solution. Surtout si un pilote "externe" remplace qui ne souhaite pas utiliser un drapeau précis. Une admin de ligue m'avait parlé de ton programme et il me semble que tu avais vue mon HUD.

Passer XX minutes pour configurer la session, ce n'est pas la solution à moyen terme. Il existe des solutions manuels, mais pas non plus viable sur le temps.

Un steam_id, il n'y a que ça qui permettrait de tout gérer, car le reste n'est pas viable en tant qu'utilisateur et liberté du joueur 😉

Ton logiciel est sympa.

Edited by Ramalokee
Link to comment
Share on other sites

I need help from you other dev to make a test and check if you have the same behavior.

When a racer broke his car during the race, the m_resultStatus on packet 2 is a 7. when some racer started to pass the finish line, at a moment all this guy who crash, the telemetry send me an update and the m_resultStatus became a 4. Do you have the same behavior ?

@hoo if it's true, why don't send a 4 directly for those who broke their car  ?!

Link to comment
Share on other sites

Another question:

In the CarDamageData, the m_rearWingDamage is ALWAYS zero! The only car that has the rear wing damage registered is the USER car.

It is always zero for every other player.

Also happening with m_floorDamage, m_diffuserDamage, m_sidepodDamage.

And yes, their telemetry is public.

m_frontLeftWingDamage and m_frontRightWingDamage are being registered correctly.

Anybody else noticed it?

Thanks!

  • Agree 1
Link to comment
Share on other sites

2 hours ago, ericgvmaia said:

Another question:

In the CarDamageData, the m_rearWingDamage is ALWAYS zero! The only car that has the rear wing damage registered is the USER car.

It is always zero for every other player.

Also happening with m_floorDamage, m_diffuserDamage, m_sidepodDamage.

And yes, their telemetry is public.

m_frontLeftWingDamage and m_frontRightWingDamage are being registered correctly.

Anybody else noticed it?

Thanks!

I noticed that and make some tests on unranked lobby. the car must have big "hit" to obtain damage on sidepod and diffuser. for rear and floor, i didnt create damage. if the two others was working, my code was good

Link to comment
Share on other sites

On 9/1/2021 at 6:19 PM, Ramalokee said:

Me too ...

 

Data :


  m_numPlayers: 2,
  m_lobbyPlayers: [
    {
      m_aiControlled: 1,
      m_teamId: 0,
      m_nationality: 10,
      m_name: 'Lewis HAMILTON',
      m_carNumber: 44,
      m_readyStatus: 0
    },
    {
      m_aiControlled: 0,
      m_teamId: 2,
      m_nationality: 63,
      m_name: 'Joueur',
      m_carNumber: 68,
      m_readyStatus: 0
    },

 

Sorry, are you saying you can or can't get it to output the name?

Link to comment
Share on other sites

11 hours ago, ThibaudPHP said:

I noticed that and make some tests on unranked lobby. the car must have big "hit" to obtain damage on sidepod and diffuser. for rear and floor, i didnt create damage. if the two others was working, my code was good

I tested on unranked lobby. Only player car has the rear wing damage registered.

Other cars that reported damage on the rear wing from the MFD did not register on the CarDamageData.

Link to comment
Share on other sites

29 minutes ago, ericgvmaia said:

I tested on unranked lobby. Only player car has the rear wing damage registered.

Other cars that reported damage on the rear wing from the MFD did not register on the CarDamageData.

if people don't have their telemetry public, the data stay to 0. Me i am working on lobby where i force people to put their telemetry public

Link to comment
Share on other sites

Hi - the pitch telemetry data at Eau Rouge/Radillion at SPA is inversed/incorrect. When going up the hill the telemetry data is negative and it should be positive. I've attached a word document which shows the telemetry data from F1 2021 vs Iracing at Eau Rouge. This makes the game unplayable on motion platforms. Having the platform pitch significantly down when it should be up and the screen is showing the car go up causes motion sickness. I have noticed the same inverse relationship after the first turn at Monaco going up the hill. Would assume this happens at other tracks as well but haven't raced others yet. 

F1 Eau Rouge Telemetry Data.docx

Link to comment
Share on other sites

Hi Guys,

I am trying to create a simple tyre slip/slip angle dashboard and I have a question regarding the car motion packet value range/value interpretation:

- what is the value range, and how to interpret the wheelslip values? 

- and good suggestion on how to calculate the slip angle? I guess the yaw value is the direction of the car, but how can I calculate the direction of the movement?

Thanks a lot!

Link to comment
Share on other sites

Hello there,

unfortunately, I always get lap times with 10 digits and more, that would mean days
What did I miss? So far I haven't found anything on the Internet where someone has a similar problem

I hope someone can help me 😄


image.thumb.png.44d872d23a296d46488b0393f503b82f.png
Edit: Screenshot

Edited by Hosenloser
Link to comment
Share on other sites

6 hours ago, Hosenloser said:

Hello there,

unfortunately, I always get lap times with 10 digits and more, that would mean days
What did I miss? So far I haven't found anything on the Internet where someone has a similar problem

I hope someone can help me 😄


image.thumb.png.44d872d23a296d46488b0393f503b82f.png
Edit: Screenshot

You should verify your packet structure, if you are out by even 1 byte or out of order you can end up with values like that. Also look at how your decoding the data, if your reading it straight into a struct then you need to remove any struct padding as well from memory.

 

Link to comment
Share on other sites

5 hours ago, Hosenloser said:

thanks for the hint, I'll check it out!

I'm using the npm package from racehub.io (https://github.com/racehub-io/f1-telemetry-client)


i just want to pull out the race results and then load them into our league management system
don't want any real time telemetry data and I haven't found anything like that

hey... what telemetry you use? 2020 or 2021?

Link to comment
Share on other sites

12 hours ago, Hosenloser said:

thanks for the hint, I'll check it out!

I'm using the npm package from racehub.io (https://github.com/racehub-io/f1-telemetry-client)


i just want to pull out the race results and then load them into our league management system
don't want any real time telemetry data and I haven't found anything like that

Ok, so I have now tested the prime-goose package explicitly for 2021 and am getting the same error (and some more :D)

https://github.com/PrimeGoose/f1-2021-udp

Link to comment
Share on other sites

20 hours ago, Hosenloser said:

getting the same error (and some more :D)

m_bestLapTimeInMS 
// fixed
// what other errors have you found?
// I had no time to develop and test my own work. 
// thank you for reporting
 
// you can try the beta package, maybe fixes something, had no time to test, I only applied a theoretical fix to everything.
 
Edited by PrimeGoose
  • Thanks 1
Link to comment
Share on other sites

6 hours ago, PrimeGoose said:
m_bestLapTimeInMS 
// fixed
// what other errors have you found?
// I had no time to develop and test my own work. 
// thank you for reporting
 
// you can try the beta package, maybe fixes something, had no time to test, I only applied a theoretical fix to everything.
 

For Human Drivers in MP I always get n_name: "Player"
I also just created a new issue in github for that.
Or are the wrong data already coming from Codemaster?

Link to comment
Share on other sites

  

On 7/8/2021 at 2:38 PM, BarryBL said:

Still Open

  • Session History info from previous session is sent following a restart
  • Refresh rate requires "hz" suffix
  • Some values not updating on the correct frame when crossing lap boundary
  • No way of linking player data using m_name => This is an old request. We are working with our legal teams to find a way of providing this functionality in the future

from page1

Link to comment
Share on other sites

3 minutes ago, PrimeGoose said:

  

from page1

people don't read. it's been 3 years all new guys don't read. just they ask this. it's almost one by months...

 

When it's not the player name, it's the delta.

 

I will suggest that if the keyword "player" and "delta" are used on this topic by a new guys, the message will not send and his acccount will be banned 😄

  • Disagree 1
Link to comment
Share on other sites

1 minute ago, ThibaudPHP said:

I will suggest that if the keyword "player" and "delta" are used on this topic by a new guys, the message will not send and his acccount will be banned 😄

That's certainly one way to build a welcoming and inclusive community 😉 Lets not get sidetracked too much with who asks what, when and why. If nothing else, the frequency and the amount of developers asking for exactly those two datapoints is a very good indicator for Codemasters how they can improve the APIs they provide.

Link to comment
Share on other sites

1 hour ago, ThibaudPHP said:

people don't read. it's been 3 years all new guys don't read. just they ask this. it's almost one by months...

 

When it's not the player name, it's the delta.

 

I will suggest that if the keyword "player" and "delta" are used on this topic by a new guys, the message will not send and his acccount will be banned 😄

I have read it, but the thread is from July 8th and the document has unfortunately no version history where you can see what status or from what time it is. Therefore, I assumed that the document is newer than the post in which the field "in the future" promises.

 

So then I suggest that people like you just keep scrolling and put the comment anywhere else where the sun never shines

And thanks @cgfdoo, thats exactly why i also post here and not only on Github 😉

Edited by Hosenloser
Link to comment
Share on other sites

On 9/2/2021 at 4:38 PM, ThibaudPHP said:

if people don't have their telemetry public, the data stay to 0. Me i am working on lobby where i force people to put their telemetry public

We also force all drivers on our league to have public telemetry, and we can verify that.
That is not the issue.


The damage data from the front wings are registering correctly, but REAR WING are not.
It's not a matter of restricted or public telemetry.
There is definetely something wrong.

Did anyone here manage to receive the rear wing damage from all cars correctly?

  • Agree 1
Link to comment
Share on other sites

  • Codemasters Staff
10 hours ago, GambaDoCerrado said:

@Hoo I have a bug for you... warnings didnt work in multiplayer lobby (lapdata packet).  I did some tests and found that: turn cut warnings work but the collisions warnings dont work.  4 warnings?

 

 

Hi @GambaDoCerrado - please could you confirm what the rules and penalty settings were set to in the multiplayer session? Thanks.

Link to comment
Share on other sites

 Share

×
×
  • Create New...