Skip to content

Comments

V2.2#10

Merged
vanvught merged 35 commits intomainfrom
development
Jan 3, 2026
Merged

V2.2#10
vanvught merged 35 commits intomainfrom
development

Conversation

@vanvught
Copy link
Owner

@vanvught vanvught commented Jan 3, 2026

Release Notes – Codebase Refactor & Modularization

  • Major project restructuring
    • Reorganized libraries and source files into a clearer, more modular directory structure.
    • Moved, renamed, or removed numerous files to reduce duplication and improve maintainability.
  • Legacy code cleanup
    • Removed deprecated and unused code from lib-lightset, lib-network, lib-properties, and older display components.
    • Eliminated redundant parameter and platform-specific files no longer in use.
  • Centralized common functionality
    • Migrated shared network, properties, and parameter code into a unified common directory.
    • Added new utility headers and source files for reusable functionality.
  • JSON-based configuration support
    • Added new JSON configuration and parameter files.
    • Introduced JSON helper utilities and parameter classes to standardize configuration handling and prepare for future extensibility.
  • DMX, RDM, and pixel refactor
    • Refactored DMX, RDM device handling, and pixel-related libraries for clearer structure and better separation of responsibilities.
    • Unified RDM device information handling.
  • Build system updates
    • Updated Makefiles, build scripts, and compile_commands.json to reflect the new project structure.
    • Improved GD32 platform support and hardware abstraction organization.
  • Network stack reorganization
    • Flattened lib-network source layout by moving files from subdirectories into a simpler structure.
    • Improved clarity of EMAC and Linux network interface implementations (no functional changes).
  • Debug macro consistency
    • Replaced DEBUG_ENTRY / DEBUG_EXIT macros with function-style DEBUG_ENTRY() / DEBUG_EXIT() across the codebase for consistency and readability.
  • Overall impact
    • Significantly improved modularity, readability, and long-term maintainability.
    • Laid groundwork for future feature expansion and more robust JSON-based configuration across modules.

PharosMarcusB and others added 30 commits June 18, 2025 08:08
If EXTRA_C_SOURCE_FILES is not set, then the shell command `dirname`
is passed empty arguments and results in errors.
This commit will only extract from EXTRA_C_SOURCE_FILES if set, and only
attempt to create an extra directory if  EXTRA_BUILD_DIRS is set
Adds VSCode build tasks for both applications
Adds a missing include, and adds namespace to enum, both required when
building a debug image.
Removes a header no longer needed after other refactoring
Small fixes, cleanups, and improvements
DMX can contain idle periods between slots (MTBS), and then resume.
The DMX reception code was treating idle as the end of the frame, this
meant that some older, slightly slower, or even radio based equipment;
transmission sources would likely only be part decoded.

For "dimmer data" (start code 0), this change now treats the break of
the next frame as the end of the previous.
To combat potentially processing the last frame data as it's changing
with the next, a double buffer system is now used.

The magic number slot count flag has also been cleaned up.
Adds a new define GD32_BOARD_ID which is subsequently used as the device
model ID.
Wraps the GD32_BOARD_NAME define in an ifndef, so that it can be defined
by the build environment.
Add Makefile defineable board name and ID
I did a major clean with removing the projects: lib-lightset, lib-ws28xx and lib-ws28xxdmx
Therefore introduced: lib-dmxled, lib-dmxnode, lib-pixel and lib-pixeldmx
Also made a move to Google C++ Coding Style (W.I.P.).
Migrated network, properties, and parameter-related files from lib-network, lib-properties, and other libraries into a new common directory structure. Added new JSON helpers and utility headers, updated Makefiles, and removed obsolete files. This refactor centralizes shared code, improves modularity, and prepares for future extensibility.
In order to automatically track dependencies such as header files,
use the GCC MD/MP flags to generate an included dependency list.

This ensures header dependencies are tracked to avoid unnecessary
rebuilds.
Use GCC MD/MP flags to Track Dependencies
Replaced #pragma once with explicit include guards in all header files for consistency and portability. Renamed and reorganized several headers for better structure. Refactored Makefile logic to remove Extra.mk, add CppOps.mk and Timestamp.mk, and centralize object file generation in lib/Objects.mk. Updated Makefiles to use new includes and improved build directory handling.
Standardized include guards across multiple header files, replacing #pragma once and correcting placement. Moved debug_dump and debug_print_bits implementations from .cpp files to new header files in common/include/firmware/debug/. Updated references to these debug utilities and to pixeldmx/show.h to match new include paths. Changed file permissions for consistency and performed minor code cleanups.
Replaces the output_type_ pointer with a PixelOutputType instance, removing dynamic allocation and manual deletion. Updates all member accesses to use the object directly, simplifying memory management and improving code safety.
Renamed and reorganized several source files for consistency (e.g., bkp.cpp to gd32_bkp.cpp, mac_address.cpp to gd32_mac_address.cpp), removed unused or redundant files (stack_debug.h, gd32_gpio_mode_set.cpp, uart0.cpp), and updated include guards and formatting across headers. Refactored DMA memcpy32 and SPI DMA I2S code for improved naming and clarity. Made minor code style and copyright updates, and fixed function and variable naming -> Google C++ Style Guide
Replaces DEBUG_ENTRY and DEBUG_EXIT macros with function-style DEBUG_ENTRY() and DEBUG_EXIT() for improved consistency and clarity. Updates all usages across the codebase to match the new macro definitions, enhancing code readability and maintainability.
Added missing parentheses to calls of DEBUG_ENTRY and DEBUG_EXIT macros/functions in dmx.cpp to ensure proper execution. This change improves code correctness and consistency.
Renamed and moved debug.h to common/include/firmware/debug/debug_debug.h, updated all references to use the new path, and added a new debug_stack.h header.
Refactored HwClock class to use more descriptive member variable names and updated all usages accordingly. Standardized logic_analyzer API to PascalCase and updated function calls. Fixed snprintf/vsnprintf implementation and buffer handling in printf.cpp and uart0.cpp. Updated section clearing variable names in hal_init.cpp and improved logic_analyzer initialization. Minor copyright and assertion additions.
Moved RTC-related code from hal.h to a new hal_rtc.h header and updated usage throughout the codebase. Refactored logic analyzer GPIO pin definitions for clarity and consistency. Enabled DMA interrupt in memcpy32, fixed minor error message formatting, and updated RDMHandler to use SetAutoIp and the new RTC interface.
Refactored RDM device management by introducing a singleton RdmDevice class, consolidating device info and label handling. Removed the now-redundant RDMDeviceController class and updated RDMDeviceResponder and related code to use the new RdmDevice interface. Updated all references and method signatures to use the new rdm::DeviceInfoData and rdm::DeviceInfo structures, improving code clarity and maintainability.
Replaced legacy network header includes with 'network.h' in displayudf.h and dmxconfigudp.h. Updated function calls to use the new network namespace. Fixed a flag constant in gd32_dma_memcpy32.h and corrected function naming and formatting in gd32_enet.h.
@vanvught vanvught merged commit d65c638 into main Jan 3, 2026
2 checks passed
@vanvught vanvught deleted the development branch January 3, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants