Parse a /GetDmx.csv body into 16 channels.
InvalidPayloadError if the payload is empty or doesn't contain exactly 16 comma-separated channel values.
Return the channel at the given zero-based index. Throws RangeError outside [0, 15].
Read the current value at index.
Update channel index to value, rounding to the nearest integer and
clamping to [0, 255]. DMX512 channels are 8-bit integers; the controller
expects integer values in the form payload, so a fractional input
(12.5) is rounded (13) rather than stored verbatim.
Form payload accepted by /usrcfg.cgi for a DMX512 update.
Parsed and mutable representation of all 16 DMX512 channels.