Source code for bibliopixel.drivers.artnet

import copy, ctypes, enum
from . server_driver import ServerDriver
from .. util import artnet_message, log, offset_range, server_cache, udp


[docs]class ArtNet(ServerDriver): SERVER_CLASS = udp.Sender def __init__(self, *args, ip_address='', port=artnet_message.UDP_PORT, filter_dupes=True, offset=0, **kwds): """ :param dict channel_map: maps DMX channels to positions in the color_list :param int offset: a DMX channel offset, positive, negative or zero """ super().__init__(*args, address=(ip_address, port), **kwds) self.filter_dupes = filter_dupes self.offset = offset_range.DMXChannel(offset) self.msg = artnet_message.dmx_message() self.last_message = None def _send_packet(self): self._copy_buffer_into_data() msg = bytes(self.msg) if not (self.filter_dupes and msg == self.last_message): self.server.send(msg) self.last_message = msg def _copy_buffer_into_data(self): self.offset.copy_to(self._buf, self.msg.data) def _on_positions(self): pass