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