@@ -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+
360369list (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)
785803add_definitions (-DCONFIG_GPIO_AS_PINRESET )
786804add_definitions (-DNIMBLE_CFG_CONTROLLER )
787805add_definitions (-DOS_CPUTIME_FREQ )
@@ -803,10 +821,10 @@ add_library(nrf-sdk STATIC ${SDK_SOURCE_FILES})
803821target_include_directories (nrf-sdk SYSTEM PUBLIC . ../ )
804822target_include_directories (nrf-sdk SYSTEM PUBLIC ${INCLUDES_FROM_LIBS} )
805823target_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
838875add_library (littlefs STATIC ${LITTLEFS_SRC} )
839876target_include_directories (littlefs SYSTEM PUBLIC . ../ )
@@ -852,12 +889,12 @@ set(EXECUTABLE_FILE_NAME ${EXECUTABLE_NAME}-${pinetime_VERSION_MAJOR}.${pinetime
852889set (NRF5_LINKER_SCRIPT "${CMAKE_SOURCE_DIR} /gcc_nrf52.ld" )
853890add_executable (${EXECUTABLE_NAME} ${SOURCE_FILES} )
854891set_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 )
856893target_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_
881918set (DFU_MCUBOOT_FILE_NAME ${EXECUTABLE_MCUBOOT_NAME} -dfu-${pinetime_VERSION_MAJOR} .${pinetime_VERSION_MINOR} .${pinetime_VERSION_PATCH} .zip)
882919set (NRF5_LINKER_SCRIPT_MCUBOOT "${CMAKE_SOURCE_DIR} /gcc_nrf52-mcuboot.ld" )
883920add_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 )
885922set_target_properties (${EXECUTABLE_MCUBOOT_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_MCUBOOT_FILE_NAME} )
886923target_compile_options (${EXECUTABLE_MCUBOOT_NAME} PUBLIC
887924 $<$<AND :$<COMPILE_LANGUAGE :C >,$<CONFIG :DEBUG >>: ${COMMON_FLAGS} -Og -g3 >
@@ -917,7 +954,7 @@ endif()
917954set (EXECUTABLE_RECOVERY_NAME "pinetime-recovery" )
918955set (EXECUTABLE_RECOVERY_FILE_NAME ${EXECUTABLE_RECOVERY_NAME} -${pinetime_VERSION_MAJOR} .${pinetime_VERSION_MINOR} .${pinetime_VERSION_PATCH} )
919956add_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 )
921958set_target_properties (${EXECUTABLE_RECOVERY_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERY_FILE_NAME} )
922959target_compile_definitions (${EXECUTABLE_RECOVERY_NAME} PUBLIC "PINETIME_IS_RECOVERY" )
923960target_compile_options (${EXECUTABLE_RECOVERY_NAME} PUBLIC
@@ -947,7 +984,7 @@ set(EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}-${
947984set (IMAGE_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME} -image-${pinetime_VERSION_MAJOR} .${pinetime_VERSION_MINOR} .${pinetime_VERSION_PATCH} .bin)
948985set (DFU_RECOVERY_MCUBOOT_FILE_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_NAME} -dfu-${pinetime_VERSION_MAJOR} .${pinetime_VERSION_MINOR} .${pinetime_VERSION_PATCH} .zip)
949986add_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 )
951988set_target_properties (${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME} )
952989target_compile_definitions (${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PUBLIC "PINETIME_IS_RECOVERY" )
953990target_compile_options (${EXECUTABLE_RECOVERY_MCUBOOT_NAME} PUBLIC
@@ -985,7 +1022,7 @@ endif()
9851022set (EXECUTABLE_RECOVERYLOADER_NAME "pinetime-recovery-loader" )
9861023set (EXECUTABLE_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_RECOVERYLOADER_NAME} -${pinetime_VERSION_MAJOR} .${pinetime_VERSION_MINOR} .${pinetime_VERSION_PATCH} )
9871024add_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 )
9891026set_target_properties (${EXECUTABLE_RECOVERYLOADER_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_RECOVERYLOADER_FILE_NAME} )
9901027target_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
10181055set (IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} -image-${pinetime_VERSION_MAJOR} .${pinetime_VERSION_MINOR} .${pinetime_VERSION_PATCH} .bin)
10191056set (DFU_MCUBOOT_RECOVERYLOADER_FILE_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} -dfu-${pinetime_VERSION_MAJOR} .${pinetime_VERSION_MINOR} .${pinetime_VERSION_PATCH} .zip)
10201057add_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 )
10221059set_target_properties (${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PROPERTIES OUTPUT_NAME ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME} )
10231060target_compile_options (${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME} PUBLIC
10241061 $<$<AND :$<COMPILE_LANGUAGE :C >,$<CONFIG :DEBUG >>: ${COMMON_FLAGS} -Og -g3 >
0 commit comments