From 37271d334b9ec4f05bd61391997236d7a0ffdf16 Mon Sep 17 00:00:00 2001 From: Peter van der Perk Date: Mon, 8 Mar 2021 12:01:19 +0100 Subject: [PATCH] [UAVCANv1] Initial uavcanconfig menuconfig example --- src/drivers/uavcan_v1/CMakeLists.txt | 35 ++++++++++++++++++++++++++++ src/drivers/uavcan_v1/Kconfig | 28 ++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 src/drivers/uavcan_v1/Kconfig diff --git a/src/drivers/uavcan_v1/CMakeLists.txt b/src/drivers/uavcan_v1/CMakeLists.txt index 12ba82d19a..26bccdab3b 100644 --- a/src/drivers/uavcan_v1/CMakeLists.txt +++ b/src/drivers/uavcan_v1/CMakeLists.txt @@ -31,6 +31,8 @@ # ############################################################################ +set(UAVCAN_DEFCONFIG ${PX4_BOARD_DIR}/uavcanconfig CACHE FILEPATH "path to defconfig" FORCE) + set(LIBCANARD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libcanard) set(DSDL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/public_regulated_data_types) set(LEGACY_DSDL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/legacy_data_types) @@ -98,3 +100,36 @@ px4_add_module( git_legacy_data_types version ) + + +# Use uavcanconfig file for compile definitions +file(STRINGS ${UAVCAN_DEFCONFIG} lines) + +FOREACH(i IN LISTS lines) + if(i MATCHES "#") + else() + string(REPLACE "\n" "" i ${i}) + SET(uavcan_config "${uavcan_config}${i};") + endif() +ENDFOREACH() + +target_compile_definitions(drivers__uavcan_v1 PRIVATE ${uavcan_config}) + +# UAVCANv1 menuconfig +add_custom_target(menuconfig_uavcan + COMMAND kconfig-mconf Kconfig + #DEPENDS nuttx_config_target ${CMAKE_CURRENT_SOURCE_DIR}/.config + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + USES_TERMINAL + ) + +# UAVCANv1 menuconfig + savedefconfig back to PX4 +add_custom_target(uavcanconfig + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND ${CMAKE_COMMAND} -E copy ${UAVCAN_DEFCONFIG} ${CMAKE_CURRENT_SOURCE_DIR}/.config + COMMAND kconfig-mconf Kconfig + COMMENT "Running UAVCAN make menuconfig for ${UAVCAN_DEFCONFIG}" + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/.config ${UAVCAN_DEFCONFIG} + COMMENT "Saved config to ${UAVCAN_DEFCONFIG}" + USES_TERMINAL +) diff --git a/src/drivers/uavcan_v1/Kconfig b/src/drivers/uavcan_v1/Kconfig new file mode 100644 index 0000000000..563702a1a0 --- /dev/null +++ b/src/drivers/uavcan_v1/Kconfig @@ -0,0 +1,28 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +choice + prompt "UAVCANv1 Mode" + default none + +config UAVCAN_V1_FMU + bool "Server (FMU)" + +config UAVCAN_V1_CLIENT + bool "Client (Peripheral)" + +endchoice + +config UAVCAN_V1_GETINFO_RESPONDER + bool "GetInfo1.0 responder" + default n + +config UAVCAN_V1_EXECUTECOMMAND_RESPONDER + bool "ExecuteCommand1.0 responder" + default n + +config UAVCAN_V1_GNSS_PUBLISHER + bool "GNSS Publisher" + default n