I did some measurements (as i'm coding a "lean & clean" kind of "LMU FFB App"):
It's also unclear if it actually 400hz (or 360?) hz of "usefull data" or if doing something as useless as sending duplicate, but that's very(!) unlikely.
My bet is that it really update FFB at 400hz (or 360hz).
We can only get 100Hz from a plugin. And the likely cause is that plugins are only allowed to run at 100hz. I could try to code a plugin to actually measure that but... meh.
So if you REALLY want to get your 400hz, the only way i can think of is to actually develop a "virtual" FFB device driver that can passthrough the data to the actual device +/- whatever you want to do with that 400hz FFB data. That's A LOT of pain. (eg: vJoy)
- using WaitForSingleObject() on LMU_SHARED_MEMORY_EVENT -> 50hz update rate
- using a ~25khz "busy loop" with the LMU SDK (if ffb data not changed -> thread::yield) -> 100hz
- using the same busy loop but on the RF2 Shared memory plugin -> 100hz (NOT 400! The 400 only works with the actual rF2 i guess)
- using USB data rate it's a bit more complex and i didn't want to do any serious reverse engineering and i'm not sure which channel is which it's either
- a fixed data rate of ~400hz
- a variable data rate the seamed to correlate with how hard i shake the car that peak at ~360hz (that a measurement from PC to Wheelbase.
- From device to pc : My wheelbase is apparently sending data at a rate up to 1Khz but there might be multiple type of packet sent, so it could be half that. don't care so i didn't dig.
It's also unclear if it actually 400hz (or 360?) hz of "usefull data" or if doing something as useless as sending duplicate, but that's very(!) unlikely.
My bet is that it really update FFB at 400hz (or 360hz).
We can only get 100Hz from a plugin. And the likely cause is that plugins are only allowed to run at 100hz. I could try to code a plugin to actually measure that but... meh.
So if you REALLY want to get your 400hz, the only way i can think of is to actually develop a "virtual" FFB device driver that can passthrough the data to the actual device +/- whatever you want to do with that 400hz FFB data. That's A LOT of pain. (eg: vJoy)