The easiest way to write your first program using YARP is with CMake.
Make a directory called hello
, and within it put a CMakeLists.txt
file like this:
# SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
# SPDX-FileCopyrightText: 2006-2010 RobotCub Consortium
# SPDX-License-Identifier: BSD-3-Clause
# YARP needs CMake 3.0 or greater
cmake_minimum_required(VERSION 3.19)
# find YARP
find_package(YARP COMPONENTS os REQUIRED)
# set up our program
add_executable(hello)
# declare our source files
target_sources(hello PRIVATE hello.cpp)
# link with YARP libraries
target_link_libraries(hello PRIVATE YARP::YARP_os
YARP::YARP_init)
And here's a simple test program, call it hello.cpp
#include <stdio.h>
int main(
int argc,
char *argv[]) {
if (!ok) {
fprintf(
stderr,
"Maybe you need to start a nameserver (run 'yarpserver')\n");
return 1;
}
for (
int i=0;
i<10;
i++) {
return 1;
}
}
return 0;
}
A simple collection of objects that can be described and transmitted in a portable way.
void clear()
Empties the bottle of any objects it contains.
void addInt32(std::int32_t x)
Places a 32-bit integer in the bottle, at the end of the list.
void addString(const char *str)
Places a string in the bottle, at the end of the list.
std::string toString() const override
Gives a human-readable textual representation of the bottle.
A mini-server for performing network communication in the background.
std::string getName() const override
Get name of port.
bool open(const std::string &name) override
Start port operation, with a specific name, with automatically-chosen network parameters.
T * read(bool shouldWait=true) override
Read an available object from the port.
void write(bool forceStrict=false)
Write the current object being returned by BufferedPort::prepare.
T & prepare()
Access the object which will be transmitted by the next call to yarp::os::BufferedPort::write.
Utilities for manipulating the YARP network, including initialization and shutdown.
An interface to the operating system, including Port based communication.
The main, catch-all namespace for YARP.
Now make a build
directory inside the hello
folder, then from the build directory run CMake (see Using CMake), and compile!
This example is available in the example/cmake/hello
directory of the YARP source code.