calib_model.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef __CALIB_MODEL_H
  2. #define __CALIB_MODEL_H
  3. #include <stdint.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. // ========================
  8. // 三阶拟合系数定义
  9. // ========================
  10. extern float g_coeff_a;
  11. extern float g_coeff_b;
  12. extern float g_coeff_c;
  13. extern float g_coeff_d;
  14. typedef struct {
  15. float a;
  16. float b;
  17. float c;
  18. float d;
  19. } CalibCoeffs_t;
  20. extern CalibCoeffs_t g_coeffs ;
  21. /**
  22. * @brief 根据电容值估算油水混合百分比
  23. * @param cap 滤波后的电容值(单位 pF)
  24. * @return 油水混合百分比(单位 %,0~100)
  25. */
  26. float Estimate_Percentage(float cap);
  27. /**
  28. * @brief 设置三阶拟合系数(如从 Flash 加载)
  29. */
  30. void Set_Calib_Coeffs(float a, float b, float c, float d);
  31. // ========================
  32. // 接口函数
  33. void Init_CalibModel_FromFlash(void);
  34. void Save_Current_Calib_ToFlash(void);
  35. void pack_CalibModel_a(void); // float g_coeff_a --> uint32_t uint_coeff_a
  36. void pack_CalibModel_b(void); // float g_coeff_b --> uint32_t uint_coeff_b
  37. void pack_CalibModel_c(void); // float g_coeff_c --> uint32_t uint_coeff_c
  38. void pack_CalibModel_d(void); // float g_coeff_d --> uint32_t uint_coeff_d
  39. // ========================
  40. #ifdef __cplusplus
  41. }
  42. #endif
  43. #endif // __CALIB_MODEL_H