api-hal-power.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #include <m-string.h>
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef enum {
  9. ApiHalPowerICCharger,
  10. ApiHalPowerICFuelGauge,
  11. } ApiHalPowerIC;
  12. /* Initialize drivers */
  13. void api_hal_power_init();
  14. /* Check if deep sleep availble */
  15. bool api_hal_power_deep_available();
  16. /* Go to deep sleep */
  17. void api_hal_power_deep_sleep();
  18. /* Get predicted remaining battery capacity in percents */
  19. uint8_t api_hal_power_get_pct();
  20. /* Get charging status */
  21. bool api_hal_power_is_charging();
  22. /* Poweroff system */
  23. void api_hal_power_off();
  24. /* OTG enable */
  25. void api_hal_power_enable_otg();
  26. /* OTG disable */
  27. void api_hal_power_disable_otg();
  28. /* Get remaining battery battery capacity in mAh */
  29. uint32_t api_hal_power_get_battery_remaining_capacity();
  30. /* Get full charge battery capacity in mAh */
  31. uint32_t api_hal_power_get_battery_full_capacity();
  32. /* Get battery voltage in V */
  33. float api_hal_power_get_battery_voltage(ApiHalPowerIC ic);
  34. /* Get battery current in A */
  35. float api_hal_power_get_battery_current(ApiHalPowerIC ic);
  36. /* Get temperature in C */
  37. float api_hal_power_get_battery_temperature(ApiHalPowerIC ic);
  38. /* Get System voltage in V */
  39. float api_hal_power_get_system_voltage();
  40. /* Get USB voltage in V */
  41. float api_hal_power_get_usb_voltage();
  42. /* Get power system component state */
  43. void api_hal_power_dump_state(string_t buffer);
  44. #ifdef __cplusplus
  45. }
  46. #endif