Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Multi-controller supervisor library

Модуль для контроля сети H802RA узлов.

Tests

Протокол управления - Art-Net (pdf)

Контроллер - H802RA (pdf)

Лента - WS2813 (pdf)

Как это работает

На основе конфига строится экземпляр класса мультивселенная, объединяющего данные всех вселенных в сети, карту пикселей (словарь по глобальному номеру пикселя и его данным) и методы для модификации данных по номеру пикселя и формирования и отправки ArtDMX пакетов.

При изменении значения байт конкретного пикселя, данные по ссылке меняются в глобальной матрице вселенных. При публикации данных (метод multiverse.pub()), данные вселенных преобразуются в ArtDMX пакеты и отправляются по указанному адресу.

Конфигурация

Конфиг - в формате yaml.

Корневой объект nodes содержит список узлов, каждый узел описан:

  • адресом хоста (куда слать ArtDMX пакет)
  • именем
  • словарём выходов
    • ключ: номер выхода на узле (с нуля)
    • значение: строка с указанием диапазонов номеров пикселей

Пиксели нумеруются глобально с нуля.

Пример:

nodes:
# узел "box"
  - host: 10.0.0.10     # адрес хоста (IP или DNS имя)
    name: box           # имя узла
    outs:               # разметка пикселей по выходам
      0: 0-300          # в 0-м выходе - пиксели с 0-го по 300-й (искл.)
      1: 300-600        # в 1-м выходе - пиксели с 300-го по 600-й

  - host: 10.0.0.11
    name: node-1
    outs:
      0: 901, 1001-1010
      1: 600 - 725
                        # пустые выходы можно пропустить
      3: 725- 800,1015  # диапазоны можно разделять запятой, можно указывать одиночные пиксели 

  - host: 10.0.0.12
    name: j-50
    outs:
      2: 800-850

  - host: 10.0.0.13
    name: tail
    outs:
      1: 1016-1028
      3: 1062
      7: 850-900, 910, 911  # число выходов может быть разным на разныз узлах (тут - 8-портовый узел)

Подробнее - в комментариях к коду.

Тесты

flake8 . --show-source --statistics --max-line-length=127
python -m pytest .

Использование

Библиотека доступна через PyPi

pip install ledmx

конфигурация:

---
nodes:
  - host: 10.0.0.10
    name: box
    outs:
      0: 0-300
      1: 300-600

скрипт:

# импорт класса мультивселенной
from ledmx.multiverse import Multiverse

# импорт функции парсинга конфига
from ledmx.layout import parse_file

if __name__ == '__main__':

# загружаем конфиг
    layout = parse_file('layout.yaml')
    
# формируем мультивселенную
    m_verse = Multiverse(layout)
    
# задаём значения цвета (GBR) для пикселей по их глобальным id
    m_verse[245] = 100, 10, 10
    m_verse[308] = 5, 100, 40
    
# формируем из матрицы пакеты и рассылаем их
    m_verse.pub()

Metadata

Release files for ledmx 0.2a0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ledmx 0.2a0
File Size Uploaded Provenance
ledmx-0.2a0.tar.gz 14.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ledmx 0.2a0
File Interpreter ABI Platform
ledmx-0.2a0-py3-none-any.whl Python 3 none any Details

Total release size: 31.0 kB

Release files / ledmx-0.2a0.tar.gz

Download URL ledmx-0.2a0.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d8c826526d7ed6b2254e46513f23056d89e6d1f1f80b2496678891869c0c1502
BLAKE2b-256 checksum
How to use checksums
fe51fed577b55abb42553d49f3a40fc6bd50f7ab9e8a1571c2c3df70da8d9d7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / ledmx-0.2a0-py3-none-any.whl

Download URL ledmx-0.2a0-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b73c82f3431989e1033b4036fa87806803e2d6bffd241cf1e12b7bb357c9d1dd
BLAKE2b-256 checksum
How to use checksums
aeebad180f69f4083ff4cffa584dc0d575cc6fdf0b442f898bb01ba04d2d9c5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Security for ledmx 0.2a0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page