How to get live data from Race07?

Hi all.

I've been googling for several days now, but come up with practically nothing.
sad.gif


I am currently working on a piece of software for Leo Bodnar's Sli-devices (to replace the "official" one) and trying to get support for Race07-series.
I am able to get live telemetry data (like Rpm, speed, and all that) but I cannot for the life of me, figure out how to get trackname, carname or other "session" related info.
The only "solution" I've come up with, is to monitor <Documents>\SimBin\ for filechanges, and then assume that the first changed plr-file is the current players plr-file (to get the trackname) and watching for changes to tempgarage.svm for getting the carname. I am doing this AFTER I confirm that Race07 is doing it's memory mapped file for the telemetry, so I'm thinking this approach is pretty bulletproof, but it just doesn't seem to be the "right" way of doing things...
sad.gif


Does anyone know if/how this info can be retrieved in a better way???
Please?
Pretty, pretty please?

/Lars
 
Hej Lars,

Jeg kan se at du er dansker som jeg og skriver derfor på dansk.
Har du fundet en løsning på dit problem ?

Jeg så dit indslag og det ser ud til at vi er "ikke helt" i samme båd. Jeg har udviklet en del special software til forskellige formål. Jeg arbejder på et stykke software til styrring af en Märklin modeljernbane hvor alt styres digitalt, i øjeblikket er min interesse dog koncentreret omkring Sim racing. Jeg har aldrig arbejdet med memory mapped filer før og står over for en udfordring som er svær at finde en løsning på. Jeg kan se at du har fundet løsningen på at hente live data fra Race 07. Er du villig til at dele dine erfaringer ? Jeg har søgt efter en plugin som kunne leverer de data fra Race 07 men det synes som en umulig opgave. Jeg håber at jeg måske kan hjælpe dig med dine udfordringer og vil så snart jeg har noget brugbart poste dem i dette forum.
/Henrik
 
Guys,

Please keep it in English, so others can read and understand it as well. Remember that problems and questions occur everywhere, and if we keep the answer in an understandable language for all visitors of RD, we can help more people.

Now, I know I cant make you, so I try to encourage you to post your communication here, instead of via email ;). Same reason, so others can learn from it as well.

Thanks in advance,

Marco.
 
Of course, Marco!

Henrik was stating that he is working on a project, where he needs Race 07 data, and that he has seen that I have got it working, so asked for pointers.
I replied, that I would help and directed him to my mail, because of the language thing.
:)
 
I figured something like that. Danish is, in reading terms, somewhat simular to Dutch, so I can understand it a bit.
It was a headsup from me, as we value all the information about the different platforms posted on our forums, and it makes a great knowledgebase when all is understandable :).

Thanks for understanding.
 
I've been wondering about something that seems pretty related to this thread.
I'd like to see data about my braking, speed, acceleration, and race-line on each track. Is this possible with Race 07 or external software?
I've got XD of course, and also found Real Time Telemetry .. but neither of those do that AFAIK.
 
Nope, that doesn't work.
I have figured out a very dirty way of getting track- and carname, though, as described in the first post.
The available data in Race07's Memory Mapped File is this :

Code:
float userInput[ 6 ]; // This structure allows for a number of parameters to be
// passed from the user to the exteral application via control input
// in the game. The ISIInputType enum describes which element of this
// array corresponds to which in-game control. Note that this data
// is floating point, and can be configured in the game to be driven
// by an analog input device (joystick). The user may also map the
// control to a keyboard key, or a digital controller button. This
// means that the value may be anywhere between 0.0 and 1.0. Also note
// that these values will not be debounced; if the user
// maps the "External Signal Up" control to a key on the keyboard,
// the coresponding value in this array will remain 1.0 for as long
// as the user holds the key down.
 
float rpm; // Engine speed, Radians Per Second.
float maxEngineRPS; // For use with an "analog" rpm display.
float fuelPressure; // KPa
float fuel; // Current liters of fuel in the tank(s).
float fuelCapacityLiters; // Maximum capacity of fuel tank(s).
float engineWaterTemp; //
float engineOilTemp; //
float engineOilPressure; //
 
float carSpeed; // meters per second
long numberOfLaps; // # of laps in race, or -1 if player is not in
// race mode (player is in practice or test mode).
 
long completedLaps; // How many laps the player has completed. If this
// value is 6, the player is on his 7th lap. -1 = n/a
 
