summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/battery.c14
-rw-r--r--app/src/events/battery_state_changed.c10
2 files changed, 23 insertions, 1 deletions
diff --git a/app/src/battery.c b/app/src/battery.c
index 9496570..e78b2fb 100644
--- a/app/src/battery.c
+++ b/app/src/battery.c
@@ -14,6 +14,9 @@
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
+#include <zmk/event-manager.h>
+#include <zmk/events/battery-state-changed.h>
+
struct device *battery;
static int zmk_battery_update(struct device *battery) {
@@ -35,7 +38,16 @@ static int zmk_battery_update(struct device *battery) {
LOG_DBG("Setting BAS GATT battery level to %d.", state_of_charge.val1);
- return bt_gatt_bas_set_battery_level(state_of_charge.val1);
+ rc = bt_gatt_bas_set_battery_level(state_of_charge.val1);
+
+ if (rc != 0) {
+ LOG_WRN("Failed to set BAS GATT battery level (err %d)", rc);
+ return rc;
+ }
+
+ struct battery_state_changed *ev = new_battery_state_changed();
+ ev->state_of_charge = state_of_charge.val1;
+ return ZMK_EVENT_RAISE(ev);
}
static void zmk_battery_work(struct k_work *work) {
diff --git a/app/src/events/battery_state_changed.c b/app/src/events/battery_state_changed.c
new file mode 100644
index 0000000..4b937e3
--- /dev/null
+++ b/app/src/events/battery_state_changed.c
@@ -0,0 +1,10 @@
+/*
+ * Copyright (c) 2020 The ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <kernel.h>
+#include <zmk/events/battery-state-changed.h>
+
+ZMK_EVENT_IMPL(battery_state_changed); \ No newline at end of file