libplayerc example

An example. More...

An example.

libplayerc is based on a device proxy model, in which the client maintains a local proxy for each of the devices on the remote server. Thus, for example, one can create local proxies for the position2d and laser devices. There is also a special client proxy, used to control the Player server itself.

Programs using libplayerc will generally have the following structure:

#include <stdio.h>
#include <libplayerc/playerc.h>
int
main(int argc, const char **argv)
{
  int i;
  playerc_client_t *client;
  playerc_position2d_t *position2d;
  // Create a client and connect it to the server.
  client = playerc_client_create(NULL, "localhost", 6665);
  if (0 != playerc_client_connect(client))
    return -1;
  // Create and subscribe to a position2d device.
  position2d = playerc_position2d_create(client, 0);
  if (playerc_position2d_subscribe(position2d, PLAYER_OPEN_MODE))
    return -1;
  // Make the robot spin
  playerc_position2d_enable(position2d, 1);
  playerc_position2d_set_speed(position2d, 0, 0, 0.1);
  for (i = 0; i < 200; i++)
  {
    // Wait for new data from server
    playerc_client_read(client);
    // Print current robot pose
    printf("position2d : %f %f %f\n",
           position2d->px, position2d->py, position2d->pa);
  }
  // Shutdown
  playerc_position2d_unsubscribe(position2d);
  playerc_position2d_destroy(position2d);
  playerc_client_disconnect(client);
  playerc_client_destroy(client);
  return 0;
}

This example can be built using the command:

$ gcc -o simpleclient `pkg-config --cflags playerc` simpleclient.c `pkg-config --libs playerc`

Make sure that libplayerc is installed somewhere that pkg-config can find it.

The above program can be broken into six steps, as follows.