Skip to content

Commit

Permalink
add exampleRemoteGrabber
Browse files Browse the repository at this point in the history
  • Loading branch information
jgvictores committed Dec 16, 2020
1 parent a0ac04f commit 4b92ef0
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ before_script:
- mkdir -p "$TRAVIS_BUILD_DIR/build/exampleProcessCloud" && cd "$_"
- cmake "$TRAVIS_BUILD_DIR/examples/cpp/exampleProcessCloud" && make

- mkdir -p "$TRAVIS_BUILD_DIR/build/exampleRemoteGrabber" && cd "$_"
- cmake "$TRAVIS_BUILD_DIR/examples/cpp/exampleRemoteGrabber" && make

- mkdir -p "$TRAVIS_BUILD_DIR/build/exampleRemoteRGBDSensor" && cd "$_"
- cmake "$TRAVIS_BUILD_DIR/examples/cpp/exampleRemoteRGBDSensor" && make

Expand Down
17 changes: 17 additions & 0 deletions examples/cpp/exampleRemoteGrabber/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)

project(exampleRemoteGrabber LANGUAGES CXX)

find_package(YARP 3.2 REQUIRED COMPONENTS os dev sig)

add_executable(exampleRemoteGrabber exampleRemoteGrabber.cpp)

target_link_libraries(exampleRemoteGrabber YARP::YARP_os
YARP::YARP_init
YARP::YARP_dev
YARP::YARP_sig)

include(GNUInstallDirs)

install(TARGETS exampleRemoteGrabber
DESTINATION ${CMAKE_INSTALL_BINDIR})
60 changes: 60 additions & 0 deletions examples/cpp/exampleRemoteGrabber/exampleRemoteGrabber.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-

/**
* @ingroup vision_examples
* @defgroup exampleRemoteGrabber exampleRemoteGrabber
* @brief This example connects to a remote grabber (generally, RGB) device.
*/

#include <cstdio>

#include <yarp/os/Network.h>
#include <yarp/os/Property.h>

#include <yarp/dev/PolyDriver.h>
#include <yarp/dev/FrameGrabberInterfaces.h>

int main(int argc, char *argv[])
{
yarp::os::Network yarp;

if (!yarp::os::Network::checkNetwork())
{
std::printf("Please start a yarp name server first\n");
return 1;
}

yarp::os::Property options;

options.put("device","remote_grabber");
options.put("local","/exampleRemoteGrabber");
options.put("remote","/grabber");

yarp::dev::PolyDriver dd(options);

if (!dd.isValid())
{
std::printf("Device not available.\n");
return 1;
}

yarp::dev::IFrameGrabberImage *iFrameGrabberImage;

if (!dd.view(iFrameGrabberImage))
{
std::printf("[error] Problems acquiring interface\n");
return 1;
}

std::printf("[success] acquired interface\n");

// The following delay should avoid bad status
yarp::os::Time::delay(1);

std::printf("Width: %d\n", iFrameGrabberImage->width());
std::printf("Height: %d\n", iFrameGrabberImage->height());

dd.close();

return 0;
}

0 comments on commit 4b92ef0

Please sign in to comment.