MattIPv4 / MattIPv4/PyDMXControl

Multiple USB to DMX interface support?

Aperta
#56 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
143
Fork
23
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Hi Matt! I‘m currently trying to use this library for a lighting project. I use USB to DMX interface cables with FT232R chip. I used "zadig" to flash the driver of interface to libusb-win32 and successfully dim the light on PC using Python! Thankyou :)

But I found when I plug two dongles in my PC, it seems that it can only control one of them. Luminaires of the other cable won't work.
Does this library support multiple interface to work simultaneously?

I am not a programmer. If I question something wrong please forgive me. And here's my code:


# Create controller
dmx = Controller()

# Load fixture from JSON
dmx.json.load_config('LabLight.json')

# Define a global fade time
fade_time = 5000

# DMA Value Mapping Percentage
def percent_to_dmx_value(percent):
    return int((255 * percent) / 100)

# clear
dmx.clear_all_effects()

for brightness_percent in range(5, 101, 5):
    dmx_value = percent_to_dmx_value(brightness_percent)
    # Dimming
    for f in dmx.get_fixtures_by_name_include('DownLight_1Y'):       # Y for Yellow light, W for White light
        f.dim(dmx_value, fade_time)
    for f in dmx.get_fixtures_by_name_include('DownLight_1W'):
        f.dim(dmx_value, fade_time)
    for f in dmx.get_fixtures_by_name_include('DownLight_2Y'):
        f.dim(dmx_value, fade_time)
    for f in dmx.get_fixtures_by_name_include('DownLight_2W'):
        f.dim(dmx_value, fade_time)
    # rest of downlights

    time.sleep(3)

# Manual Close
dmx.sleep_till_enter()
dmx.close()

And the json:

    {
        "type": "Generic.Dimmer",
        "args": [],
        "name": "DownLight_1Y",
        "start_channel": 1
    },
    {
        "type": "Generic.Dimmer",
        "args": [],
        "name": "DownLight_1W",
        "start_channel": 2
    },
    {
        "type": "Generic.Dimmer",
        "args": [],
        "name": "DownLight_2Y",
        "start_channel": 3
    },
    {
        "type": "Generic.Dimmer",
        "args": [],
        "name": "DownLight_2W",
        "start_channel": 4
    },
    {
        "type": "Generic.Dimmer",
        "args": [],
        "name": "DownLight_3Y",
        "start_channel": 5
    },
    {
        "type": "Generic.Dimmer",
        "args": [],
        "name": "DownLight_3W",
        "start_channel": 6
    }
]```

There're more but it's just for example.

For instance Downlight1-3 connect dongle_1, and 3_6 connect dongle_2. 

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Parti dall’entry point OpenDMXController mostrato nell’esempio e segui come vengono selezionate e gestite le interfacce USB. Riproduci la configurazione con due dongle FT232R/libusb-win32; il lavoro è completato quando le fixtures assegnate a ciascun dongle possono essere controllate simultaneamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
embedded-iot
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.