The compiler and interpreter are available for downloading from the SourceForge project page:

http://sourceforge.net/projects/rcmlang/files/

The compiler and interpreter are two executable files that are to be put into the same folder. Additionally, in the folder you will have to create a text file config.ini, which is the RCML environment configuration file. The configuration is the same for the compiler and the interpreter.

This file may contain the following sections:

  • [robot_modules] – the section for connecting robots' modules;
  • [function_modules] - the section for connecting functional modules;
  • [control_modules] - the section for connecting control modules; 
  • [choice_modules] – the section for connecting the robot's choosing modules.

The name of the connected module is specified in the module property in the section of the same type as the module. If there are several connected modules of the same type, a separate line is allocated for each of them. Modules of a particular type are loaded in the order, in which they were listed in their section.

An example of setting connected modules in config.ini:

[robot_modules]
module = test
module = tarakan
module = uarm
module = lego_ev3
[function_modules]
module = math
[control_modules]
module = test
module = keyboard
module = gamepad
module = myo
[choice_modules]
module = avg

For modules of all types, folders named after the section are to be created in the folder with the compiler and interpreter (robot_modules, function_modules, control_modules or choice_modules). For each module, in the folder corresponding to its type, a directory with the same name as the one of the module should be created; this directory will be further referred to as the module directory. The module itself is represented by a dynamic-link library file which should have the same name as the module, but with suffix _module added. The module file should be in the module folder. The module folder may contain other files required for module operation, e.g., configuration files.

Additionally, the config.ini file may contain following sections:

  • [statistics] – this section may have only one property - db_path - the path to the database file where the robots will write statistics about the performed functions. If the database file does not exist, it will be created. If the database already exists, it will be amended. If this property is null or empty, no stats will be recorded.
  • [lib_search_paths] – search paths for the compiled RCML libraries. In this section, the path property may specify the default path to the RCML library. There may be several paths, in case each path is set via a separate path property. The required library is searched by the specified paths in the same order in which the path in this section have been specified.
  • [locale_settings] is the section of the current locale settings; it may contain only one property – locale, where the parameters of the current locale for RCML are specified as a string according to the rules adopted in the Linux environment. By default, the current locale is English; it is set by value en_US.UTF-8.

For example, to switch the current locale to Russian, set it to ru_RU.UTF-8.

Important! The locale_settings option is supported only in Windows OS.

The files of all supported locales may be downloaded from the respective directory at the official download page of the SourceForge project:

https://sourceforge.net/projects/rcmlang/files/translations/

You can read how to add your own locale to your RCML project in the locales repository webpage for RCML:

https://github.com/RobotControlTechnologies/RCML_translations