float lapTimeBest; // Seconds. -1.0 = none
float lapTimePrevious; // Seconds. -1.0 = none
float lapTimeCurrent; // Seconds. -1.0 = none
long position; // Current position. 1 = first place.
long numCars; // Number of cars (including the player) in the race.
long gear; // -2 = no data available, -1 = reverse, 0 = neutral,
// 1 = first gear... (valid range -1 to 7).
 
//float tireTemp[ TIRE_LOC_MAX ][ TREAD_LOC_MAX ]; // Temperature of three points
float tirefrontleft[3]; //tire values from [0]=left to [2]=right
float tirefrontright[3]; //tire values from [0]=left to [2]=right
float tirerearleft[3]; //tire values from [0]=left to [2]=right
float tirerearright[3]; //tire values from [0]=left to [2]=right
// across the tread of each tire.
long numPenalties; // Number of penalties pending for the player.
 
float carCGLoc[3]; // Physical location of car's Center of Gravity in world space, X,Y,Z... Y=up.
//float carOri[ ORI_MAXIMUM ]; // Pitch, Yaw, Roll. Electronic compass, perhaps?
float pitch;
float yaw;
float roll;
//float localAcceleration[3]; // Acceleration in three axes (X, Y, Z) of car body (divide by
// 9.81 to get G-force). From car center, +X=left, +Y=up, +Z=back.
float lateral; //Force left-right
float vertical; //force up-down
float longitudinal; //force faster, slower
 
I've been wondering about something that seems pretty related to this thread.
I'd like to see data about my braking, speed, acceleration, and race-line on each track. Is this possible with Race 07 or external software?
I've got XD of course, and also found Real Time Telemetry .. but neither of those do that AFAIK.

http://www.motec.com/i2/i2overview/

I never managed to get live data with this but gives you a very extensive readout. Pretty cool to help analyze youre laps etc.
 
the motec software is free for sim use, you have to pay for the real world version.... there is a big thread on it over at nogrip with all the info on how to get it working... it will display data for throttle and brake postion etc but only retrospectively, there is no real time display for it.

Lars, have you tried looking in the log files created in the userdata folder (assuming you have logging turned on in your plr file) I'm not sure if this file is updated in real time or if it is updated when entering the garage. It certainly contains all the data you could need but it depends if that data is available when you need it....if that makes sense...
 
Oh, ok, I haven't got an email... or maybe gmail is acting up... :)

Anyways, I know practically nothing about pointer-gymnastics in VB, let alone Mem-mapped-files...
I am certain there are tons of examples out there, that you would understand better than me... :)
I posted the structure above, that describes what is in the shared memory that Race07 makes.

The name of the mem-map-file is "$race$" (without the quotes) as far as I rememer (the same structure is used for gtr2 if you're interested; for Gtr2 the name is "$gtr2$" as far as I remember)

Let me know if you still need some help...
 
Oh, ok, I haven't got an email... or maybe gmail is acting up... :)

Anyways, I know practically nothing about pointer-gymnastics in VB, let alone Mem-mapped-files...
I am certain there are tons of examples out there, that you would understand better than me... :)
I posted the structure above, that describes what is in the shared memory that Race07 makes.

The name of the mem-map-file is "$race$" (without the quotes) as far as I rememer (the same structure is used for gtr2 if you're interested; for Gtr2 the name is "$gtr2$" as far as I remember)

Let me know if you still need some help...

Thank you very much Lars.
I send the mail to the email address you posted. Hmm... computers have their own life :)
The name of the MMF is just what I need. Thank's a lot.
 
Lars, have you tried looking in the log files created in the userdata folder (assuming you have logging turned on in your plr file) I'm not sure if this file is updated in real time or if it is updated when entering the garage. It certainly contains all the data you could need but it depends if that data is available when you need it....if that makes sense...

Yeah, that's how I ended up getting the data.
When I discover that the Race07 mem-mapped-file is available, I start monitoring the <docs>\simbin-folder for changes to plr-files, and when I detect one, I get the data from there...
Extremely dirty solution, but it seems to be the only way... :-(
 

Latest News

Online or Offline racing?

  • 100% online racing

    Votes: 96 7.8%
  • 75% online 25% offline

    Votes: 130 10.5%
  • 50% online 50% offline

    Votes: 175 14.2%
  • 25% online 75% offline

    Votes: 348 28.2%
  • 100% offline racing

    Votes: 480 38.9%
  • Something else, explain in comment

    Votes: 5 0.4%
Back
Top