Source code for bibliopixel.drivers.server_driver

from . driver_base import DriverBase
from .. util import exception
from .. util.server_cache import StaticCache
from .. project import construct


[docs]class ServerDriver(DriverBase, StaticCache): def __init__(self, *args, address, pixel_positions=None, **kwds): """ Args: port: the port on which the server is running. pixel_positions: the positions of the LEDs in 3-d space. **kwds: keywords passed to DriverBase. """ super().__init__(*args, **kwds) self.address = address self.server = self.thread = None self.pixel_positions = pixel_positions if pixel_positions: self.set_pixel_positions(pixel_positions)
[docs] def start(self): self.server = self.cache().get_server(self.address) self._on_positions()
[docs] @classmethod def stop_all(cls): cls.CACHE and cls.CACHE.close_all()
[docs] def set_pixel_positions(self, pixel_positions): # This is the "automatic" update from the layout - don't overwrite # any pixel_position set in the constructor. if self.pixel_positions is None: self.pixel_positions = pixel_positions self._on_positions()
def _send_packet(self): pass def _on_positions(self): pass
[docs] def cleanup(self): if self.server: exception.report(self.server.close) self.server = None
def _compute_packet(self): self._render()