Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 1 addition & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ The Massive Mobile Multiuser Framework is a software platform designed to enable


# Setup and Installation
- Install necessary dependencies on server: SFML2, python3; if you use a Raspberry Pi, a special fork of SFML2 (e.g https://github.com/mickelson/sfml) needs to be compiled
- Install necessary dependencies on server: SFML, python3. If you use a Raspberry Pi, you previously needed a special fork of SFML (e.g https://github.com/mickelson/sfml), which is now no longer necessary by installing it from the official package repositories: ```sudo apt install libsfml-dev```
- Install a web server and make its root directory point to the www_root symlink in the project's root directory
- Connect the server to a network from which it is reachable for client devices, or open a Wifi network yourself (see troubleshooting section for hints)
- Paste the server's IP address to the frontend WebSocket configuration file: frontend/configuration/configuration.js
Expand All @@ -21,23 +21,6 @@ The Massive Mobile Multiuser Framework is a software platform designed to enable
- T. Weißker, A. Berst, J. Hartmann, and F. Echtler. 2016. The Massive Mobile Multiuser Framework: Enabling Ad-hoc Realtime Interaction on Public Displays with Mobile Devices. In Proceedings of the 5th International Symposium on Pervasive Displays (PerDis '16). ACM, New York, NY, USA, 168-174. DOI: http://dx.doi.org/10.1145/2914920.2915004

# Troubleshooting
## Compilation of mickelson's version of SFML
As outline by mickelson himself, the following steps need to be executed in order to get the Raspberry-Pi-version of SFML running.

Install necessary dependencies:
```
sudo apt-get install cmake libx11-dev libx11-xcb-dev libflac-dev libogg-dev libvorbis-dev libopenal-dev libjpeg8-dev libfreetype6-dev libxcb-randr0-dev libxcb-image0-dev libxcb-util0-dev libxcb-ewmh-dev libxcb-keysyms1-dev libxcb-icccm4-dev libudev-dev libavutil-dev libavcodec-dev libavformat-dev libavfilter-dev libswscale-dev libavresample-dev libfontconfig1-dev
```

Configure and compile SFML:
```
git clone -b rpi https://github.com/mickelson/SFML sfml-pi
mkdir sfml-pi/build;cd sfml-pi/build
cmake -DEGL_INCLUDE_DIR=/opt/vc/include -DEGL_LIBRARY=/opt/vc/lib/libEGL.so -DFREETYPE_INCLUDE_DIR_freetype2=/usr/include -DFREETYPE_INCLUDE_DIR_ft2build=/usr/include/freetype2 -DGLES_INCLUDE_DIR=/opt/vc/include -DGLES_LIBRARY=/opt/vc/lib/libGLESv1_CM.so -DSFML_BCMHOST=1 ..
sudo make install
sudo ldconfig
```

## Wireless network and DHCP server
We have used and tested two platforms on which we opened a Wifi network and assigned IP addresses to the connecting client devices. Therefore, we assigned the IP address 29.4.93.1 to the respective server and gave out an address range of 29.4.93.10 to 29.4.93.254 to connecting client devices.

Expand Down
4 changes: 3 additions & 1 deletion backend/dictionary_builder/create_dictionary.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import os
import sys

# Command line parameters
Expand All @@ -9,6 +10,7 @@ def start():

# get filenames and load files
config_file_name = sys.argv[1]
config_file_abs_path = os.path.abspath(config_file_name)
output_file_name = sys.argv[2]

config_file = open(config_file_name, 'r')
Expand All @@ -25,7 +27,7 @@ def start():
output_file.write('#include <string>\n')
output_file.write('\n')
output_file.write('const std::string configuration_file("' +
config_file_name + '");\n')
config_file_abs_path + '");\n')
output_file.write('std::map<std::string, int> eventDictionary;\n')
output_file.write('\n')
output_file.write('void fillDictionary()\n')
Expand Down
4 changes: 3 additions & 1 deletion backend/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@ int main()
{
//parse message formats: EVENT_TYPE EVENT_CODE VALUE
// [EV_ABS | EV_REL] VALUE1 VALUE2 VALUE3 ...
//std::cout << message << std::endl;

std::stringstream messageStream(message);
std::string typeString;
Expand Down Expand Up @@ -299,7 +300,8 @@ int main()
else
{
//illegal use of multiple values
std::cout << "[Server] Multiple values only allowed for EV_ABS and EV_REL." << std::endl;
std::cout << message << std::endl;
std::cout << "[Server] Multiple values only allowed for EV_ABS and EV_REL." << std::endl;
}
}
else
Expand Down
4 changes: 2 additions & 2 deletions frontend/configuration/configuration.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var configuration = {
server_ip: '29.4.93.1', // the IP adress to open the WebSocket connection to
server_ip: '29.4.29.1', // the IP adress to open the WebSocket connection to
server_port: '53000' // the port to use for the WebSocket connection
// if you didn't change anything in backend/, the default is 53000
}
}
1 change: 0 additions & 1 deletion frontend/controller.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
<img id="mmmturn" src="res/mmm_turn.png">
<div id="canvas-wrap">
<canvas id="sadstick" class="sadstick"></canvas>
<div id="circle" class="circle"></div>
</div>
<div id="button" class="button">
</div>
Expand Down
Loading