07.05.2024, 12:54
(03.02.2020, 12:51)admin Wrote: An example of Art-Net receiver. It ignores sequence and universe numbers which are not needed for general use. Edit mapping table to select which groups addresses are mapped to DMX channel numbers starting from 1. Output value for each channel is 1 byte (0..255).Regarding this. Is there any way to have the LM separate commands based on Universe? My client want's to use universe 3 on art-net to control KNX lights on/off and value dim. Universe 1 and 2 are used for stagelights.
Code:if not server then mapping = { [1] = '32/1/1', [2] = '32/1/2', [3] = '32/1/3', } server = require('socket').udp() server:settimeout(1) server:setsockname('*', 0x1936) header = 'Art-Net' .. string.char(0, 0, 0x50) values = {} function parse(data) local count, value if data:sub(1, #header) ~= header then return end count = #data - 18 for i = 1, count do value = data:byte(i + 18) if value ~= values[ i ] then values[ i ] = value if mapping[ i ] then grp.update(mapping[ i ], value) end end end end end data = server:receive() if data then parse(data) end