feat: implement cel_crsf_param_parse

Parse PARAM_ENTRY payload into cel_crsf_param struct. Handles
TEXT_SELECT with options string and UINT8/INT8 with min/max/default/
value fields. Respects hidden flag (bit 7 of type byte). Truncates
name and options to buffer limits.
This commit is contained in:
2026-06-14 21:50:12 +02:00
parent eaaaf710a2
commit 5d18258330
3 changed files with 245 additions and 18 deletions
+8
View File
@@ -55,6 +55,14 @@ target_compile_features(test_crsf_telemetry PRIVATE c_std_23)
add_test(NAME test_crsf_telemetry COMMAND test_crsf_telemetry)
list(APPEND TEST_TARGETS test_crsf_telemetry)
# CRSF param tests — pure functions (parse), no mock needed
add_executable(test_crsf_param test_crsf_param.c)
target_include_directories(test_crsf_param PRIVATE "${CMAKE_SOURCE_DIR}")
target_link_libraries(test_crsf_param PRIVATE celrs_crsf Unity::Unity)
target_compile_features(test_crsf_param PRIVATE c_std_23)
add_test(NAME test_crsf_param COMMAND test_crsf_param)
list(APPEND TEST_TARGETS test_crsf_param)
# Serial tests — mocks the platform backend (serial_internal.h)
add_executable(test_serial test_serial.c)
target_include_directories(test_serial PRIVATE "${CMAKE_SOURCE_DIR}")