Effect Server

Mikä?

Effect Server eli Tehostepalvelin on jatkoa Instansseilla aikaisemmin nähdylle Valopalvelimelle.

Tehostepalvelimen tarkoitus on tarjota Instanssin kävijöille ohjelmointirajapinta partysalin valaistukseen ja mahdollisesti muihin salissa olevien tehosteiden hallintaan. Vuoden 2019 Instanssissa salin valaistuksena on 24 LED-valoa.

Tehostepalvelimen lähdekoodi on saatavilla GitHubissa. Repositoriossa on myös muutamia koodiesimerkkejä.

Valojen asettelu

Valot on numeroitu 0..23 vastapäivään kiertäen, alkaen lavan vasemmalta puolelta.

Protokolla

Tehostepalvelimen rajapinta valoihin on yksinkertainen viestiprotokolla, jota voi käyttää UDP-paketeilla tai WebSocket-viesteillä. Sen suunnittelussa on erityisesti pyritty ottamaan huomioon ohjelmoitavuuden yksinkertaisuus liikaa kuitenkaan rajoittamatta laajennettavuutta. Valojen ohjaukseen ei siis tarvita mitään kirjastoja, vaan tehtävään soveltuu mikä tahansa kieli, jolla voidaan lähettää UDP-paketteja tai binäärimuotoisia WebSocket-viestejä.

Tehostepalvelimen viestipaketissa ensimmäinen tavu on protokollan versio, joka on tällä hetkellä aina numero yksi. Tämän jälkeen pakettiin voidaan liittää yksi tai useampi komento.

Yksittäinen RGB-valon komento koostuu 6 tavusta:

# Arvo (uint8) Selitys
1. 1 Ohjattavan tehosteen tyyppi. 1 = Valo
2. 0-N Valon numero. Katso yo. kuva.
3. 0 Valon tyyppi. 0 = RGB-valo
4. 0-255 Punaisen värin kirkkaus
5. 0-255 Vihreän värin kirkkaus
6. 0-255 Sinisen värin kirkkaus

Jos tarkoitus on päivittää kaikkien valojen tilaa nopeasti, samassa paketissa kannattaa antaa komento useammalle valolle kerrallaan.

Eli paketti ensimmäisen valon muuttamiseksi punaiseksi ja toisen siniseksi olisi seuraavanlainen:

Tämä muuntuu koodiksi Python-ohjelmointikielellä seuraavasti