Here we describe the options available on when running your Heex Agent.

Installer options

The user has the possibility to add some instructions as stated in the following table. Here is how you do it.

./Agent_<version>_Ubuntu_20.04_x86_64_installer -- --option1 argument --option2 argument2 
OptionShortDescription
--help-hShow this help message and exit.
--mode-mSet the Agent mode. Possibilities are upload-only (u), no-connectivity (n), or limited-connectivity (l).
--interactive-iEnable interactive mode during installation.
--execution-xSet the execution mode to either background for background process or service. Default will be service if environment allows it, else background.
--uninstall-uUninstall.

Heex Agent runtime configuration (-m)

Check kernel configuration for more information.

Deployment execution mode (-x)

The user can chose to either launch them as services or background processes since sometimes launching services is not possible (ie in docker environments). This choice is done via the --execution (or -x) command, added with either service or background as an argument. Please understand that when in background process mode, any system reboot will not automatically re-run the Heex Agent. Example:

./Agent_<version>_Ubuntu_20.04_x86_64_ES-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_installer -- -x background

Uninstallation (-u)

If you want to remove the running services (or background processes) and all the created folders, you can simply call the installer with the --uninstall option and it’ll proceed to do so, no other input needed.

Adding custom files

If for any reason you wish to include custom files/folders of any type, we have added a dedicated space for them: the additionalAgentContent folder, which is located at the root of your SDK folder. Any file or folder you add inside it will be copied into the Heex Agent with the same arborescence (they shall be copied inside <Agent_root>/additionalAgentContent/).

We’ve enhanced the flexibility of our installer by introducing the capability for users to run custom code before the Heex Agent launch. To avail of this feature, prior to create your installer, you create either or both of the following files within the additionalAgentContent folder:

  • additionalAgentContent/AgentSetupHeader.sh: The code added inside this file will be run (sourced) before any of the Agent implementations are started
  • additionalAgentContent/AgentSetupFooter.sh: The code added inside this file will be run (sourced) after any of the Agent implementations are started

In addition to this, we have also added the possibility for the user to source files inside the Linux services in which the implementations will be ran. To do so, please refer to the following paragraph

Linux services additional environment setup

Since the installation is done inside user services, the executables do not source the .bashrc file before running. In some advanced use cases, you may need to set some settings before running the executables.

Sourcing custom files

You can source additional files before the executables are ran. You need to add their full paths in the bash array typed variable named FILES_TO_SOURCE_IN_SERVICES_ENV inside the additionalAgentContent/AgentSetupHeader.sh script.

⚠️ Warning:

It is recommended to use full paths. The character ~ won’t always correctly reference paths to your HOME directory.

📝 Note:

If you mean to source several files, know that the order of the declaration of each file in the list is the order in which we source the files.

Sourcing custom variables

You can also export variables into the services or background processes. For that, you will need to create a dedicated external shell script, and declared it in the additionalAgentContent/AgentSetupHeader.sh script as mentionned above to source it before the executable gets run.

📝 Note:

Any external custom script is expected to be reachable at the given static path.

Templated header file

The additionalAgentContent/AgentSetupHeader.sh is automatically generated and added into the packaged SDK, but if the file is not present, you can create it yourself at the root of the package, and paste the following inside it:

#!/bin/bash
###############################################################
## specific files to source in the service bash environments ##
###############################################################

## Replace the commented lines in the following FILES_TO_SOURCE_IN_SERVICES_ENV variable to source
## specific files inside the implementations environments before they are launched. Please ensure that
## the paths are full paths without any '~' in them.
## NOTE: THE SOURCING OF THE FILES IS DONE IN THE ORDER OF DECLARATION!

FILES_TO_SOURCE_IN_SERVICES_ENV=(
#    "path/to/file1.sh"
#    "path/to/file2.bash"
#    ...
) # it needs to be kept as a list

###############################################################
######## specific implementations installer variables #########
###############################################################

## Following variable is for ROS1 and ROS2 environments only. If you set this to 1, the Heex 
## Agent shall not look for any installed ROS distribution inside the /opt/ros folder and
## will not source them in the implementations environment. By doing so, you will need to explicitly
## add the path to your ROS distribution's installation inside the FILES_TO_SOURCE_IN_SERVICES_ENV
## variable mentionned above.

DISABLE_AUTOMATIC_ROS_INSTALL_SEARCH=0

###############################################################
###############################################################

💡 Tip:

If you already have created the additionalAgentContent/AgentSetupHeader.sh script for other purposes, you can simply add the FILES_TO_SOURCE_IN_SERVICES_ENV list into it

ROS2 specific configuration

In the template written above, you might notice an additionnal variable defined in it: DISABLE_AUTOMATIC_ROS_INSTALL_SEARCH. If you do not work with ROS2, you can ignore it. If you do, feel free to check out the specific ROS2 configuration page