soc.h 926 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include "libs/shark_libs.h"
  3. #include "bsp/shark_bsp.h"
  4. #define SOC_FLAG_CALIBRATED 1 //已经校准
  5. typedef struct {
  6. uint8_t flags; //比如是否校准等
  7. double coulomb_now; /*AH, 若导线中载有1安培的稳定电流,则在1秒内通过导线横截面积的电量为1库仑 */
  8. uint8_t capacity; /* 电池的容量百分比 */
  9. double coulomb_min;
  10. double coulomb_max;
  11. double power; //功率,当前的电压 x 当前的电流(w)
  12. double energy; //当前的能量(wh)
  13. double charger_coulomb; //本次充电的AH
  14. double dischrger_coulomb; //本次放电的AH
  15. double pre_charger_coulomb;
  16. double pre_discharger_coulomb;
  17. float total_coulomb;
  18. }soc_t;
  19. void soc_init(void);
  20. void soc_update(void);
  21. int soc_update_by_ocv(void);
  22. uint32_t soc_get_cycle(void);
  23. uint8_t soc_get_soh(void);
  24. uint32_t soc_get_charger_remain_time(void);
  25. soc_t *get_soc(void);
  26. void soc_log(void);
  27. void soc_update_for_deepsleep(float sleep_time);
  28. void soc_restore_by_iap(uint8_t flags, uint8_t capaticy);