refactor(battery): Fire event on battery event.
This commit is contained in:
parent
f8af592a9c
commit
d5ea426975
4 changed files with 42 additions and 1 deletions
|
@ -36,6 +36,7 @@ target_sources(app PRIVATE src/events/keycode_state_changed.c)
|
|||
target_sources(app PRIVATE src/events/modifiers_state_changed.c)
|
||||
target_sources(app PRIVATE src/events/sensor_event.c)
|
||||
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c)
|
||||
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/battery_state_changed.c)
|
||||
target_sources_ifdef(CONFIG_USB app PRIVATE src/events/usb_conn_state_changed.c)
|
||||
if (NOT CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL)
|
||||
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
||||
|
|
18
app/include/zmk/events/battery-state-changed.h
Normal file
18
app/include/zmk/events/battery-state-changed.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* Copyright (c) 2020 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <zephyr.h>
|
||||
#include <zmk/event-manager.h>
|
||||
|
||||
struct battery_state_changed {
|
||||
struct zmk_event_header header;
|
||||
// TODO: Other battery channels
|
||||
u8_t state_of_charge;
|
||||
};
|
||||
|
||||
ZMK_EVENT_DECLARE(battery_state_changed);
|
|
@ -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) {
|
||||
|
|
10
app/src/events/battery_state_changed.c
Normal file
10
app/src/events/battery_state_changed.c
Normal file
|
@ -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);
|
Loading…
Reference in a new issue