From 711341f362737f37d2676ee40aeea85aeaaec426 Mon Sep 17 00:00:00 2001 From: Eduard Iten Date: Wed, 2 Jul 2025 20:47:16 +0200 Subject: [PATCH] Refactor slave_node application to use Zephyr modules --- software/CMakeLists.txt | 6 ++++++ software/apps/slave_node/CMakeLists.txt | 16 ++++++---------- software/apps/slave_node/prj.conf | 1 + software/apps/slave_node/src/main.c | 4 ++-- software/apps/slave_node/src/shell_modbus.c | 4 ++-- software/modules/modbus_server/CMakeLists.txt | 7 +++++++ software/modules/modbus_server/Kconfig | 5 +++++ .../modbus_server/include}/modbus_server.h | 0 .../modbus_server/src}/modbus_server.c | 0 software/modules/valve/CMakeLists.txt | 7 +++++++ software/modules/valve/Kconfig | 5 +++++ .../{lib/valve => modules/valve/include}/valve.h | 0 .../{lib/valve => modules/valve/src}/valve.c | 0 13 files changed, 41 insertions(+), 14 deletions(-) create mode 100644 software/CMakeLists.txt create mode 100644 software/modules/modbus_server/CMakeLists.txt create mode 100644 software/modules/modbus_server/Kconfig rename software/{lib/modbus_server => modules/modbus_server/include}/modbus_server.h (100%) rename software/{lib/modbus_server => modules/modbus_server/src}/modbus_server.c (100%) create mode 100644 software/modules/valve/CMakeLists.txt create mode 100644 software/modules/valve/Kconfig rename software/{lib/valve => modules/valve/include}/valve.h (100%) rename software/{lib/valve => modules/valve/src}/valve.c (100%) diff --git a/software/CMakeLists.txt b/software/CMakeLists.txt new file mode 100644 index 0000000..4b4e9d9 --- /dev/null +++ b/software/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.13.1) + +project(software) + +add_subdirectory(modules/modbus_server) +add_subdirectory(modules/valve) diff --git a/software/apps/slave_node/CMakeLists.txt b/software/apps/slave_node/CMakeLists.txt index d8a6db7..d928918 100644 --- a/software/apps/slave_node/CMakeLists.txt +++ b/software/apps/slave_node/CMakeLists.txt @@ -6,14 +6,10 @@ list(APPEND BOARD_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(slave_node) -# Define a variable for the lib directory -set(LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../lib) - -# Add the include directories for the libraries target_include_directories(app PRIVATE - ${LIB_DIR}/valve - ${LIB_DIR}/modbus_server - ${LIB_DIR}/fwu + ${CMAKE_CURRENT_SOURCE_DIR}/../../modules/valve/include + ${CMAKE_CURRENT_SOURCE_DIR}/../../modules/modbus_server/include + ${CMAKE_CURRENT_SOURCE_DIR}/../../lib/fwu ) # Add the source files from the app and the libraries @@ -21,7 +17,7 @@ target_sources(app PRIVATE src/main.c src/shell_modbus.c src/shell_system.c - ${LIB_DIR}/valve/valve.c - ${LIB_DIR}/modbus_server/modbus_server.c - ${LIB_DIR}/fwu/fwu.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../modules/valve/src/valve.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../modules/modbus_server/src/modbus_server.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../lib/fwu/fwu.c ) \ No newline at end of file diff --git a/software/apps/slave_node/prj.conf b/software/apps/slave_node/prj.conf index e141e40..6ad01cb 100644 --- a/software/apps/slave_node/prj.conf +++ b/software/apps/slave_node/prj.conf @@ -28,3 +28,4 @@ CONFIG_UART_INTERRUPT_DRIVEN=y CONFIG_MODBUS=y CONFIG_MODBUS_ROLE_SERVER=y CONFIG_MODBUS_BUFFER_SIZE=256 + diff --git a/software/apps/slave_node/src/main.c b/software/apps/slave_node/src/main.c index 8829b4a..5e2e567 100644 --- a/software/apps/slave_node/src/main.c +++ b/software/apps/slave_node/src/main.c @@ -1,8 +1,8 @@ #include #include #include -#include "modbus_server.h" -#include "valve.h" +#include +#include #include "fwu.h" LOG_MODULE_REGISTER(main, LOG_LEVEL_INF); diff --git a/software/apps/slave_node/src/shell_modbus.c b/software/apps/slave_node/src/shell_modbus.c index 8ef58da..db29788 100644 --- a/software/apps/slave_node/src/shell_modbus.c +++ b/software/apps/slave_node/src/shell_modbus.c @@ -1,7 +1,7 @@ #include #include -#include "modbus_server.h" -#include "valve.h" +#include +#include static int cmd_modbus_set_baud(const struct shell *sh, size_t argc, char **argv) { diff --git a/software/modules/modbus_server/CMakeLists.txt b/software/modules/modbus_server/CMakeLists.txt new file mode 100644 index 0000000..cd18413 --- /dev/null +++ b/software/modules/modbus_server/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.13.1) +include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE) + +project(modbus_server) + +target_sources(app PRIVATE src/modbus_server.c) +target_include_directories(app PUBLIC include) diff --git a/software/modules/modbus_server/Kconfig b/software/modules/modbus_server/Kconfig new file mode 100644 index 0000000..fc41cdf --- /dev/null +++ b/software/modules/modbus_server/Kconfig @@ -0,0 +1,5 @@ +config MODBUS_SERVER + bool "Enable Modbus Server Library" + default y + help + Enable the Modbus Server module. diff --git a/software/lib/modbus_server/modbus_server.h b/software/modules/modbus_server/include/modbus_server.h similarity index 100% rename from software/lib/modbus_server/modbus_server.h rename to software/modules/modbus_server/include/modbus_server.h diff --git a/software/lib/modbus_server/modbus_server.c b/software/modules/modbus_server/src/modbus_server.c similarity index 100% rename from software/lib/modbus_server/modbus_server.c rename to software/modules/modbus_server/src/modbus_server.c diff --git a/software/modules/valve/CMakeLists.txt b/software/modules/valve/CMakeLists.txt new file mode 100644 index 0000000..570eff4 --- /dev/null +++ b/software/modules/valve/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.13.1) +include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE) + +project(valve) + +target_sources(app PRIVATE src/valve.c) +target_include_directories(app PUBLIC include) diff --git a/software/modules/valve/Kconfig b/software/modules/valve/Kconfig new file mode 100644 index 0000000..2922669 --- /dev/null +++ b/software/modules/valve/Kconfig @@ -0,0 +1,5 @@ +config VALVE + bool "Enable Valve Library" + default y + help + Enable the Valve module. diff --git a/software/lib/valve/valve.h b/software/modules/valve/include/valve.h similarity index 100% rename from software/lib/valve/valve.h rename to software/modules/valve/include/valve.h diff --git a/software/lib/valve/valve.c b/software/modules/valve/src/valve.c similarity index 100% rename from software/lib/valve/valve.c rename to software/modules/valve/src/valve.c