Skip to content

Commit 6cf4a93

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into pts-settings
2 parents ae4b9e0 + 42a5cdb commit 6cf4a93

46 files changed

Lines changed: 1961 additions & 241 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@
44
[submodule "src/libs/littlefs"]
55
path = src/libs/littlefs
66
url = https://github.com/littlefs-project/littlefs.git
7+
[submodule "src/libs/QCBOR"]
8+
path = src/libs/QCBOR
9+
url = https://github.com/laurencelundblade/QCBOR.git

doc/ble.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
## Introduction
33
This page describes the BLE implementation and API built in this firmware.
44

5-
**Note** : I'm a beginner in BLE related technologies and the information in this document reflects my current knowledge and understanding of the BLE stack. This information might be erroneous or incomplete. Feel free to submit a PR if you think you can improve it.
5+
**Note**: I'm a beginner in BLE related technologies and the information in this document reflects my current knowledge and understanding of the BLE stack. This information might be erroneous or incomplete. Feel free to submit a PR if you think you can improve it.
66

77
---
88

@@ -72,12 +72,16 @@ The following custom services are implemented in InfiniTime:
7272
* [Navigation Service](NavigationService.md) : 00010000-78fc-48fe-8e23-433b3a1942d0
7373

7474

75-
- Since InfiniTime 0.13
76-
* Call characteristic (extension to the Alert Notification Service): 00020001-78fc-48fe-8e23-433b3a1942d0
77-
78-
79-
- Since InfiniTime 1.7:
80-
* [Motion Service](MotionService.md) : 00030000-78fc-48fe-8e23-433b3a1942d0
75+
- Since InfiniTime 0.13
76+
* Call characteristic (extension to the Alert Notification Service): 00020001-78fc-48fe-8e23-433b3a1942d0
77+
78+
79+
- Since InfiniTime 1.7:
80+
* [Motion Service](MotionService.md): 00030000-78fc-48fe-8e23-433b3a1942d0
81+
82+
83+
- Since InfiniTime 1.8:
84+
* [Weather Service](/src/components/ble/weather/WeatherService.h): 00040000-78fc-48fe-8e23-433b3a1942d0
8185

8286
---
8387

src/CMakeLists.txt

