Difference between revisions of "API2"
From RobotinoWiki
(→Robotino API2 Overview) |
(→Windows) |
||
(22 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==Introduction== | ==Introduction== | ||
− | {| | + | {|class="wikitable" cellpadding="20" vertical-align="top" |
− | + | |- | |
|[[Image:Robotino_api2_icon_64.png]] | |[[Image: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|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 | ||
+ | * [http://packages.openrobotino.org/windows/robotino-api2/msvc-12 Visual Studio 2013] | ||
+ | * [http://packages.openrobotino.org/windows/robotino-api2/msvc-140 Visual Studio 2015] | ||
+ | * [http://packages.openrobotino.org/windows/robotino-api2/msvc-141 Visual Studio 2017] | ||
+ | * [http://packages.openrobotino.org/windows/robotino-api2/msvc-142 Visual Studio 2019] | ||
− | + | ==Build examples== | |
− | + | The API2 package comes with examples showing how to use the C/C++ interface. | |
+ | |||
+ | ===Linux=== | ||
+ | <pre> | ||
+ | mkdir examples | ||
+ | cd examples | ||
+ | cp -R /opt/robotino/examples/cpp/circle/ circle | ||
+ | cd circle | ||
+ | mkdir build | ||
+ | cd build | ||
+ | cmake .. | ||
+ | make | ||
+ | </pre> | ||
+ | |||
+ | ===Windows=== | ||
+ | * Download and install [https://cmake.org/ 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== | ||
+ | * [https://doc.openrobotino.org/download/RobotinoAPI2/rec_robotino_api2/ Documentation] | ||
+ | |||
+ | ==C++ example== | ||
+ | <pre> | ||
+ | #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; | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ==C example== | ||
+ | <pre> | ||
+ | #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; | |
− | + | } | |
− | + | </pre> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ |
Latest revision as of 09:24, 10 May 2019
Contents
Introduction
![]() |
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
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; }