Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgornekich <n.gorbadey@gmail.com>2021-09-10 00:11:32 +0300
committerGitHub <noreply@github.com>2021-09-10 00:11:32 +0300
commit9bce160ca6aff2b139cd230aad2709e192be8117 (patch)
tree02a8fff67fcea14b7c96f64de943e90d55741112 /applications/power
parent710f33981a39d77d94d4313b67a58284eefa4a9d (diff)
[FL-1722] BLE custom serial service (#685)
* ble: remove heart rate profile * ble-glue: delete dead code * ble-glue: dis refactoring * ble-glue: add battery service * broken ble_common refactoring * ble-glue: advertise 128 bit service uid * ble-glue: remove dead code * ble: advertise service 16 bit uid depending on flipper color * ble-glue: remove debug * ble: intriduce serial service * ble: serial over ble * bt: serial echo server * bt: serial service process indicate acknowledge * bt: serial service event handler update * bt: refactore battery service * bt: add battery level apdate API * power: update battery level on change * bt: refactore device information service Co-authored-by: あく <alleteam@gmail.com>
Diffstat (limited to 'applications/power')
-rw-r--r--applications/power/power.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/applications/power/power.c b/applications/power/power.c
index b083f6ea..6fc4077a 100644
--- a/applications/power/power.c
+++ b/applications/power/power.c
@@ -18,6 +18,7 @@
#include <stm32wbxx.h>
#include <notification/notification-messages.h>
+#include <applications/bt/bt_service/bt.h>
#define POWER_OFF_TIMEOUT 30
@@ -39,6 +40,7 @@ struct Power {
ValueMutex* menu_vm;
Cli* cli;
+ Bt* bt;
MenuItem* menu;
PowerState state;
@@ -108,6 +110,8 @@ Power* power_alloc() {
power->cli = furi_record_open("cli");
power_cli_init(power->cli, power);
+ power->bt = furi_record_open("bt");
+
power->menu = menu_item_alloc_menu("Power", icon_animation_alloc(&A_Power_14));
menu_item_subitem_add(
power->menu, menu_item_alloc_function("Off", NULL, power_menu_off_callback, power));
@@ -206,13 +210,15 @@ int32_t power_srv(void* p) {
power->menu_vm, (Menu * menu) { menu_item_add(menu, power->menu); });
furi_record_create("power", power);
-
+ uint8_t battery_level = 0;
+ uint8_t battery_level_prev = 0;
while(1) {
bool battery_low = false;
with_view_model(
power->info_view, (PowerInfoModel * model) {
model->charge = furi_hal_power_get_pct();
+ battery_level = model->charge;
model->health = furi_hal_power_get_bat_health_pct();
model->capacity_remaining = furi_hal_power_get_battery_remaining_capacity();
model->capacity_full = furi_hal_power_get_battery_full_capacity();
@@ -258,6 +264,11 @@ int32_t power_srv(void* p) {
power_charging_indication_handler(power, notifications);
+ if(battery_level_prev != battery_level) {
+ battery_level_prev = battery_level;
+ bt_update_battery_level(power->bt, battery_level);
+ }
+
view_port_update(power->battery_view_port);
osDelay(1024);