diff options
author | gornekich <n.gorbadey@gmail.com> | 2021-09-10 00:11:32 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-10 00:11:32 +0300 |
commit | 9bce160ca6aff2b139cd230aad2709e192be8117 (patch) | |
tree | 02a8fff67fcea14b7c96f64de943e90d55741112 /applications/power | |
parent | 710f33981a39d77d94d4313b67a58284eefa4a9d (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.c | 13 |
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); |