fix: improve simulation to avoid rounding problems on small time delays
This commit is contained in:
parent
1ccb757226
commit
9ae2445863
1 changed files with 4 additions and 4 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#include <SimuGaz.h>
|
||||
|
||||
#define INITIAL_PULSE_CNT 185432
|
||||
#define INITIAL_CONSUMPTION 3451.02f
|
||||
#define INITIAL_SECONDS 0
|
||||
#define AVERAGE_DAILY_CONSUMPTION 2.66f
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ static const float GRDF_MONTHLY_COEFF[12] = {
|
|||
// - base mensuelle moyenne = 81 m³/mois
|
||||
// - base journalière moyenne = 2.66 m³/j
|
||||
|
||||
RTC_DATA_ATTR uint32_t pulseCount = INITIAL_PULSE_CNT;
|
||||
RTC_DATA_ATTR float consumptionM3 = INITIAL_CONSUMPTION;
|
||||
RTC_DATA_ATTR uint32_t totalSeconds = INITIAL_SECONDS;
|
||||
|
||||
uint32_t simulateGasPulses(uint32_t intervalSeconds)
|
||||
|
|
@ -41,10 +41,10 @@ uint32_t simulateGasPulses(uint32_t intervalSeconds)
|
|||
|
||||
// Résolution compteur Gazpar : 0.010 m³ par impulsion
|
||||
float incrementM3 = dailyBase * intervalSeconds / 86400.0f * dailyVariation;
|
||||
consumptionM3 += incrementM3;
|
||||
uint32_t pulseCount = (uint32_t)(consumptionM3 / 0.010f);
|
||||
uint32_t incrementPulses = (uint32_t)(incrementM3 / 0.010f);
|
||||
|
||||
pulseCount += incrementPulses;
|
||||
|
||||
Serial.printf("[GAZ] Incrément de %lu impulsions - Total : %lu impulsions (%.3f m³)\n", incrementPulses, pulseCount, pulseCount * 0.010f);
|
||||
return pulseCount;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue