define HEATLOAD_OFFSET 0.9596
#define HEATLOAD_MULT 35.92
#define HEATLOAD_EXP 1.324
//heat load persists across sessions
double RealtimeData::heatLoad = 0;
qint64 RealtimeData::heatLoadMSec = 0;
//Skin temp passed but not used elsewhere
void RealtimeData::setCoreTemp(double core, double skin, double heatStrain) {
this->coreTemp = core;
this->skinTemp = skin;
//heatStrain = 3.5;
this->heatStrain = heatStrain;
//(HSI-AOC_Off)^AOC_EXP*TIME/AOC_Mult
QDateTime currentTime = QDateTime::currentDateTimeUtc();
qint64 msecEpoc = currentTime.toMSecsSinceEpoch();
if(this->heatLoadMSec != 0)
{
qint64 deltaMSec = msecEpoc - this->heatLoadMSec;
double deltamin = deltaMSec / (1000.0 * 60.0); //msec to minutes
double newLoad = pow(heatStrain-HEATLOAD_OFFSET, HEATLOAD_EXP) * deltamin / HEATLOAD_MULT;
if(newLoad > 0)
this->heatLoad += newLoad;
if(this->heatLoad >= 10.0)
this->heatLoad = 10.0;
}
this->heatLoadMSec = msecEpoc;
}