power-observer.c 806 B

123456789101112131415161718192021222324252627282930313233
  1. #include <furi.h>
  2. #include <furi-hal.h>
  3. #include <notification/notification-messages.h>
  4. const NotificationMessage message_green_110 = {
  5. .type = NotificationMessageTypeLedGreen,
  6. .data.led.value = 110,
  7. };
  8. static const NotificationSequence sequence_overconsumption = {
  9. &message_green_110,
  10. &message_red_255,
  11. &message_delay_100,
  12. NULL,
  13. };
  14. int32_t power_observer_srv(void* p) {
  15. NotificationApp* notifications = furi_record_open("notification");
  16. const float overconsumption_limit = 0.03f;
  17. while(true) {
  18. float current = -furi_hal_power_get_battery_current(FuriHalPowerICFuelGauge);
  19. if(current >= overconsumption_limit) {
  20. notification_message_block(notifications, &sequence_overconsumption);
  21. }
  22. delay(1000);
  23. }
  24. return 0;
  25. }