power_api.c 753 B

12345678910111213141516171819202122232425262728293031
  1. #include "power_i.h"
  2. #include <furi.h>
  3. #include "furi-hal-power.h"
  4. #include "furi-hal-boot.h"
  5. void power_off() {
  6. furi_hal_power_off();
  7. }
  8. void power_reboot(PowerBootMode mode) {
  9. if(mode == PowerBootModeNormal) {
  10. furi_hal_boot_set_mode(FuriHalBootModeNormal);
  11. } else if(mode == PowerBootModeDfu) {
  12. furi_hal_boot_set_mode(FuriHalBootModeDFU);
  13. }
  14. furi_hal_power_reset();
  15. }
  16. void power_get_info(Power* power, PowerInfo* info) {
  17. furi_assert(power);
  18. furi_assert(info);
  19. osMutexAcquire(power->info_mtx, osWaitForever);
  20. memcpy(info, &power->info, sizeof(power->info));
  21. osMutexRelease(power->info_mtx);
  22. }
  23. PubSub* power_get_pubsub(Power* power) {
  24. furi_assert(power);
  25. return &power->event_pubsub;
  26. }