This release is a pre-release and may not be stable for production use.
Multi-controller supervisor library
Модуль для контроля сети H802RA узлов.
Протокол управления - 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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ledmx-0.2a0.tar.gz | 14.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.