Skip to content

Commit 72feae2

Browse files
committed
cmake: Make max retransmit configurable with CMake
The CMake variable `WAKAAMA_COAP_DEFAULT_MAX_RETRANSMIT` can be used to configure the max number of retransmissions.
1 parent fbc37cb commit 72feae2

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ The following data formats are configurable for Wakaama:
8484
- WAKAAMA_COAP_RAW_BLOCK1_REQUESTS For low memory client devices where it is not possible to keep a large post or put request in memory to be parsed (typically a firmware write).
8585
This option enable each unprocessed block 1 payload to be passed to the application, typically to be stored to a flash memory.
8686
- WAKAAMA_COAP_DEFAULT_BLOCK_SIZE CoAP block size used by CoAP layer when performing block-wise transfers. Possible values: 16, 32, 64, 128, 256, 512 and 1024. Defaults to 1024.
87+
- WAKAAMA_COAP_DEFAULT_MAX_RETRANSMIT The maximum number of retransmissions used for confirmable messages.
8788

8889

8990
### Logging

wakaama.cmake

+8-17
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ set_property(
4444
1024
4545
)
4646

47+
# The maximum number of retransmissions used for confirmable messages.
48+
set(WAKAAMA_COAP_DEFAULT_MAX_RETRANSMIT
49+
4
50+
CACHE STRING "Default CoAP max retransmissions"
51+
)
52+
4753
# Logging
4854
set(WAKAAMA_LOG_LEVEL
4955
LOG_DISABLED
@@ -144,6 +150,8 @@ function(set_coap_defines)
144150
endif()
145151

146152
target_compile_definitions(${target} PUBLIC LWM2M_COAP_DEFAULT_BLOCK_SIZE=${WAKAAMA_COAP_DEFAULT_BLOCK_SIZE})
153+
154+
target_compile_definitions(${target} PUBLIC LWM2M_COAP_DEFAULT_MAX_RETRANSMIT=${WAKAAMA_COAP_DEFAULT_MAX_RETRANSMIT})
147155
endfunction()
148156

149157
# Set the defines for logging configuration
@@ -239,17 +247,6 @@ function(target_sources_wakaama target)
239247
message(STATUS "${target}: Default CoAP block size not set, using ${LWM2M_COAP_DEFAULT_BLOCK_SIZE}")
240248
endif()
241249

242-
# LWM2M_COAP_DEFAULT_MAX_RETRANSMIT is needed by source files -> always set it
243-
if(NOT CURRENT_TARGET_COMPILE_DEFINITIONS MATCHES "LWM2M_COAP_DEFAULT_MAX_RETRANSMIT=")
244-
target_compile_definitions(
245-
${target} PRIVATE "LWM2M_COAP_DEFAULT_MAX_RETRANSMIT=${LWM2M_COAP_DEFAULT_MAX_RETRANSMIT}"
246-
)
247-
message(
248-
STATUS
249-
"${target}: Default CoAP max retransmission count not set, using ${LWM2M_COAP_DEFAULT_MAX_RETRANSMIT}"
250-
)
251-
endif()
252-
253250
# Detect invalid configuration already during CMake run
254251
if(NOT CURRENT_TARGET_COMPILE_DEFINITIONS MATCHES "LWM2M_SERVER_MODE|LWM2M_BOOTSTRAP_SERVER_MODE|LWM2M_CLIENT_MODE")
255252
message(FATAL_ERROR "${target}: At least one mode (client, server, bootstrap server) must be enabled!")
@@ -350,9 +347,3 @@ set(LWM2M_COAP_DEFAULT_BLOCK_SIZE
350347
1024
351348
CACHE STRING "Default CoAP block size; Used if not set on a per-target basis"
352349
)
353-
354-
# The maximum number of retransmissions used for confirmable messages.
355-
set(LWM2M_COAP_DEFAULT_MAX_RETRANSMIT
356-
4
357-
CACHE STRING "Default CoAP max retransmissions; Used if not set on a per-target basis"
358-
)

0 commit comments

Comments
 (0)