Merged
Conversation
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.
Improve DMX RX
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release Notes – Codebase Refactor & Modularization