Changes between Version 20 and Version 21 of RCLLRefBox/Install

05/18/19 15:33:05 (14 months ago)



  • RCLLRefBox/Install

    v20 v21  
    1 = Installing the RCLL Referee Box = 
    2 [[TOC(depth=1,RCLLRefBox*,heading=RCLL RefBox Table of Contents)]][[TOC(depth=2,RCLLRefBox/Install,heading=Page Table Of Contents)]] 
    3 The [ RCLL Referee Box (refbox)] has been developed on [ Fedora Linux] 22. It was also tested on [ Ubuntu] 14.04. It will work on both systems, but only Fedora comes with all prerequisites out-of-the-box and we recommend it for development and running the refbox. In principal, it should work on any Linux or Unix system that can provide for the required libraries. We would welcome any success reports and instructions to add to this page, but we cannot provide support in these cases. 
    5 == Prerequisites == 
    6 The following libraries are required to build and run the refbox. The version numbers are the minimum version required and that we tested. Before posting any issues please make sure you meet these requirements. 
    7  [ libmodbus] 3.0.3:: 
    8   Required to communicate with the [ SPS]/[ PLC] that controls the machine signal lights and reads and writes the pucks' RFID chips. 
    9  [ CLIPS] 6.30:: 
    10   CLIPS ([ CLIPS at Wikipedia]) is a rule-based production system. It is used to implement the core of the referee box -- the knowledge base, game rules and flow control. 
    11  [ clipsmm] 0.3.2:: 
    12   C++ bindings for CLIPS. 
    13  [ protobuf]:: 
    14   Used for network communication message structure definition. All communication from and to the refbox uses a simple network protocol with protobuf messages. 
    15  [ Boost] 1.46 (1.48 or higher strongly recommended):: 
    16   Boost is a library used in particular for internal signaling using [ Boost Signals2] and asynchronous I/O using [ Boost Asio]. Versions older than 1.48 lack certain critical features, for example system signal handling that makes the refbox uninterruptible once started. So we strongly suggest using a recent version of Boost. 
    17  [ yaml-cpp]:: 
    18   Library used to read the configuration file. 
    19  [ Gtkmm] 3.0:: 
    20   Used to build the graphical interface to monitor and instruct the refbox. 
    21  [ ncurses] 5.9:: 
    22   Used to build the textual interface to monitor and instruct the refbox. 
    23  [ MongoDB] 2.0:: 
    24   For automated and complete logging of log messages and network traffic to a database (optional). 
    26 Further you need GCC 4.6 or higher to support the necessary C++ features of the [ C++11] standard. 
    28 === Installing the Prerequisites on Fedora === 
    29 Fedora has all necessary prerequisites available in their package repository. Some of them are maintained by the refbox authors, so compatibility for Fedora is optimal. You can easily install all prerequisites using the following commands: 
    30 {{{ 
    31 sudo yum groupinstall "Development Tools" 
    32 sudo yum groupinstall "Development Libraries" 
    33 sudo yum install gcc-c++ libmodbus-devel clips-devel clipsmm-devel protobuf-compiler \ 
    34                  protobuf-devel boost-devel glibmm24-devel gtkmm30-devel \ 
    35                  ncurses-devel yaml-cpp-devel \ 
    36                  mongodb-devel mongodb-server webkitgtk3-devel 
    37 }}} 
    38 All the packages are required. It is correct that glibmm is of version 2.4. Afterwards proceed with the compilation instructions. 
    40 === Installing the Prerequisites on Ubuntu === 
    41 Ubuntu does not provide all the necessary packages. But we maintain a personal package archive (PPA) with the missing requirements [ CLIPS PPA]. You can enable it using the following commands: 
    42 {{{ 
    43 sudo add-apt-repository ppa:timn/clips 
    44 sudo apt-get update 
    45 }}} 
    46 Afterwards you can install the prerequisites with the following command: 
    47 {{{ 
    48 sudo apt-get install libmodbus-dev libclips-dev clips libclipsmm-dev \ 
    49                      protobuf-compiler libprotobuf-dev libprotoc-dev \ 
    50                      boost1.54-all-dev libmodbus-dev \ 
    51                      libglibmm-2.4-dev libgtkmm-3.0-dev \ 
    52                      libncursesw5-dev libyaml-cpp-dev libavahi-client-dev git \ 
    53                      libssl-dev 
    54 }}} 
    55 Again note that version 2.4 of glibmm is correct. 
    57 == Downloading and Compiling the refbox == 
    58 To use the refbox it must be copied to your machine and then compiled. This assumes that you have all the prerequisites installed as described above. 
    60 There are two principal ways to get the refbox: either as a release archive (tarball) or via git. 
    62 === Installing from tarball === 
    63 Download the latest version's tarball from Then unpack it like the following and continue with the compilation instructions. Replace "0.6.0" with the version number of the latest release. 
    64 {{{ 
    65 tar xf llsf-refbox-0.6.0.tar.bz2 
    66 cd llsf-refbox-0.6.0 
    67 }}} 
    69 === Installing from Git repository === 
    70 The recommended way is get the source code via Git to make later updates easier. Especially now that the refbox is still very new it might need more frequent updates. 
    71 {{{ 
    72 git clone 
    73 cd llsf-refbox 
    74 }}} 
    75 This will compile all included libraries, the refbox itself, the shell, and tools. Not that the GUI is currently developed in a separate branch and awaits merging. For now we suggest using the text shell. 
    77 To later update your local copy and re-compile it do: 
    78 {{{ 
    79 cd llsf-refbox 
    80 git pull --ff-only 
    81 }}} 
    83 === Compiling the refbox === 
    84 To compile change to the base directory of the refbox, e.g. {{{llsf-refbox-0.5.0}}} for tarball installations or just {{{llsf-refbox}}} for git clones. Then just type 
    85 {{{ 
    86 make 
    87 }}} 
    90 == Configuring the refbox == 
    91 The default configuration should be usable mostly out-of-the-box. But most certainly you will need to setup the broadcast address of your network. Please see the [wiki:RCLLRefBox/Configuration refbox configuration] page for details. 
     1This Wiki has been migrated to !GitHub and is no longer up-to-date. Please visit instead.