Kafkaesque: having a nightmarishly complex, bizarre, or illogical quality
A template built around the Common Application Framework of the nRF Connect SDK, that makes it possible to enable CAF modules with one line of configuration each, providing sensible defaults to make your life easier.
CAFKA is still experimental so you may run into some issues. You may post them under this repository and you will receive advice.
As a Git submodule (recommended):
git submodule add https://github.com/mocast/CAFKA.git src/cafka
cd src/cafka
git checkout master
Then, in your Kconfig, add this to include the CAFKA modules
menu "CAFKA"
rsource "src/cafka/Kconfig"
endmenu
The following modules are available, with more to come:
Category | CAF Module | Setting |
---|---|---|
Bluetooth Low Energy & LTE | ||
BLE Advertising | CAKFA_BLE_ADV | |
BLE Bond | CAKFA_BLE_BOND | |
BLE State | CAKFA_BLE_STATE | |
BLE State/Adv/Bond | CAKFA_BLE_ALL | |
Network State | - | |
Power Manager | ||
Power Manager | CAFKA_POWER_MANAGER | |
BLE State | - | |
Buttons KeepAlive | - | |
System | ||
SMP DFU via BLE | CAFKA_BLE_SMP | |
Settings Loader | CAFKA_SETTINGS_LOADER | |
Shell | - | |
Input/Output Devices | ||
Buttons | CAFKA_BUTTONS | |
Click Detector | CAFKA_CLICK_DETECTOR | |
Sensor Manager | CAFKA_SENSOR_MANAGER | |
Sensor Data Agg. | - | |
GPIO LEDs | CAFKA_LEDS_GPIO | |
PWM LEDs | CAFKA_LEDS_PWM |
To enable them, simply add the corresponding line to your prj.conf file. For instance:
# prj.conf
CAFKA_BLE_STATE=y
Or better yet, add them as a dependency of your module:
# src/modules/Kconfig.my_ble_module
menu "My BLE State Module"
config MY_BLE_STATE_MODULE_ENABLE
bool "Enable custom ble state module"
# select FEATURE
select CAFKA_BLE_STATE
help
My custom module that reacts to BLE state events.
endmenu
Then, add the your module to your prj.conf.
# prj.conf
MY_BLE_STATE_MODULE_ENABLE=y
To fine tune the configuration of any module, modify the corresponding
Kconfig.[module].default
file located under modules
.
You should of course also be able to directly set them in prj.conf
.
This template is licensed under the 3-Clause BSD License.