Yet Another Robot Platform

Part of a series of examples on the different ways of using ports.

Part of a series of examples on the different ways of using ports. See Port power tutorial.

* SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
* SPDX-FileCopyrightText: 2006-2010 RobotCub Consortium
* SPDX-License-Identifier: BSD-3-Clause
#include <stdio.h>
#include <yarp/os/all.h>
using namespace yarp::os;
int main() {
int ct = 0;
BufferedPort<Bottle> p; // Create a port.
p.open("/out"); // Give it a name on the network.
while (true) {
Bottle& b = p.prepare(); // Get a place to store things.
b.clear(); // clear is important - b might be a reused object
printf("Sending %s\n", b.toString().c_str());
p.write(); // Send the data.
// after write() is called, user should not touch b.
return 0;
A simple collection of objects that can be described and transmitted in a portable way.
Definition: Bottle.h:64
void clear()
Empties the bottle of any objects it contains.
Definition: Bottle.cpp:121
void addInt32(std::int32_t x)
Places a 32-bit integer in the bottle, at the end of the list.
Definition: Bottle.cpp:140
void addString(const char *str)
Places a string in the bottle, at the end of the list.
Definition: Bottle.cpp:170
std::string toString() const override
Gives a human-readable textual representation of the bottle.
Definition: Bottle.cpp:211
A mini-server for performing network communication in the background.
Definition: BufferedPort.h:60
bool open(const std::string &name) override
Start port operation, with a specific name, with automatically-chosen network parameters.
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.
Definition: Network.h:780
void delay(double seconds)
Wait for a certain number of seconds.
Definition: Time.cpp:111
An interface to the operating system, including Port based communication.
The main, catch-all namespace for YARP.
Definition: dirs.h:16
int main(int argc, char *argv[])
Definition: yarpros.cpp:265