package pixel_pusher

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

This is the interface to the Pixel Pusher subsystem.

Pixel Pushers are devices that sit on IP networks that can be sent commands over UDP to control LEDs and other kinds of lighting hardware.

Each Pixel Pusher can have up to eight LED "strips" connected, and each strip can have up to N "pixels".

This module listens for Pixel Pushers to announce themselves, remembers them, and provides an interface for telling a pixel on a strip to turn to a color.

This library depends on the Async library, but it can be linked into non-Async applications. The library uses Async to live and handle background tasks, such as listening for beacons from Pixel Pushers and sending packets.

If you do this, be sure in your main thread you frequently yield the CPU, such as by calling UNIX sleep at least as often as your expected FPS rate. Also see the send_updates_from_non_async_thread function below.

module Color : sig ... end
module Controller_report : sig ... end
module Strip : sig ... end
type non_async_token
val start : unit -> non_async_token Async.Deferred.t
val get_controllers : unit -> Controller_report.t list
val get_strips : unit -> Strip.t list
val get_strips_as_map : unit -> (int * int, Strip.t) Core.Map.Poly.t
val send_updates : unit -> unit Async.Deferred.t
val send_updates_from_non_async_thread : non_async_token -> unit
OCaml

Innovation. Community. Security.