This commit introduces the VND7050AJ driver as a new submodule and integrates it into the project.
Key changes include:
- Added as a git submodule.
- Enhanced the gateway application () with LittleFS and the settings subsystem.
- Implemented new shell commands (, , ) for managing custom settings.
- Added functionality to compact the settings file.
- Updated to include new library dependencies and log return code.
- Adjusted include paths for in relevant files.
Signed-off-by: Eduard Iten <eduard@iten.pro>
This commit introduces a major refactoring of the project structure to align
with Zephyr's recommended multi-application and library organization.
Key changes include:
- Relocation of custom modules from 'software/modules/' to 'software/lib/'.
- Introduction of a central 'software/CMakeLists.txt' to manage application
and library subdirectories.
- Creation of new Kconfig files for 'software/' and 'software/apps/slave_node/'
to define project-wide and application-specific configurations.
- Removal of the 'gateway' and 'stm32g431_tests' applications.
- Removal of 'shell_modbus.c' and 'shell_system.c' from 'slave_node' application's
direct source files, indicating a shift towards library-based shell commands.
- Updates to 'software/apps/slave_node/CMakeLists.txt', 'prj.conf', and
'boards/bluepill_f103rb.conf' to reflect the new structure and dependencies.
- Integrate the Zephyr Settings subsystem to persist Modbus parameters.
- Use NVS (Non-Volatile Storage) as the backend with a dedicated flash partition.
- Modbus baudrate and slave ID are now loaded at startup.
- Changes made via the shell are saved to flash and survive a reboot.
- Add a 'reset' command to the shell for easier testing.
- Fix all compiler and devicetree warnings for a clean build.
- Implement a new 'modbus' command in the shell.
- Add sub-commands 'set_baud', 'set_id', and 'show'.
- Add validation for baud rate and slave ID inputs.
- The new parameters are applied to the Modbus server at runtime, allowing for live reconfiguration of the communication settings.
- The shell backend is set to RTT.
- Remove redundant DTS_ROOT from CMakeLists.txt as it's inferred from BOARD_ROOT.
- Clear the project configuration (prj.conf) to start with a minimal baseline.
Remove the top-level and configure each application to directly include the directory as a module or root. This simplifies the build process by making each application more self-contained while still allowing access to shared boards and libraries.
This commit captures a working multi-app build where the board definition is located in the 'software' directory and explicitly included by the slave_node application. This serves as a stable baseline.
- Reorganize the software directory to support multiple Zephyr applications (gateway, slave_node).
- Create a clear separation between applications and shared libraries.
- Add placeholder files for gateway and slave_node applications.