#ifndef __CALIB_MODEL_H
#define __CALIB_MODEL_H

#include <stdint.h>


#ifdef __cplusplus
extern "C" {
#endif

// ========================
// 三阶拟合系数定义
// ========================
extern float g_coeff_a;
extern float g_coeff_b;
extern float g_coeff_c;
extern float g_coeff_d;

	
typedef struct {
    float a;
    float b;
    float c;
    float d;
} CalibCoeffs_t;
extern CalibCoeffs_t g_coeffs ;

/**
 * @brief    根据电容值估算油水混合百分比
 * @param    cap  滤波后的电容值（单位 pF）
 * @return   油水混合百分比（单位 %，0~100）
 */
float Estimate_Percentage(float cap);

/**
 * @brief    设置三阶拟合系数（如从 Flash 加载）
 */
void Set_Calib_Coeffs(float a, float b, float c, float d);

// ========================
// 接口函数
void Init_CalibModel_FromFlash(void);
void Save_Current_Calib_ToFlash(void);
void pack_CalibModel_a(void); //  float g_coeff_a --> uint32_t uint_coeff_a
void pack_CalibModel_b(void); //  float g_coeff_b --> uint32_t uint_coeff_b
void pack_CalibModel_c(void); //  float g_coeff_c --> uint32_t uint_coeff_c 	
void pack_CalibModel_d(void); //  float g_coeff_d --> uint32_t uint_coeff_d


// ========================

#ifdef __cplusplus
}
#endif

#endif // __CALIB_MODEL_H
