#pragma once
#include <Arduino.h>
#include <Arduino_LPS22HB.h>
#include "filters.h"

/*
 ===========================================================
    MODULE PhiBarometer
    Mesure pression atmosphérique + variations
    
    FIX: Arduino_LPS22HB retourne kPa → multiplier ×10 pour hPa
 ===========================================================
*/

class PhiBarometer {
public:
    PhiBarometer();

    // Initialisation (BARO.begin() doit être appelé avant)
    bool begin();

    // Calibration baseline (appeler au setup, environnement stable)
    void calibrateBaseline(uint16_t samples = 200);

    // Mise à jour (appeler à ~10 Hz)
    void update();

    // Métriques scientifiques
    float pressure() const { return _pressure; }        // Pression actuelle (hPa)
    float delta() const { return _deltaPressure; }      // Écart au baseline (hPa)
    float baseline() const { return _baseline; }        // Baseline calibré (hPa)
    
    // Estimation altitude relative (depuis baseline)
    float relativeAltitude() const;

private:
    float _pressure;        // Pression actuelle (hPa) - CORRIGÉE ×10
    float _deltaPressure;   // Écart au baseline (hPa)
    float _baseline;        // Baseline calibré (hPa)
    bool  _calibrated;

    LowPass _lpf;           // Lissage (α=0.05, ~2s temps réponse)
};