Use sim provided slip ratio if available for slip based effects
This commit is contained in:
parent
f21bced7c6
commit
925cb0a2f1
|
|
@ -204,51 +204,68 @@ double slipeffect(SimData* simdata, int effecttype, int tyre, double threshold,
|
||||||
wheelslip[2] = 0;
|
wheelslip[2] = 0;
|
||||||
wheelslip[3] = 0;
|
wheelslip[3] = 0;
|
||||||
|
|
||||||
slogt("wheel vibration calculation with wheel config set to %i configchecked %i configfile %s car %s sim %i", useconfig, *configcheck, configfile, simdata->car, simdata->simexe);
|
int sim_slip_ratio =0;
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
switch (effecttype)
|
|
||||||
{
|
{
|
||||||
case (EFFECT_TYRESLIP):
|
sim_slip_ratio = abs(simdata->tyreslipratio[i]);
|
||||||
case (EFFECT_TYRELOCK):
|
}
|
||||||
case (EFFECT_ABSBRAKES):
|
|
||||||
|
if(sim_slip_ratio == 0)
|
||||||
|
{
|
||||||
|
slogt("wheel vibration calculation with wheel config set to %i configchecked %i configfile %s car %s sim %i", useconfig, *configcheck, configfile, simdata->car, simdata->simexe);
|
||||||
|
|
||||||
|
switch (effecttype)
|
||||||
|
{
|
||||||
|
case (EFFECT_TYRESLIP):
|
||||||
|
case (EFFECT_TYRELOCK):
|
||||||
|
case (EFFECT_ABSBRAKES):
|
||||||
|
|
||||||
|
|
||||||
if(hasTyreDiameter(simdata)==true)
|
if(hasTyreDiameter(simdata)==true)
|
||||||
{
|
|
||||||
double Speedms = kmhtoms * simdata->velocity;
|
|
||||||
slogt("attempting wheel slip calculation");
|
|
||||||
if (Speedms > minspeedinms)
|
|
||||||
{
|
{
|
||||||
for(int i = 0; i < 4; i++)
|
double Speedms = kmhtoms * simdata->velocity;
|
||||||
|
slogt("attempting wheel slip calculation");
|
||||||
|
if (Speedms > minspeedinms)
|
||||||
{
|
{
|
||||||
wheelslip[i] = (Speedms - simdata->tyrediameter[i] * simdata->tyreRPS[i] / 2) / Speedms;
|
for(int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
wheelslip[i] = (Speedms - simdata->tyrediameter[i] * simdata->tyreRPS[i] / 2) / Speedms;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else
|
|
||||||
{
|
|
||||||
for(int i = 0; i < 4; i++)
|
|
||||||
{
|
{
|
||||||
wheelslip[i] = 0;
|
for(int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
wheelslip[i] = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
slogt("wheelslip values are %f %f %f %f", wheelslip[0], wheelslip[1], wheelslip[2], wheelslip[3]);
|
||||||
|
slogt("velocities (x,y,z) are %f %f %f", simdata->Xvelocity, simdata->Yvelocity, simdata->Zvelocity);
|
||||||
}
|
}
|
||||||
slogt("wheelslip values are %f %f %f %f", wheelslip[0], wheelslip[1], wheelslip[2], wheelslip[3]);
|
break;
|
||||||
slogt("velocities (x,y,z) are %f %f %f", simdata->Xvelocity, simdata->Yvelocity, simdata->Zvelocity);
|
case EFFECT_SUSPENSION:
|
||||||
}
|
break;
|
||||||
break;
|
default:
|
||||||
case EFFECT_SUSPENSION:
|
slogd("Unknown effect type");
|
||||||
break;
|
}
|
||||||
default:
|
if(simdata->Yvelocity <= 0)
|
||||||
slogd("Unknown effect type");
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if(simdata->Zvelocity > 1 || simdata->Zvelocity < -1)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
wheelslip[i] = simdata->tyreslipratio[i];
|
||||||
|
}
|
||||||
|
slogt("wheelslip values from sim are %f %f %f %f", wheelslip[0], wheelslip[1], wheelslip[2], wheelslip[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(simdata->Yvelocity <= 0)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if(simdata->Zvelocity > 1 || simdata->Zvelocity < -1)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (effecttype)
|
switch (effecttype)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue