Codemasters expose a data feed containing a bunch of useful information via a UDP stream. To connect to this stream you need to modify the file found at My Documents/My Games/<Codemasters Game>/hardwaresettings/hardware_settings_config.xml. You need to find motion entry and change it to the following
extradata can take the following values:
- 0 - No data
- 1- Original set of data. As used on the Dirt series, the F1 series up to F1 2011, and pretty much all Codemasters racing games before F1 2012. Still valid for F1 2012 and F1 2013
- 2 - Exposes extra data including DRS, KERS, sector times, and Circuit, and more. Valid for F1 2012 and F1 2013 only, as far as I know. I can't see it being valid on other new games because it contains Formula 1 specific data.
- 3 - Update (20/10/2015) - I am not sure the fields in this new packet but it does not invalidate the previous settings
- 4 - Update (20/10/2015) - I am not sure the fields in this new packet but it does not invalidate the previous settings
The other value that gets changed is ip and potentially port. This standard stuff if you know about the UDP. I'm not sure what dbox is (the default). Perhaps it's "developer box" or something and the devs at Codemasters use it. Maybe netstat while F1 201x is running whill show it up. I can't remember if I tried that with F1 2010. It sounds like something I would have tried...
Anyhoo What good is data/telemetry? Well, with it you can make cool apps like F1Speed, or provide data to your motion platform, like my mate Fernando did over at E69. The potential is as large as your imagination they say.
I've written two main posts on it
- Connecting to Codemasters Telemetry Feed - which describes the original set of data (extradata="1") and gives code samples on how to connect and some logic that can be enterpreted from the data. and;
- Codemasters F1 data feed updated - where I provide the extra fields addded by the extradata="2" option.
There's also a lot of value in investigating my source code for F1Speed on github. The main classes you'll want are in the F1Speed.Core assembly - It's a C#, .NET 4.5 solution (VS 2012).
- TelemetryPacket - Encapsulates a single data packet from F1 201x
- TelemetryLap - Encapsulates a single lap of the circuit. This contains a collection of TelemetryPacket packets, as well as business logic for determining things useful to a lap.
- TelemetryManager - This is where the real business happens and stores a collection of TelemetryLaps as well as exposes various significant properties and much else. It's basically the engine of F1Speed.
If you happen to find information useful, please leave a comment :)