2015-03-22 16:09:55 +01:00
syndilights v1
==============
This is the first iteration of the syndilights (syn2lights) project code.
Very solid (read complex) C++ implementation of the frameserver.
For the current state of the art please see the 'v2' directory.
For historical reasons see this Video for the initial implementation idea: https://www.youtube.com/watch?v=r5T5VG92JsA (Spoken language is Luxembourgish, sorry no translation available but the images speak for themselves)
2015-02-09 11:21:41 +01:00
Install dependencies
--------------------
2013-07-12 19:53:34 +02:00
2015-02-09 11:21:41 +01:00
```
2013-07-16 11:35:42 +02:00
sudo apt-get install libboost-all-dev libncurses5-dev libglibmm-2.4-dev build-essential
2015-02-09 11:21:41 +01:00
```
setup
-----
2013-07-12 19:53:34 +02:00
2013-09-19 11:30:38 +02:00
The system is set up of various parts. See frameserver.png
Latest setup is:
2015-02-09 11:21:41 +01:00
2015-02-13 22:53:04 +01:00
* displayclient/html/ws_udp.js
2015-02-09 11:21:41 +01:00
-----------------------------
2015-03-22 16:09:55 +01:00
A nodejs server => $ node displayclient/html/ws_udp.js
2013-09-19 11:30:38 +02:00
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
2015-02-13 22:53:04 +01:00
of the building. => $ firefox/chromium displayclient/html/visionneuse.html
2013-09-19 11:30:38 +02:00
2015-02-09 11:21:41 +01:00
* frameserver
-------------
2015-03-22 16:09:55 +01:00
A c++ program receiving UDP frames combining them to generate the final display
2013-09-19 11:30:38 +02:00
* clients
2015-02-09 11:21:41 +01:00
---------
2013-09-19 11:30:38 +02:00
Written in any language, creates UDP packets which are sent to the frameserver
2015-02-09 11:21:41 +01:00
Building configuration
----------------------
2013-07-16 18:03:18 +02:00
The main configuration of the frameserver is done in < defines.h >
Main tuneables:
2015-02-09 11:23:09 +01:00
```
2013-09-19 11:30:38 +02:00
// where to send the UDP output of the frameserver
2013-07-16 18:03:18 +02:00
#define REMOTE_IP "127.0.0.1"
#define REMOTE_PORT 1234
2013-09-19 11:30:38 +02:00
// description of the frame this server understands
#define HASH "s2l\n8>18> "
2013-07-16 18:03:18 +02:00
// one byte number + 10 character hash plus newline
#define HEADEROFFSET 12
2013-09-19 11:30:38 +02:00
// 12 windows per floor, 8 floors, Value:Alpha
2013-07-16 18:03:18 +02:00
#define WIDTH 12
2013-09-19 11:30:38 +02:00
#define HEIGHT 8
// always has an alpha channel so for rgb it's 3+1=4
#define CHANNELS 4
2013-07-16 18:03:18 +02:00
2013-09-19 11:30:38 +02:00
// 8 segments per window (7 seg plus dot), 12 segments per floor, RGBA
2013-07-16 18:03:18 +02:00
#define SEGNUM 8
#define SEGWIDTH 12
#define SEGCHANNELS 4
2015-02-09 11:23:09 +01:00
```