Go to file
Raphaël Vinot 9da3123796 Improve dynamic configuration
* Control framerate in the forwarder
* The processing client can use a smaller framerate than the default/max
* The processing client can send an image smaller than the full screen
    Known Bug: doesn't work if the width is smaller than the one of the screen
* The default config is sent to the processing client by the server
    Sanity checks are made on the client configuration
* Code Cleanup
2015-03-20 00:46:31 +01:00
PoC
clients some more clients and test code for arduino 2015-02-21 17:47:04 +01:00
displayclient some more clients and test code for arduino 2015-02-21 17:47:04 +01:00
entec-driver
frameserver new displayclient for arduino with ethernet shield and neopixels 2015-02-13 22:53:04 +01:00
ola-test
open-lighting-architecture
tutorial
v2 Improve dynamic configuration 2015-03-20 00:46:31 +01:00
HACKING
LICENSE
README.md new displayclient for arduino with ethernet shield and neopixels 2015-02-13 22:53:04 +01:00
casino.svg description of casino museum project in an svg file 2015-02-21 15:14:33 +01:00
frameserver.dia
frameserver.png
run-it-all1.sh new displayclient for arduino with ethernet shield and neopixels 2015-02-13 22:53:04 +01:00

README.md

Install dependencies

sudo apt-get install libboost-all-dev libncurses5-dev libglibmm-2.4-dev build-essential

setup

The system is set up of various parts. See frameserver.png

Latest setup is:

  • displayclient/html/ws_udp.js

A nodjs server => $ node displayclient/html/ws_udp.js This listens for UDP packets to show on a virtual building This server creates a webserver where a browser can connect to see a simulation of the building. => $ firefox/chromium displayclient/html/visionneuse.html

  • frameserver

A c++ program recieving UDP frames combining them to generate the final display

  • clients

Written in any language, creates UDP packets which are sent to the frameserver

Building configuration

The main configuration of the frameserver is done in <defines.h>

Main tuneables:

// where to send the UDP output of the frameserver
#define REMOTE_IP "127.0.0.1"
#define REMOTE_PORT 1234

// description of the frame this server understands
#define HASH "s2l\n8>18> "
// one byte number + 10 character hash plus newline
#define HEADEROFFSET 12

// 12 windows per floor, 8 floors, Value:Alpha
#define WIDTH 12
#define HEIGHT 8
// always has an alpha channel so for rgb it's 3+1=4
#define CHANNELS 4

// 8 segments per window (7 seg plus dot), 12 segments per floor, RGBA
#define SEGNUM 8
#define SEGWIDTH 12
#define SEGCHANNELS 4