Lines changed: 52 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ set(NIMBLE_SRC
154154
libs/mynewt-nimble/nimble/controller/src/ble_ll_supp_cmd.c
155155
libs/mynewt-nimble/nimble/controller/src/ble_ll_hci_ev.c
156156
libs/mynewt-nimble/nimble/controller/src/ble_ll_rfmgmt.c
157+
libs/mynewt-nimble/nimble/controller/src/ble_ll_resolv.c
157158
libs/mynewt-nimble/porting/nimble/src/os_cputime.c
158159
libs/mynewt-nimble/porting/nimble/src/os_cputime_pwr2.c
159160
libs/mynewt-nimble/porting/nimble/src/os_mbuf.c
@@ -357,6 +358,14 @@ set(LVGL_SRC
357358
libs/lvgl/src/lv_widgets/lv_win.c
358359
)
359360

361+
set(QCBOR_SRC
362+
libs/QCBOR/src/ieee754.c
363+
libs/QCBOR/src/qcbor_decode.c
364+
libs/QCBOR/src/qcbor_encode.c
365+
libs/QCBOR/src/qcbor_err_to_str.c
366+
libs/QCBOR/src/UsefulBuf.c
367+
)
368+
360369
list(APPEND IMAGE_FILES
361370
displayapp/icons/battery/os_battery_error.c
362371
displayapp/icons/battery/os_battery_100.c
@@ -407,6 +416,7 @@ list(APPEND SOURCE_FILES
407416
displayapp/screens/Label.cpp
408417
displayapp/screens/FirmwareUpdate.cpp
409418
displayapp/screens/Music.cpp
419+
displayapp/screens/Weather.cpp
410420
displayapp/screens/Navigation.cpp
411421
displayapp/screens/Metronome.cpp
412422
displayapp/screens/Motion.cpp
@@ -421,8 +431,10 @@ list(APPEND SOURCE_FILES
421431
displayapp/screens/BatteryInfo.cpp
422432
displayapp/screens/Steps.cpp
423433
displayapp/screens/Timer.cpp
434+
displayapp/screens/PassKey.cpp
424435
displayapp/screens/Error.cpp
425436
displayapp/screens/Alarm.cpp
437+
displayapp/screens/Styles.cpp
426438
displayapp/Colors.cpp
427439

428440
## Settings
@@ -470,6 +482,7 @@ list(APPEND SOURCE_FILES
470482
components/ble/CurrentTimeService.cpp
471483
components/ble/AlertNotificationService.cpp
472484
components/ble/MusicService.cpp
485+
components/ble/weather/WeatherService.cpp
473486
components/ble/NavigationService.cpp
474487
displayapp/fonts/lv_font_navi_80.c
475488
components/ble/BatteryInformationService.cpp
@@ -541,6 +554,7 @@ list(APPEND RECOVERY_SOURCE_FILES
541554
components/ble/CurrentTimeService.cpp
542555
components/ble/AlertNotificationService.cpp
543556
components/ble/MusicService.cpp
557+
components/ble/weather/WeatherService.cpp
544558
components/ble/BatteryInformationService.cpp
545559
components/ble/ImmediateAlertService.cpp
546560
components/ble/ServiceDiscovery.cpp
@@ -644,6 +658,9 @@ set(INCLUDE_FILES
644658
components/datetime/DateTimeController.h
645659
components/brightness/BrightnessController.h
646660
components/motion/MotionController.h
661+
components/firmwarevalidator/FirmwareValidator.h
662+
components/ble/BleController.h
663+
components/ble/NotificationManager.h
647664
components/ble/NimbleController.h
648665
components/ble/DeviceInformationService.h
649666
components/ble/CurrentTimeClient.h
@@ -656,6 +673,7 @@ set(INCLUDE_FILES
656673
components/ble/BleClient.h
657674
components/ble/HeartRateService.h
658675
components/ble/MotionService.h
676+
components/ble/weather/WeatherService.h
659677
components/settings/Settings.h
660678
components/timer/TimerController.h
661679
components/alarm/AlarmController.h
@@ -781,7 +799,7 @@ link_directories(
781799
)
782800

783801

784-
set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -Wall -Wno-unknown-pragmas -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type -fstack-usage -fno-exceptions -fno-non-call-exceptions)
802+
set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -Wall -Wextra -Warray-bounds=2 -Wformat=2 -Wformat-overflow=2 -Wformat-truncation=2 -Wformat-nonliteral -ftree-vrp -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unknown-pragmas -Wno-expansion-to-defined -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type -fstack-usage -fno-exceptions -fno-non-call-exceptions)
785803
add_definitions(-DCONFIG_GPIO_AS_PINRESET)
786804
add_definitions(-DNIMBLE_CFG_CONTROLLER)
787805
add_definitions(-DOS_CPUTIME_FREQ)
@@ -803,10 +821,10 @@ add_library(nrf-sdk STATIC ${SDK_SOURCE_FILES})
803821
target_include_directories(nrf-sdk SYSTEM PUBLIC . ../)
804822
target_include_directories(nrf-sdk SYSTEM PUBLIC ${INCLUDES_FROM_LIBS})
805823
target_compile_options(nrf-sdk PRIVATE
806-
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -g3>
807-
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Os>
808-
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -fno-rtti>
809-
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Os -fno-rtti>
824+
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Wno-expansion-to-defined -Og -g3>
825+
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Wno-expansion-to-defined -O3>
826+
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Wno-expansion-to-defined -Og -fno-rtti>
827+
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Wno-expansion-to-defined -O3 -fno-rtti>
810828
$<$<COMPILE_LANGUAGE:ASM>: -MP -MD -x assembler-with-cpp>
811829
)
812830

@@ -834,6 +852,25 @@ target_compile_options(lvgl PRIVATE
834852
$<$<COMPILE_LANGUAGE:ASM>: -MP -MD -x assembler-with-cpp>
835853
)
836854

855+
# QCBOR
856+
add_library(QCBOR STATIC ${QCBOR_SRC})
857+
target_include_directories(QCBOR SYSTEM PUBLIC libs/QCBOR/inc)
858+
# This is required with the current configuration
859+
target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_FLOAT_HW_USE)
860+
# These are for space-saving
861+
target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_PREFERRED_FLOAT)
862+
target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_EXP_AND_MANTISSA)
863+
target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_STRINGS)
864+
#target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_INDEFINITE_LENGTH_ARRAYS)
865+
target_compile_definitions(QCBOR PUBLIC QCBOR_DISABLE_UNCOMMON_TAGS)
866+
target_compile_definitions(QCBOR PUBLIC USEFULBUF_CONFIG_LITTLE_ENDIAN)
867+
set_target_properties(QCBOR PROPERTIES LINKER_LANGUAGE C)
868+
target_compile_options(QCBOR PRIVATE
869+
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -O0 -g3>
870+
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -O3>
871+
$<$<COMPILE_LANGUAGE:ASM>: -MP -MD -x assembler-with-cpp>
872+
)
873+
837874
# LITTLEFS_SRC
838875
add_library(littlefs STATIC ${LITTLEFS_SRC})
839876
target_include_directories(littlefs SYSTEM PUBLIC . ../)
@@ -852,12 +889,12 @@ set(EXECUTABLE_FILE_NAME ${EXECUTABLE_NAME}-${pinetime_VERSION_MAJOR}.${pinetime
852889
set(NRF5_LINKER_SCRIPT "${CMAKE_SOURCE_DIR}/gcc_nrf52.ld")
853890
add_executable(${EXECUTABLE_NAME} ${SOURCE_FILES})
854891
set_target_properties(${EXECUTABLE_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_FILE_NAME})
855-
target_link_libraries(${EXECUTABLE_NAME} nimble nrf-sdk lvgl littlefs)
892+
target_link_libraries(${EXECUTABLE_NAME} nimble nrf-sdk lvgl littlefs QCBOR)
856893
target_compile_options(${EXECUTABLE_NAME} PUBLIC
857-
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -g3>
858-
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Os>
859-
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -g3 -fno-rtti>
860-
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Os -fno-rtti>
894+
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Og -g3>
895+
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Os>
896+
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Og -g3 -fno-rtti>
897+
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>: ${COMMON_FLAGS} -Wextra -Wformat -Wno-missing-field-initializers -Wno-unused-parameter -Os -fno-rtti>
861898
$<$<COMPILE_LANGUAGE:ASM>: -MP -MD -x assembler-with-cpp>
862899
)
863900

@@ -881,7 +918,7 @@ set(IMAGE_MCUBOOT_FILE_NAME ${EXECUTABLE_MCUBOOT_NAME}-image-${pinetime_VERSION_
881918
set(DFU_MCUBOOT_FILE_NAME ${EXECUTABLE_MCUBOOT_NAME}-dfu-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.zip)
882919
set(NRF5_LINKER_SCRIPT_MCUBOOT "${CMAKE_SOURCE_DIR}/gcc_nrf52-mcuboot.ld")
883920
add_executable(${EXECUTABLE_MCUBOOT_NAME} ${SOURCE_FILES})
884-
target_link_libraries(${EXECUTABLE_MCUBOOT_NAME} nimble nrf-sdk lvgl littlefs)
921+
target_link_libraries(${EXECUTABLE_MCUBOOT_NAME} nimble nrf-sdk lvgl littlefs QCBOR)
885922
set_target_properties(${EXECUTABLE_MCUBOOT_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_MCUBOOT_FILE_NAME})
886923
target_compile_options(${EXECUTABLE_MCUBOOT_NAME} PUBLIC
887924
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -g3>
@@ -917,7 +954,7 @@ endif()
917954
set(EXECUTABLE_RECOVERY_NAME "pinetime-recovery")
918955
set(EXECUTABLE_RECOVERY_FILE_NAME ${EXECUTABLE_RECOVERY_NAME}-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH})
919956
add_executable(${EXECUTABLE_RECOVERY_NAME} ${RECOVERY_SOURCE_FILES})
920-
target_link_libraries(${EXECUTABLE_RECOVERY_NAME} nimble nrf-sdk littlefs)
957+
target_link_libraries(${EXECUTABLE_RECOVERY_NAME} nimble nrf-sdk littlefs QCBOR)
921958
set_target_properties(${EXECUTABLE_RECOVERY_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERY_FILE_NAME})
922959
target_compile_definitions(${EXECUTABLE_RECOVERY_NAME} PUBLIC "PINETIME_IS_RECOVERY")
923960
target_compile_options(${EXECUTABLE_RECOVERY_NAME} PUBLIC
@@ -947,7 +984,7 @@ set(EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}-${
947984
set(IMAGE_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}-image-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.bin)
948985
set(DFU_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}-dfu-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.zip)
949986
add_executable(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} ${RECOVERY_SOURCE_FILES})
950-
target_link_libraries(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} nimble nrf-sdk littlefs)
987+
target_link_libraries(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} nimble nrf-sdk littlefs QCBOR)
951988
set_target_properties(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME})
952989
target_compile_definitions(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PUBLIC "PINETIME_IS_RECOVERY")
953990
target_compile_options(${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PUBLIC
@@ -985,7 +1022,7 @@ endif()
9851022
set(EXECUTABLE_RECOVERYLOADER_NAME "pinetime-recovery-loader")
9861023
set(EXECUTABLE_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_RECOVERYLOADER_NAME}-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH})
9871024
add_executable(${EXECUTABLE_RECOVERYLOADER_NAME} ${RECOVERYLOADER_SOURCE_FILES})
988-
target_link_libraries(${EXECUTABLE_RECOVERYLOADER_NAME} nrf-sdk)
1025+
target_link_libraries(${EXECUTABLE_RECOVERYLOADER_NAME} nrf-sdk QCBOR)
9891026
set_target_properties(${EXECUTABLE_RECOVERYLOADER_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERYLOADER_FILE_NAME})
9901027
target_compile_options(${EXECUTABLE_RECOVERYLOADER_NAME} PUBLIC
9911028
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -g3>
@@ -1018,7 +1055,7 @@ set(EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOA
10181055
set(IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME}-image-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.bin)
10191056
set(DFU_MCUBOOT_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME}-dfu-${pinetime_VERSION_MAJOR}.${pinetime_VERSION_MINOR}.${pinetime_VERSION_PATCH}.zip)
10201057
add_executable(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} ${RECOVERYLOADER_SOURCE_FILES})
1021-
target_link_libraries(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} nrf-sdk)
1058+
target_link_libraries(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} nrf-sdk QCBOR)
10221059
set_target_properties(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME})
10231060
target_compile_options(${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PUBLIC
10241061
$<$<AND:$<COMPILE_LANGUAGE:C>,$<CONFIG:DEBUG>>: ${COMMON_FLAGS} -Og -g3>

src/buttonhandler/ButtonHandler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ void ButtonTimerCallback(TimerHandle_t xTimer) {
88
}
99

1010
void ButtonHandler::Init(Pinetime::System::SystemTask* systemTask) {
11-
buttonTimer = xTimerCreate("buttonTimer", 0, pdFALSE, systemTask, ButtonTimerCallback);
11+
buttonTimer = xTimerCreate("buttonTimer", pdMS_TO_TICKS(200), pdFALSE, systemTask, ButtonTimerCallback);
1212
}
1313

1414
ButtonActions ButtonHandler::HandleEvent(Events event) {

src/components/alarm/AlarmController.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#pragma once
1919

2020
#include <cstdint>
21-
#include "app_timer.h"
2221
#include "components/datetime/DateTimeController.h"
2322

2423
namespace Pinetime {

src/components/battery/BatteryController.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <hal/nrf_gpio.h>
44
#include <nrfx_saadc.h>
55
#include <algorithm>
6+
#include <cmath>
67

78
using namespace Pinetime::Controllers;
89

src/components/ble/AlertNotificationService.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,9 @@ int AlertNotificationService::OnAlert(uint16_t conn_handle, uint16_t attr_handle
5353

5454
// Ignore notifications with empty message
5555
const auto packetLen = OS_MBUF_PKTLEN(ctxt->om);
56-
if (packetLen <= headerSize)
56+
if (packetLen <= headerSize) {
5757
return 0;
58+
}
5859

5960
size_t bufferSize = std::min(packetLen + stringTerminatorSize, maxBufferSize);
6061
auto messageSize = std::min(maxMessageSize, (bufferSize - headerSize));

src/components/ble/BatteryInformationService.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ BatteryInformationService::BatteryInformationService(Controllers::Battery& batte
1717
characteristicDefinition {{.uuid = &batteryLevelUuid.u,
1818
.access_cb = BatteryInformationServiceCallback,
1919
.arg = this,
20-
.flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_NOTIFY,
20+
.flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_READ_AUTHEN | BLE_GATT_CHR_F_NOTIFY,
2121
.val_handle = &batteryLevelHandle},
2222
{0}},
2323
serviceDefinition {

src/components/ble/BleController.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Pinetime {
99
public:
1010
using BleAddress = std::array<uint8_t, 6>;
1111
enum class FirmwareUpdateStates { Idle, Running, Validated, Error };
12-
enum class AddressTypes { Public, Random };
12+
enum class AddressTypes { Public, Random, RPA_Public, RPA_Random };
1313

1414
Ble() = default;
1515
bool IsConnected() const {
@@ -48,6 +48,12 @@ namespace Pinetime {
4848
void AddressType(AddressTypes t) {
4949
addressType = t;
5050
}
51+
void SetPairingKey(uint32_t k) {
52+
pairingKey = k;
53+
}
54+
uint32_t GetPairingKey() const {
55+
return pairingKey;
56+
}
5157

5258
private:
5359
bool isConnected = false;
@@ -57,6 +63,7 @@ namespace Pinetime {
5763
FirmwareUpdateStates firmwareUpdateState = FirmwareUpdateStates::Idle;
5864
BleAddress address;
5965
AddressTypes addressType;
66+
uint32_t pairingKey = 0;
6067
};
6168
}
62-
}
69+
}

0 commit comments

Comments
 (0)