Enabling the legacy remote API - client side

All units going to, or coming from the API are in meters, kilograms, seconds and radians or a combination of those (unless otherwise explicitly indicated).



C/C++ client

To use the legacy remote API functionality in your C/C++ application, just include following C-language files in your project:

  • extApi.h
  • extApi.c
  • extApiPlatform.h (contains platform specific code)
  • extApiPlatform.c (contains platform specific code)
  • Above files are located in CoppeliaSim's installation directory, under programming/legacyRemoteApi/. Make sure you have defined NON_MATLAB_PARSING and MAX_EXT_API_CONNECTIONS=255 (and optionally DO_NOT_USE_SHARED_MEMORY) as a preprocessor definition. To enable the legacy remote API on the client side (i.e. your application), call simxStart. See the bubbleRobClient project in the programming directory for an example. This page lists and describes all supported C/C++ legacy remote API functions. CoppeliaSim legacy remote API functions can easily be recognized from their "simx"-prefix.



    Python client

    To use the legacy remote API functionality in your Python script, you will need following 3 items:

  • sim.py
  • simConst.py
  • remoteApi.dll, remoteApi.dylib or remoteApi.so (depending on your target platform)
  • Above files are located in CoppeliaSim's installation directory, under programming/legacyRemoteApi/remoteApiBindings/python. You might have to build the remoteApi shared library yourself (using remoteApiSharedLib.vcproj or makefile) if not already built. In that case, make sure you have defined NON_MATLAB_PARSING and MAX_EXT_API_CONNECTIONS=255 (and optionally DO_NOT_USE_SHARED_MEMORY) as a preprocessor definition.

    Once you have above elements in a directory known to Python, call import sim to load the library. To enable the legacy remote API on the client side (i.e. your application), call sim.simxStart. See the simpleTest.py script in the programming/legacyRemoteApi/remoteApiBindings/python directory for an example. This page lists and describes all supported Python legacy remote API functions. CoppeliaSim legacy remote API functions can easily be recognized from their "simx"-prefix.



    Java client

    To use the legacy remote API functionality in your Java application, you will need following 2 items:

  • package coppelia (containing 12 Java classes)
  • remoteApiJava.dll, libremoteApiJava.dylib or libremoteApiJava.so (depending on your target platform)
  • Above files are located in CoppeliaSim's installation directory, under programming/legacyRemoteApi/remoteApiBindings/java. You might have to build the remoteApiJava shared library yourself (using remoteApiSharedLibJava.vcproj or remoteApiSharedLibJava_Makefile) if not already built. In that case, make sure you have defined NON_MATLAB_PARSING and MAX_EXT_API_CONNECTIONS=255 (and optionally DO_NOT_USE_SHARED_MEMORY) as a preprocessor definition.

    Once you have above elements in a directory known to Java, compile your application with myAppName.java with javac myAppName.java. In your application, make sure to import the classes that you use with import coppelia.className, then call remoteApi sim = new remoteApi() to load the library. To enable the legacy remote API on the client side (i.e. your application), call sim.simxStart. See the simpleTest.java program in the programming/legacyRemoteApi/remoteApiBindings/java directory for an example.This page lists and describes all supported Java legacy remote API functions. CoppeliaSim legacy remote API functions can easily be recognized from their "simx"-prefix.

    You might also have to add the folder to the system path. In Linux for instance, you could call: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd` before executing your Java application.



    Matlab client

    To use the legacy remote API functionality in your Matlab program, you will need following 3 items:

  • remoteApiProto.m
  • remApi.m
  • remoteApi.dll, remoteApi.dylib or remoteApi.so (depending on your target platform)
  • Above files are located in CoppeliaSim's installation directory, under programming/legacyRemoteApi/remoteApiBindings/matlab. You might have to build the remoteApi shared library yourself (using remoteApiSharedLib.vcproj or remoteApiSharedLib_Makefile) if not already built.

    Once you have above elements in Matlab's current folder, call sim=remApi('remoteApi') to build the object and load the library. To enable the legacy remote API on the client side (i.e. your application), call sim.simxStart. See the simpleTest.m program in the programming/legacyRemoteApi/remoteApiBindings/matlab directory for an example.This page lists and describes all supported Matlab legacy remote API functions. CoppeliaSim legacy remote API functions can easily be recognized from their "simx"-prefix.

    Make sure your Matlab uses the same bit-architecture as the remoteApi library: 64bit Matlab with 32bit remoteApi library will not work, and vice-versa!

    If you had to rebuild the remoteApi library, you might have to regenerate the prototype file (remoteApiProto.m): first, make sure you have a compiler that Matlab recognizes. You might have to call mex -setup. Then, type loadlibrary('remoteApi','extApi.h','mfilename','remoteApiProto').



    Octave client

    To use the legacy remote API functionality in your Octave program, you will need following 2 items:

  • remApiSetup.m
  • remApi.oct
  • Above files are located in CoppeliaSim's installation directory, under programming/legacyRemoteApiBindings/octave. You might have to build the remApi.oct shared library yourself, if not already build. In that case, make sure to place all the content of programming/legacyRemoteApi/remoteApi and programming/include into that directory before calling buildWin, buildLin or buildMac from the Octave command line.

    Once you have above elements in Octave's current folder, call sim=remApiSetup() to load the library and bind the functions. To enable the legacy remote API on the client side (i.e. your application), call simxStart. See the simpleTest.m program in the programming/legacyRemoteApi/RemoteApiBindings/octave directory for an example.This page lists and describes all supported Octave legacy remote API functions. CoppeliaSim legacy remote API functions can easily be recognized from their "simx"-prefix.

    Make sure your Octave uses the same bit-architecture as the remoteApi library: 64bit Octave with 32bit remoteApi library will not work, and vice-versa!