I have the following:
Code: Select all
SimConnect_AddToDataDefinition(hSc,DEF_BODY_VEL_Z,"VELOCITY BODY Z","feet per second");
The acceleration as set by:
Code: Select all
bvz.bvz = "7.31"; // ft sec^-2
SimConnect_SetDataOnSimObject(hSc,DEF_BODY_VEL_Z,SIMCONNECT_OBJECT_ID_USER,0,0,sizeof(_body_vel_z),&bvz);
It is dependent upon frame rate. At 120 FPS this input results in too much acceleration (by approx. 30%), and at 20 FPS (due to being frame-rate limited in settings, or otherwise) results in an under-acceleration by about 80%.
The rate application appears linear to frame rate according to:
SetBodyZAccel * (70.0 / actual_FPS);
...which results in completely incorrect behavior on systems where the FPS is anything other than 70 FPS.
On a system typically limited to 20 or 30 FPS, this means the acceleration rate is very low compared to the set value.
On a related note, there appears to be no reliable way of obtaining, or otherwise syncing to, the current frame rate or the flight model physics.