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>
|
#include <SimuGaz.h>
|
||||||
|
|
||||||
#define INITIAL_PULSE_CNT 185432
|
#define INITIAL_CONSUMPTION 3451.02f
|
||||||
#define INITIAL_SECONDS 0
|
#define INITIAL_SECONDS 0
|
||||||
#define AVERAGE_DAILY_CONSUMPTION 2.66f
|
#define AVERAGE_DAILY_CONSUMPTION 2.66f
|
||||||
|
|
||||||
|
|
@ -25,7 +25,7 @@ static const float GRDF_MONTHLY_COEFF[12] = {
|
||||||
// - base mensuelle moyenne = 81 m³/mois
|
// - base mensuelle moyenne = 81 m³/mois
|
||||||
// - base journalière moyenne = 2.66 m³/j
|
// - 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;
|
RTC_DATA_ATTR uint32_t totalSeconds = INITIAL_SECONDS;
|
||||||
|
|
||||||
uint32_t simulateGasPulses(uint32_t intervalSeconds)
|
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
|
// Résolution compteur Gazpar : 0.010 m³ par impulsion
|
||||||
float incrementM3 = dailyBase * intervalSeconds / 86400.0f * dailyVariation;
|
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);
|
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);
|
Serial.printf("[GAZ] Incrément de %lu impulsions - Total : %lu impulsions (%.3f m³)\n", incrementPulses, pulseCount, pulseCount * 0.010f);
|
||||||
return pulseCount;
|
return pulseCount;
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue