Skip to main content

ArtDMX Multiverse lib

Project description

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()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ledmx-0.2a0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

ledmx-0.2a0-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file ledmx-0.2a0.tar.gz.

File metadata

  • Download URL: ledmx-0.2a0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for ledmx-0.2a0.tar.gz
Algorithm Hash digest
SHA256 d8c826526d7ed6b2254e46513f23056d89e6d1f1f80b2496678891869c0c1502
MD5 0e92f830f91799a92ad8d7252d26a6f1
BLAKE2b-256 fe51fed577b55abb42553d49f3a40fc6bd50f7ab9e8a1571c2c3df70da8d9d7e

See more details on using hashes here.

File details

Details for the file ledmx-0.2a0-py3-none-any.whl.

File metadata

  • Download URL: ledmx-0.2a0-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for ledmx-0.2a0-py3-none-any.whl
Algorithm Hash digest
SHA256 b73c82f3431989e1033b4036fa87806803e2d6bffd241cf1e12b7bb357c9d1dd
MD5 bdb55ba283c8fdd04af1a53000e8a715
BLAKE2b-256 aeebad180f69f4083ff4cffa584dc0d575cc6fdf0b442f898bb01ba04d2d9c5c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page