Difference between revisions of "API2"

From RobotinoWiki
(Windows)
(Windows)
Line 15: Line 15:
 
* msvc-12 (Visual Studio 2013) is available for 32bit and 64bit
 
* msvc-12 (Visual Studio 2013) is available for 32bit and 64bit
 
* msvc-141 (Visual Studio 2017) is 64bit only
 
* msvc-141 (Visual Studio 2017) is 64bit only
* comming soon -- msvc-142 (Visual Studio 2019) is 64bit only
+
* msvc-142 (Visual Studio 2019) is 64bit only
  
 
==Build examples==
 
==Build examples==

Revision as of 15:12, 8 May 2019

Introduction

Robotino api2 icon 64.png A C/C++ library to access Robotino's sensors and actors from your own program.

Download and install

Check Robotino OS to find the link to the API2 library.

Windows

On Windows (Visual Studio) you need to install the binary package that fits your compiler. Currently we support two compilers. Please open a command prompt and use set to see your Visual Studio or Visual Studio Tools version.

API2 for

  • msvc-12 (Visual Studio 2013) is available for 32bit and 64bit
  • msvc-141 (Visual Studio 2017) is 64bit only
  • msvc-142 (Visual Studio 2019) is 64bit only

Build examples

The API2 package comes with examples showing how to use the C/C++ interface.

Linux

mkdir examples
cd examples
cp -R /opt/robotino/examples/cpp/circle/ circle
cd circle
mkdir build
cd build
cmake ..
make

Windows

  • Download and install cmake.
  • Copy c:\program files\rec gmb\api2\examples to a user writable directory.
  • Run cmake-gui
  • Choose source and destiantion directory
  • Configure and Generate
  • Open the generated Visual Studio Solution

Quick links

C++ example

#include <iostream>
#include "rec/robotino/api2/all.h"

rec::robotino::api2::Com com;
rec::robotino::api2::Bumper bumper;

int main( int argc, char **argv )
{
  std::string hostname = "172.26.1.1";
  if( argc > 1 )
  {
    hostname = argv[1];
  }

  com.setAddress( hostname.c_str() );
  com.connectToServer( true );
  
  while(com.isConnected() && false == bumper.value())
  {
    std::cout << "Bumper is " << (bumper.value()?"":"not") << " pressed" << std::endl;
    com.processEvents();
    rec::robotino::api2::msleep( 100 );
  }

  com.disconnectFromServer();

  rec::robotino::api2::shutdown();

  return 0;
}

C example

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#ifdef WIN32
#include <windows.h>
#else
#include <unistd.h> //usleep
#endif

#include "rec/robotino/api2/c/Com.h"

void msleep( unsigned int ms )
{
#ifdef WIN32
  SleepEx( ms, FALSE );
#else
  usleep( ms * 1000 );
#endif
}

ComId com;
BumperId bumper;

int main( int argc, char **argv )
{
  com = Com_construct();

  if( argc > 1 )
  {
    Com_setAddress( com, argv[1] );
  }
  else
  {
    Com_setAddress( com, "172.26.1.1" );
  }

  if( FALSE == Com_connect( com ) )
  {
    printf( "Error on connect" );
    exit(1);
  }
  else
  {
    char addressBuffer[256];
    Com_address( com, addressBuffer, 256 );
    printf( "Connected to %s\n", addressBuffer );
  }

  while( Com_isConnected( com ) && FALSE == Bumper_value( bumper ) )
  {
    printf("Value of bumper is %d\n",Bumper_value( bumper ) )
    msleep( 50 );
  }

  Bumper_destroy( bumper );
  Com_destroy( com );

  return 0;
}