Giter VIP home page Giter VIP logo

rcdiscover's Introduction

Discovery of roboception sensors

This package contains tools for the discovery of rc_visard sensors via GigE Vision.

  • rcdiscover: console application for discovering rc_visards
  • rcdiscover-gui: graphical application for discovering rc_visards and sending magic packets for resetting of parameters

Compiling on Linux

For compilation of rcdiscover cmake is required.

rcdiscover-gui additionally requires WxWidgets.

To install this under Debian/Ubuntu:

sudo apt-get install cmake libwxgtk3.0-dev

Building rcdiscover

It's required to do an out-of-source build:

mkdir build
cd build
cmake ..
make

Afterwards, the binaries can be found in build/tools/.

Installation

Installation can either be done via

  • make install

  • make package builds a Debian package

    which can be installed with e.g. sudo dpkg -i rcdiscover*.deb

Discovering sensors in other subnets

Most Linux distributions have reverse path filtering turned on, which restricts discoverability of sensor to the same subnet as the host.

Check this with

sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.default.rp_filter

Reverse path filtering can be turned off with

sudo sysctl -w net.ipv4.conf.all.rp_filter=0
sudo sysctl -w net.ipv4.conf.default.rp_filter=0

You might also need to disable it for your specific interface, e.g.:

sudo sysctl -w net.ipv4.conf.eth0.rp_filter=0

Note: These settings are not persistent across reboots! To persist them you can add a file in /etc/sysctl.d/ on most distributions. See debian/50-rcdiscover-rpfilter.conf for an example.

If you built a Debian package with make package, it will automatically ask you if you want to disable reverse path filtering at package installation.

Compiling on Windows

Using MinGW-w64

Install MinGW-w64 by e.g. downloading mingw-w64-install.exe from here. During setup, choose i686 if you want to build 32 bit binaries, or x84_64 for 64 bit. For Threads, select win32. The rest can stay default.

Finally, add the bin directory of MinGW to your PATH variable. For 32 bit installation, it is normally found in C:\Program Files (x86)\mingw-w64\i686-7.1.0-win32-dwarf-rt_v5-rev0\mingw64\bin, for 64 bit it is C:\Program Files\mingw-w64\x86_64-7.1.0-win32-seh-rt_v5-rev0\mingw64\bin.

WxWidgets

Static libraries of WxWidgets are required for the rcdiscover-gui. To build them, the steps from here have been adapted slightly:

git clone https://github.com/wxWidgets/wxWidgets.git
cd wxWidgets
git checkout v3.1.0  # or other stable version
cd build\msw
mingw32-make -f makefile.gcc SHARED=0 BUILD=release -j4 CXXFLAGS="-mtune=generic -mno-abm" CFLAGS="-mtune=generic -mno-abm"

rcdiscover

cd rcdiscover
mkdir build-mingw32
cd build-mingw32
cmake -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DwxWidgets_ROOT_DIR=<path to WxWidgets root folder> ..
mingw32-make

For the 32 bit build you may encounter a 0xc000007b error when running rcdiscover-gui.exe. This seems to be caused by a bug in WxWidgets build. As a workaround, rename rcdefs.h in lib\gcc_lib\mswu\wx\msw in your WxWidgets root directory to something different (e.g., rcdefs.h_old). Then, rerun above WxWidgets build command:

cd build\msw
mingw32-make -f makefile.gcc SHARED=0 BUILD=release -j4 CXXFLAGS="-mtune=generic -mno-abm" CFLAGS="-mtune=generic -mno-abm"

Finally, rebuild rcdiscover.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.