2.2 KiB
2.2 KiB
pyjecteur
Obtenir un nix-shell avec pyjecteur
(équivalent d'un virtualenv mais avec nix)
Installer nix (curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
) puis executer
nix-shell -A prod
Documentation rapide
pyjecteur.widget.Widget
Contient la logique d'interaction avec le module DMX-USB. Pour l'utiliser, il
suffit d'instancier l'objet puis d'appler la méthode set_dmx
:
def set_dmx(self, addr: int, data: bytes, addr_starting: int = 0) -> None:
"""
Set dmx values that will be sent.
If `auto_commit` is set to false, to provided configuration won't be
sent but memorized until the next call to `Widget.commit()` (or a call
to this function with `auto_commit = True`).
"""
Il existe aussi pyjecteur.dummy.Widget
qui ne requiert pas de device physique.
Pour des interactions à plus haut niveau, continuez de lire
pyjecteur.lights.Universe
Objet représentant un Univers.
class Universe:
"""Represents a DMX universe.
Manages the adress space and responsibles for sending DMX to widget when
`Universe.update_dmx()` is called.
"""
def __init__(self, widget):
"""
Initializes the Universe
widget must be a class providing `widget.set_dmx(data, address)`
"""
def register(self, light: "AbstractLight", address: int) -> None:
"""
Register a light at the specified address
"""
def update_dmx(self, light: "AbstractLight", data: Union[bytearray, bytes]) -> None:
"""
Update the dmx data of the specified light
"""
Interéagir avec un projecteur
Globalement, il faut instancier l'objet représentant le projecteur puis
l'enregister sur son Univers (Universe.register(light, address)
, ATTENTION
les addresses commencent à 0).
Ensuite il y a deux façon de changer les paramètres:
- Changer les attributs (
projo.pan = 100
) - Changer les addresses directement avec la notation index (change la valeur
à l'addresse
addresse_projo + index
)
Déclaration d'un nouveau type de projecteur
S'inspirer du fichier pyjecteur/fixtures.py