V2.5
Release Notes
This release focuses on cleanup, consistency, and a few important correctness fixes across RDM, DMX, Art-Net, console, and network interface code.
Highlights
The most important behavioral fix in this release is a correction to RDM UID construction. The device serial number bytes are now mapped in the correct order when composing the UID, fixing an endianness issue so uid_[2]..uid_[5] now receive serial_number_[3]..serial_number_[0].
Another notable functional improvement is in Art-Net poll replies. DHCP/manual IP status bits are now set when the poll reply is built, instead of being cached at startup. That makes the reported network state accurate at the time the reply is sent.
The rest of the changes are mostly refactors and cleanup aimed at improving readability, consistency, and maintainability.
Added / Improved
RDM
- Fixed UID serial number byte order when composing the RDM UID.
DMX configuration
- Simplified DMX node configuration storage:
- renamed inline static storage from store_dmxnode_ to store_dmxnode
- removed the unused personality field from configuration handling
- removed the related JSON key, parsing, serialization, and dump output
- updated stored struct layout by replacing the personality byte with a 2-byte reserved field
- Adjusted config copy/store/apply code to match the new layout
Art-Net
- Moved DHCP/manual flag handling into SendPollReply()
- Removed redundant DHCP flag updates from:
- ArtNetNode::Start()
- IP programming handling
- Existing DHCP capability reporting remains unchanged
Console / serial / network utilities
- Replaced local TO_HEX / ToHex implementations with common::hex::ToCharUppercase
- Added shared hex utility includes where needed
- Removed redundant macro/function definitions from console and network code
Network interface / hostname handling
- Improved hostname generation and sanitization:
- copy only printable characters
- zero-fill remaining buffer
- avoid embedding non-printable bytes
- Updated default hostname build logic and debug tracing
- Modernized interface code:
- switched from legacy network.h include to core/netif.h
- adjusted includes in JSON/network parameter handling
- treated hwaddr as a pointer for cleaner handling
Cleanup
- Removed an unused include in artnetparams.cpp
- Removed a stale inline comment in the RTL8201F PHY driver
- Updated related JSON/configuration code to reflect DMX parameter changes
- Minor IDE metadata update in language settings
Behavior Changes
- RDM UID generation: serial number byte order has changed to the correct mapping
- Art-Net poll replies: DHCP/manual IP flags now reflect the current interface state at reply time
- DMX JSON/config: the unused personality field is no longer accepted, stored, or exported
Upgrade Notes
If you consume exported JSON or stored config structures directly:
- remove any dependency on the DMX personality key
- expect the DMX config struct layout to have changed slightly
- expect Art-Net DHCP/manual reporting to be dynamic rather than startup-fixed