Difference between revisions of "API2"

From RobotinoWiki
(C++ example)
Line 5: Line 5:
 
|A C/C++ library to access Robotino's sensors and actors from your own program.
 
|A C/C++ library to access Robotino's sensors and actors from your own program.
 
|}
 
|}
 +
 +
==Find the correct version==
 +
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.
 +
* msvc-12: Visual Studio 2013 with VisualStudioVersion=12.0
 +
* msvc-141: Visual Studio 2017 with VCToolsVersion=14.16.27023
 +
API2 for msvc-12 is 32bit while the msvc-141 library is 64bit.
  
 
==Quick links==
 
==Quick links==

Revision as of 11:20, 18 March 2019

Introduction

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

Find the correct version

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.

  • msvc-12: Visual Studio 2013 with VisualStudioVersion=12.0
  • msvc-141: Visual Studio 2017 with VCToolsVersion=14.16.27023

API2 for msvc-12 is 32bit while the msvc-141 library is 64bit.

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;
}