### Heex FAQ: Getting Started (APIDOC) Source: https://context7_llms Answers to common questions regarding the installation and initial setup of the Heex platform, including system requirements, setup duration, and immediate availability of RDA. ```APIDOC FAQ - Getting Started: Q: What do I need to install Heex? A: Compatible robotic system (Ubuntu), internet access, Heex Installer. Q: How long does setup take? A: Under 10 minutes. Q: Can I use RDA right after installation? A: Yes, if ROS environment is configured. Q: What if I hit an error during setup? A: Verify system requirements, then contact support@heex.io. ``` -------------------------------- ### Run Heex Agent Installer with Multiple Options Source: https://context7_llms This snippet illustrates the general syntax for executing the Heex Agent installer, demonstrating how to pass multiple configuration options and their corresponding arguments. This allows for a highly customized installation and setup of the agent. ```bash ./Agent__Ubuntu_20.04_x86_64_installer -- --option1 argument --option2 argument2 ``` -------------------------------- ### Install Docker on Ubuntu Source: https://context7_llms This snippet provides commands to install Docker on an Ubuntu-based system. It updates package lists, installs the `docker.io` package, starts and enables the Docker service, and adds the current user to the `docker` group to allow running Docker commands without `sudo`. ```bash sudo apt update sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker sudo usermod -aG docker $USER # Log out and back in for the group changes to take effect ``` -------------------------------- ### Download Heex RDA Setup Scripts and CLI Source: https://context7_llms This snippet provides commands to download either a basic or an advanced setup script for Heex RDA. The basic script requires a local CLI, while the advanced script can download it for you and offers more configuration options for a complete workspace setup. ```bash curl -f "https://heex-public-bucket.s3.eu-central-1.amazonaws.com/get-started-scripts/simplifiedGetStartedRDA.sh" -o setup-heex-rda-basic.sh chmod +x setup-heex-rda-basic.sh # Download the CLI if you don't have it locally curl -f "https://api.app.heex.io/v1/cli/download?operating_system=$(. /etc/os-release && echo ${ID}_${VERSION_ID}_$(uname -m))" -H "secret_key: YOUR_API_KEY" -o heex && chmod +x heex ``` ```bash curl -f "https://heex-public-bucket.s3.eu-central-1.amazonaws.com/get-started-scripts/getStartedRDA.sh" -o setup-heex-rda-advanced.sh chmod +x setup-heex-rda-advanced.sh ``` -------------------------------- ### Install Heex Agent Locally Source: https://context7_llms Illustrates the command to install a Heex Agent directly onto your local computer. It includes parameters for the API key, the path to the SDK folder, and an optional system configuration file to be included in the installed agent. ```bash ./heex agent install --api-key --path-to-sdk /path/to/sdk/folder --config-path path/to/systremConf.json ``` -------------------------------- ### Heex CLI: Get Help for Implementation Commands Source: https://context7_llms These commands provide help documentation for various 'heex implementation' subcommands. Use the '--help' flag to see available options and usage for general implementation commands, create, create-template-file, update, get, list, and delete operations. ```bash ./heex implementation --help ./heex implementation create --help ./heex implementation create-template-file --help ./heex implementation update --help ./heex implementation get --help ./heex implementation list --help ./heex implementation delete --help ``` -------------------------------- ### Configure Heex Agent for Background Execution Source: https://context7_llms This example demonstrates how to launch the Heex Agent installer and specifically configure the agent to run as a background process. This is achieved using the `--execution` option with the `background` argument, which is particularly useful in environments like Docker where traditional service launching might not be feasible or desired. ```bash ./Agent__Ubuntu_20.04_x86_64_ES-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_installer -- -x background ``` -------------------------------- ### Example defaultAgentSourcing.sh for Heex Agent Environment Source: https://context7_llms This example demonstrates how to create and use the `/opt/heex/defaultAgentSourcing.sh` file. This file, if present, is sourced by the Heex Agent at installation, allowing for direct injection of custom files and environment variables into its runtime environment. ```bash source /opt/ros/custom/MyCustomMsg/setup.bash export CUSTOM_ENV_VARIABLE="myVar" source /some/other/file.sh export OTHER_CUSTOM_ENV_VARIABLE=123456 ``` -------------------------------- ### Install Existing Heex System with Installer Source: https://context7_llms This command uses the downloaded Heex installer to install an existing system on the Heex platform, identified by its system ID and an API key. ```bash ./heex-installer --api-key --system-id ``` -------------------------------- ### Heex Agent Installer Command-Line Options Reference Source: https://context7_llms This section provides a detailed reference for all available command-line options when running the Heex Agent installer. It outlines each option's full name, short form, and a description of its purpose and possible values, enabling users to configure the agent effectively. ```APIDOC Installer Options: --help (-h): Show this help message and exit. --mode (-m): Set the Agent mode. Possibilities are `upload-only` (u), `no-connectivity` (n), or `limited-connectivity` (l). --interactive (-i): Enable interactive mode during installation. --execution (-x): Set the execution mode to either `background` for background process or `service`. Default will be `service` if environment allows it, else `background`. --uninstall (-u): Uninstall. ``` -------------------------------- ### Run Heex Agent Setup Script with API Key Source: https://context7_llms Command to execute the downloaded Heex Agent setup script, requiring a user-specific API key for authentication. This step initiates the agent setup, connects it to the 'AMR - Sample Mobile Robot' system, and launches a speed signal controller for event generation. ```bash ./autoGetStarted.sh -k ``` -------------------------------- ### Get detailed help for Heex CLI subcommands Source: https://context7_llms These commands provide specific help and usage information for individual Heex CLI subcommands. Appending `--help` to any subcommand reveals its parameters, options, and examples, aiding in detailed usage. ```bash ./heex agent --help ./heex completion --help ./heex datasource --help ./heex events --help ./heex implementation --help ./heex quotas --help ./heex recordings --help ./heex sdk --help ./heex signal --help ./heex system --help ./heex trigger --help ./heex update --help ./heex workspace --help ``` -------------------------------- ### Launch and Connect to Ubuntu VM with ROS2 using Multipass Source: https://context7_llms This snippet provides commands to launch an Ubuntu VM with ROS2 Jazzy pre-installed using Multipass and then connect to it. This is useful for setting up the required environment if you don't have Ubuntu with ROS2 installed locally, streamlining the initial setup process. ```bash multipass launch ros2-jazzy --name heex-demo multipass shell heex-demo ``` -------------------------------- ### Build Heex SDK Samples using CLI Source: https://context7_llms This command builds samples located in the `get-started` or `samples` folders of the Heex SDK using the command-line interface. It's a quick way to compile pre-defined examples. ```bash ./heex sdk build-samples ``` -------------------------------- ### Create New Heex System with Installer Source: https://context7_llms This command uses the downloaded Heex installer to create a new system on the Heex platform, specifying an API key, a display name, and a system category. ```bash ./heex-installer --api-key --name --system-category ``` -------------------------------- ### Manually install Heex Agent on production system Source: https://context7_llms This command executes the generated Heex Agent installer directly on the production system. It initiates the deployment of the Heex Kernel and included custom implementations, installing them as services or background processes. Optional arguments can be appended to the command by separating them with `--`. ```bash ./Agent____installer -- ``` -------------------------------- ### Configure Heex Agent Environment with agentSetupHeader.sh Template Source: https://context7_llms This Bash script template, `additionalAgentContent/agentSetupHeader.sh`, is used to define specific files to be sourced and environment variables to be exported within the Heex Agent's environment. It allows for pre-launch setup, including options to disable automatic ROS installation search and control local environment sourcing. ```bash #!/bin/bash ################################################################## ## specific files to source in the Heex Agent bash environments ## ################################################################## ## Replace the commented lines in the following FILES_TO_SOURCE_IN_HEEX_AGENT_ENV variable to source ## specific files inside the Heex Agent environment 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_HEEX_AGENT_ENV=( # "path/to/file1.sh" # "path/to/file2.bash" # ... ) # it needs to be kept as a list ################################################################## ########### specific Heex Agent installer variables ############## ################################################################## ## Following variable is for ROS environment only. If you set this to 1, the Heex Agent ## Installer shall not look for any installed ROS distribution inside the /opt/ros folder and ## will not source them in the Heex Agent environment. By doing so, you will need to explicitly ## add the path to your ROS distribution's installation inside the FILES_TO_SOURCE_IN_HEEX_AGENT_ENV ## variable mentionned above. DISABLE_AUTOMATIC_ROS_INSTALL_SEARCH=0 ## By default, when you install our Heex Agent, we include all user's environment variables available. ## If you set the following variable to 1, we will not include them and leave it to the system env only. ## NOTE: if you run in background process, the env is not contained so the user's env is automatically sourced DISABLE_SOURCING_OF_LOCAL_ENVIRONMENT=0 ## Whether you disable the local environment sourcing or not, you may want to add environment variables ## into the Heex Agent's environement. You may add any variable in the following list. Please make sure ## you follow the 'env="value"' format as shown below. VARIABLES_TO_EXPORT_IN_HEEX_AGENT_ENV=( 'HEEX_AGENT_ENV_VAR="VALUE1"' 'ANOTHER_ENV_VAR=123456' ) # it needs to be kept as a list ################################################################## ################################################################## ``` -------------------------------- ### Heex Installer Command Line Options Source: https://context7_llms This section details the command-line options available for the Heex installer, including mandatory and optional parameters for system identification, API key, execution mode, system name, middleware, and category. ```APIDOC Heex Installer Command Line Options: --help, -h: Show this help message and exit. --system-id, -si: [optional] System Identification Number. If not given, you will create a new system. --api-key, -k: [mandatory] User secret API key. --execution-mode, -x: [optional] Execution mode: `background` or `service` (defaults to `service`). --name, -n: [mandatory if no system_id provided] System display name (name of your system in the UI). --system-middleware, -mid: [optional] System middleware: value should be an integer. You can use `./heex-installer --help` to list all the available middlewares. --system-category, -cat: [mandatory if no system_id provided] System category: value should be an integer. Example for RAIL: `--system-category 5`. You can use `./heex-installer --help` to list all available categories. ``` -------------------------------- ### Verify Docker Installation and Status Source: https://context7_llms This snippet provides commands to check if Docker is installed and running on your system. It uses `docker --version` to display the installed Docker version and `docker ps` to list running containers, confirming Docker's operational status. ```bash docker --version docker ps ``` -------------------------------- ### Heex CLI Help Commands Source: https://context7_llms These commands provide help documentation for various Heex CLI `datasource` subcommands. Users can get general help for `datasource` or specific help for `add`, `create`, `create-template-file`, `get`, `list`, `update`, and `delete` operations to understand their usage and available flags. ```bash ./heex datasource --help ./heex datasource add --help ./heex datasource create --help ./heex datasource create-template-file --help ./heex datasource get --help ./heex datasource list --help ./heex datasource update --help ./heex datasource delete --help ``` -------------------------------- ### Execute Heex RDA System Setup Script Source: https://context7_llms This command executes the downloaded Heex RDA setup script (basic or advanced) using your API key. The script automates the creation of a new system, transforms a ROS bag into a Heex datasource, and creates a trigger. You can also check the help for more options. ```bash ./setup-heex-rda-.sh --api-key YOUR_API_KEY [--no-clean] # Check help for more options ./setup-heex-rda-.sh --help ``` -------------------------------- ### Accessing Heex CLI Help Documentation Source: https://context7_llms These commands provide access to the help documentation for various Heex CLI signal subcommands. Users can get detailed information on how to use specific commands like create, update, get, list, and delete. ```bash ./heex signal --help ./heex signal create --help ./heex signal update --help ./heex signal get --help ./heex signal list --help ./heex signal create-template-file --help ./heex signal delete --help ``` -------------------------------- ### Download Heex Installer Script Source: https://context7_llms This command downloads the Heex installer script using curl, authenticating with a user secret key and making it executable. It dynamically determines the operating system and architecture for the correct installer. ```bash curl --fail -X GET "https://api.app.heex.io/v1/installer/download?operating_system=$(. /etc/os-release && echo ${ID}_${VERSION_ID}_$(uname -m))" \ -H "secret_key: " -o heex-installer && chmod +x heex-installer ``` -------------------------------- ### Display Heex CLI Replay Command Help Source: https://context7_llms This command shows the help documentation for the `heex sdk replay` command. It provides a comprehensive list of all available options, parameters, and usage examples for the ROS bag replay functionality. ```bash ./heex sdk replay --help ``` -------------------------------- ### Accessing Help for Heex Agent CLI Commands Source: https://context7_llms Shows various commands to retrieve help documentation for the Heex Agent CLI, including general help for the agent command and specific help for its subcommands like package, upload, install, and uninstall. ```bash ./heex agent --help ./heex agent package --help ./heex agent upload --help ./heex agent install --help ./heex agent uninstall --help ``` -------------------------------- ### Upload Heex Agent Installer for Over-The-Air Update Source: https://context7_llms This command is used to upload a new Heex Agent installer, facilitating over-the-air updates for deployed systems. It requires an API key for authentication, the path to the system configuration file, and the path to the SDK folder containing the new implementations. ```bash ./heex agent upload --api-key --config-path path/to/your/systemConf.json --path-to-sdk /path/to/sdk/folder ``` -------------------------------- ### Get Heex SDK Command-Line Help Source: https://context7_llms These commands display the help documentation for various Heex SDK subcommands, providing detailed information on their usage, available flags, and options. This is useful for understanding specific command functionalities and troubleshooting. ```bash ./heex sdk --help ./heex sdk download --help ./heex sdk build-samples --help ./heex sdk generate-implementations-file --help ./heex sdk run --help ./heex sdk set-system --help ./heex sdk replay --help ``` -------------------------------- ### Getting Help for Heex CLI Authentication and Userconfig Commands Source: https://context7_llms Commands to display help information for various Heex CLI authentication and user configuration subcommands, providing details on usage and available options. ```bash ./heex login --help ./heex login --help ./heex userconfig --help ./heex userconfig use --help ./heex userconfig list --help ./heex userconfig create --help ./heex userconfig delete --help ``` -------------------------------- ### Generate Heex Agent installer using HeexCLI Source: https://context7_llms This command utilizes the Heex CLI to create the Heex Agent installer package. It requires specifying the full path to the `systemConf.json` file of the target production system and the root directory of the Heex SDK. This process bundles the Kernel, custom implementations, and configuration into a deployable installer. ```bash ./heex agent package --config-path /systemConf.json --path-to-sdk /path/to/sdk/folder ``` -------------------------------- ### Download Heex Agent Auto-Setup Script Source: https://context7_llms Command to securely download the Heex Agent auto-setup script from a public S3 bucket and make it executable. This script streamlines the installation and configuration process for the Heex Agent on your system. ```bash curl --fail -X GET "https://heex-public-bucket.s3.eu-central-1.amazonaws.com/get-started-scripts/autoGetStarted.sh" -o autoGetStarted.sh && chmod +x autoGetStarted.sh ``` -------------------------------- ### Heex CLI: Get Help for Workspace Commands Source: https://context7_llms These commands provide access to the help documentation for various `heex workspace` subcommands, offering details on their usage, options, and arguments. ```bash ./heex workspace --help ``` ```bash ./heex workspace get-storage --help ``` ```bash ./heex workspace set-storage --help ``` -------------------------------- ### Example JSON for Heex Trigger with Conditions Source: https://context7_llms An example JSON structure demonstrating how to define a trigger with labels, monitoring signal conditions, and recording signal conditions. This file serves as an input for creating or updating triggers via the `--input-file` flag, allowing for complex trigger definitions. ```json { "labels": [ { "key": "TestKey", "value": "TestValue" } ], "monitoring_signal_conditions": [ { "value": { "string": "test" }, "signal_id": "si-xxxxxxxxxxxx", "operator": "CONTAIN", "unit": "METER" } ], "recording_signal_conditions": [ { "signal_id": "si-xxxxxxxxxxxx" } ], "name": "TriggerTestWithFile", "priority": 1, "description": "TriggerTestWithFile" } ``` -------------------------------- ### Accessing Heex CLI Help Documentation Source: https://context7_llms These commands provide help information for various Heex CLI event-related functionalities, including general event commands, specific 'get' command help, and 'list' command help. ```bash ./heex events --help ``` ```bash ./heex events get --help ``` ```bash ./heex events list --help ``` -------------------------------- ### Display Heex CLI Help Information Source: https://context7_llms These commands display help messages for the main Heex CLI and its specific subcommands like 'recordings get', 'recordings list', 'recordings download', and 'recordings delete'. ```bash ./heex --help ./heex recordings get --help ./heex recordings list --help ./heex recordings download --help ./heex recordings delete --help ``` -------------------------------- ### HeexSDK ISO 8601 Timestamp Format Example Source: https://context7_llms An example of the ISO 8601-1:2019 timestamp format favored by HeexSDK, including microseconds and UTC+0 indicator. ```text 2021-07-07T13:54:05.123456Z ``` -------------------------------- ### Heex SDK Root Folder and File Components Overview Source: https://context7_llms Provides an overview of the main root folders and files within the Heex SDK, detailing their purpose and content. This structure helps developers understand where to find or place specific files for agent content, get-started examples, implementations, includes, kernel binaries, samples, and pre-compiled libraries. ```APIDOC Root Folder / File: additionalAgentContent: Contains any additional files used by the Agent and the implementations. get-started: Folder contains the get-started implementation examples used for the Quick Start. implementations: It is the location to put your built implementations. include: It contains all the include files necessary to build the implementations. kernel: It contains already compiled binaries. samples: Folder contains from simple to more complex ready-to-use variants of those implementations to match the different scenarios of condition monitoring and smart data extraction. They also aim to demonstrate how Heex SDK most advanced features can be used to gain in modularity and scalability. lib: It contains the pre-compiled HeexSdk libraries. ``` -------------------------------- ### Heex CLI: Get Help for Trigger Commands Source: https://context7_llms These commands provide access to the help documentation for various `heex trigger` subcommands, offering details on their usage, options, and arguments. ```bash ./heex trigger --help ``` ```bash ./heex trigger get --help ``` ```bash ./heex trigger list --help ``` ```bash ./heex trigger update --help ``` ```bash ./heex trigger create --help ``` ```bash ./heex trigger create-template-file --help ``` ```bash ./heex trigger delete --help ``` ```bash ./heex trigger deploy --help ``` ```bash ./heex trigger linked --help ``` ```bash ./heex trigger candidates --help ``` -------------------------------- ### Getting Help for Heex CLI Completion Command Source: https://context7_llms Command to display help information for the Heex CLI completion utility, detailing its usage and options. ```bash ./heex completion --help ``` -------------------------------- ### Integrate Heex SDK with ROS2 Middleware Source: https://context7_llms Example of recommended SDK usage for a ROS2 package implementing Heex Monitors and Recorders. It integrates monitoring and recording logic with the ROS2 middleware. ```ROS2 Conceptual ROS2 package structure for Heex SDK integration: - ROS2 package setup. - Heex Monitor/Recorder implementation interfacing with ROS2 topics/services. ``` -------------------------------- ### Replay Heex SDK Bag and Watch Events Source: https://context7_llms This command pulls a Docker image, installs the latest Agent, and plays a bag file to watch events in real time for a specified system. It requires an API key and system ID, with optional flags for bag path, OS version, and architecture type. ```bash /heex sdk replay --api-key --system-id ``` -------------------------------- ### Example JSON Template for Multiple Signal Creation Source: https://context7_llms This JSON structure demonstrates the format required for creating multiple signals from a file. Each signal object within the 'signals' array must include 'name', 'type', and 'datasource_id'. Optional fields like 'ros_topic_type' and 'unit' can also be included. ```json { "signals": [ { "name": "CreateSignalWithFile1", "type": "BOOLEAN", "datasource_id": "d-xxxxxxxx" }, { "name": "CreateSignalWithFile2", "type": "STRING", "ros_topic_type": "", "datasource_id": "d-xxxxxx", "unit": "METER" } ] } ``` -------------------------------- ### Run Heex SDK Agent with API Key Source: https://context7_llms This command launches the Heex agent, enabling it to start processing events. It requires the path to the Heex SDK and the user's secret API key for authentication and operation. ```bash ./heex sdk run --path-to-sdk --api-key ``` -------------------------------- ### Get Help for Heex CLI Update Command Source: https://context7_llms This command displays the help documentation for the Heex CLI update utility. It provides information on available options and arguments for the `update` command. ```bash ./heex update --help ``` -------------------------------- ### Heex CLI: System Update Configuration File Example Source: https://context7_llms This JSON snippet shows the structure of a system update configuration file. It includes fields for triggers, signals, data sources, and connectivity mode, allowing selective updates to a system. Users can remove fields not needed for their specific update. ```json { "triggers": [ { "trigger_id": "", "status": 0 } ], "signals": [ { "signal_id": "", "condition_type": 0, "status": 0, "implementation_id": "" } ], "data_sources_ids": [], "connectivity_mode": 0 } ``` -------------------------------- ### Set Up Heex CLI Autocompletion Source: https://context7_llms Command to generate and install the autocompletion script for the Heex CLI. This script supports bash, sh, zsh, and fish shells, requiring a shell restart or sourcing the script to apply. ```bash ./heex completion ``` -------------------------------- ### Implement Configurable Heex Monitor with Configuration Change Callback Source: https://context7_llms Illustrates creating a Configurable-by-Value Monitor that overrides `onConfigurationChangedCallback` to execute custom logic during reconfiguration (including initial setup). The sample prints Value Configurations and Constant Values upon change, and continuously updates with random boolean values. ```C++ Conceptual C++ implementation of an advanced Heex monitor: - Inherit from `Monitor`. - Override `onConfigurationChangedCallback` to access/print configurations. - Loop to update with random boolean values. ``` ```Python Conceptual Python implementation of an advanced Heex monitor: - Inherit from `Monitor`. - Override `onConfigurationChangedCallback` to access/print configurations. - Loop to update with random boolean values. ``` -------------------------------- ### Heex CLI: Get Help for Quotas Command Source: https://context7_llms This command displays the help documentation for the 'heex quotas' command, detailing its options and usage. It provides information on how to retrieve quota details for an organization. ```bash ./heex quotas --help ``` -------------------------------- ### Formatting Dates with GNU CoreUtils date Command Source: https://en.wikipedia.org/wiki/ISO_8601 Demonstrates various date and time formatting options using the GNU CoreUtils `date` command, including ISO 8601, RFC 3339, and custom formats with nanosecond precision and UTC. These examples show how to generate standard-compliant timestamps directly from the command line. ```Bash $ date --iso-8601=ns 2025-02-16T12:03:17,646296349+01:00 ``` ```Bash $ date -u --rfc-3339=ns 2025-02-16 10:58:44.966864492+00:00 ``` ```Bash $ date -u +"%Y-%m-%dT%H:%M:%S.%6NZ" 2025-02-16T10:58:44.965071Z ``` -------------------------------- ### Run Heex SDK with Implementations Source: https://context7_llms This command first generates the `implementations.json` file and then launches the Heex SDK. It requires the path to the SDK and a user API key for operation. ```bash /heex sdk run --path-to-sdk --api-key ``` -------------------------------- ### Heex CLI Events Subcommand Usage Source: https://context7_llms This section outlines the general usage and available subcommands for managing events with the Heex CLI. It provides a high-level overview of `get`, `list`, and `delete` operations for events, requiring a Heex CLI setup and an API key. ```bash ./heex events SUBCOMMAND [--help] ``` -------------------------------- ### Copy custom implementations for Heex Agent packaging Source: https://context7_llms This step prepares custom monitor and recorder executables for inclusion in the Heex Agent. It involves navigating to the C++ get-started folder within the Heex SDK and copying the compiled binaries (`GetStartedMonitor`, `GetStartedRecorder`) into the SDK's `/implementations` directory, which is a prerequisite for the packaging process. ```bash cd ~/Heex_SDK_version/get-started/cpp cp GetStartedMonitor ../../implementations cp GetStartedRecorder ../../implementations ``` -------------------------------- ### Build Heex SDK Samples (CLI) Source: https://context7_llms Builds the Heex SDK samples using the Heex CLI. This command should be run from the root SDK directory after downloading the SDK. ```bash ./heex sdk build-samples ``` -------------------------------- ### Set Up Heex SDK System Credentials Source: https://context7_llms This command defines system credentials and downloads the `systemConf.json` file to the default path. It requires the system ID, SDK path, and API key for authentication and configuration. ```bash ./heex sdk set-system --system-id --path-to-sdk --api-key ``` -------------------------------- ### Heex Monitor Instantiation and Kernel Connection Source: https://context7_llms These snippets demonstrate how to instantiate a `Monitor` object and establish a connection with the Heex Kernel using `awaitReady()`. The constructor requires a monitor ID, IP address, and port. `awaitReady()` ensures the monitor is ready to receive data, and the program should handle connection failures. ```C++ Monitor myMonitor("1a7453c0-ef64-4290-a9c3-5019e8bb43fa", "127.0.0.1", 4242); if (myMonitor.awaitReady() == false) // awaits the connection with the kernel. { return EXIT_FAILURE; } ``` ```Python my_monitor = Monitor("m-1a7453c0-ef64-4290-a9c3-5019e8bb43fa", "127.0.0.1", 4242) if not my_monitor.awaitReady(): print("Monitor is not ready.") exit(1) ``` -------------------------------- ### Create Heex Implementation from Configuration File Source: https://context7_llms This command creates a new implementation using a pre-filled configuration file. A template file can be generated first using `./heex implementation create-template-file`. Once filled, use the create subcommand with the `--input-file` option pointing to the file. An API key is required. ```bash ./heex implementation create --api-key --input-file path/to/your/filledConfigFile.json ``` -------------------------------- ### Create Heex Data Source by Name and Description (Bash) Source: https://context7_llms Demonstrates how to create a new Heex data source by directly specifying its name and an optional description using the `heex datasource create` command. Requires an API key for authentication. ```bash ./heex datasource create --api-key --datasource-name "My Data Source" --description "This is my data source" ``` -------------------------------- ### Verify Heex Implementation Executables Source: https://context7_llms These commands are used to check for the presence of compiled Heex implementation executables in the specified `get-started/cpp` directory. This helps confirm a successful build process. ```bash ls /path/to/Heex_SDK_/get-started/cpp/GetStartedMonitor ls /path/to/Heex_SDK_/get-started/cpp/GetStartedRecorder ``` -------------------------------- ### Launch Heex Kernel in SDK Mode Source: https://context7_llms This command navigates to the Heex SDK kernel directory and launches the Heex Orchestrator. It uses a specified system configuration file to initialize the Heex Kernel, enabling the SDK mode for running implementations. The configuration file path is optional if your 'systemConf.json' is located inside 'kernel/systemConfs'. ```bash cd ~/Heex_SDK_/kernel ./heexOrchestrator --config path/to/system_conf.json ``` -------------------------------- ### Configure Heex SDK System ID and API Key Source: https://context7_llms This command initializes the Heex SDK by associating a system ID, specifying the SDK path, and providing the user's secret API key. It is a prerequisite for launching the Heex agent and connecting it to a specific system. ```bash ./heex sdk set-system --system-id --path-to-sdk --api-key ``` -------------------------------- ### Implement Basic Heex Monitor Source: https://context7_llms Demonstrates creating a basic Heex monitor instance, waiting for kernel connection using `awaitReady()`, and updating values with `updateValue` and `updateValueBySignalName` templates. Samples are available in C++ and Python. ```C++ Conceptual C++ implementation of a basic Heex monitor: - Instantiate monitor. - Call `awaitReady()`. - Use `updateValue` and `updateValueBySignalName` for various types. ``` ```Python Conceptual Python implementation of a basic Heex monitor: - Instantiate monitor. - Call `awaitReady()`. - Use `updateValue` and `updateValueBySignalName` for various types. ``` -------------------------------- ### ISO 8601 Time Interval Format Examples Source: https://en.wikipedia.org/wiki/ISO_8601 Demonstrates the four standard ways to express time intervals in ISO 8601: start/end, start/duration, duration/end, and duration only. Includes examples of how duration ambiguity is resolved within intervals and shows concise representations for common scenarios. ```ISO 8601 interval 2003-02-15T00:00:00Z/P2M ``` ```ISO 8601 interval 2003-07-15T00:00:00Z/P2M ``` ```ISO 8601 / ``` ```ISO 8601 / ``` ```ISO 8601 / ``` ```ISO 8601 ``` ```ISO 8601 2007-03-01T13:00:00Z/2008-05-11T15:30:00Z ``` ```ISO 8601 2007-03-01T13:00:00Z/P1Y2M10DT2H30M ``` ```ISO 8601 P1Y2M10DT2H30M/2008-05-11T15:30:00Z ``` ```ISO 8601 P1Y2M10DT2H30M ``` ```ISO 8601 2007-12-14T13:30/15:30 ``` ```ISO 8601 2008-02-15/03-14 ``` ```ISO 8601 2007-11-13/15 ``` ```ISO 8601 2007-11-13T09:00/15T17:00 ``` ```ISO 8601 2007-11-13T00:00/16T00:00 ``` -------------------------------- ### Install Heex Agent with background execution mode Source: https://context7_llms This command is a variation of the manual installation, specifically configuring the Heex Agent to run its implementations as background processes rather than user services. This mode is useful when `systemctl` is unavailable or if automatic re-running after system reboots is not desired, as background processes do not automatically restart. ```bash ./Agent____installer -- --execution-mode background ``` -------------------------------- ### ISO 8601 Date and Time Format Examples Source: https://en.wikipedia.org/wiki/ISO_8601 Illustrates various date and time representations according to the ISO 8601 international standard. These examples demonstrate the precise string formats for different temporal expressions, including UTC, time zone offsets, week dates, and ordinal dates. ```APIDOC Date in UTC: 2025-06-20 Time in UTC: 15:19:01Z T151901Z Date and time in UTC: 2025-06-20T15:19:01Z 20250620T151901Z Date and time with the offset: 2025-06-20T03:19:01−12:00 UTC−12:00 2025-06-20T15:19:01+00:00 UTC+00:00 2025-06-21T03:19:01+12:00 UTC+12:00 Week: 2025-W25 Week with weekday: 2025-W25-5 Ordinal date: 2025‐171 ``` -------------------------------- ### Recorder: Get Recorder Signals Method Source: https://context7_llms Returns a collection of RecordingSignals associated with the current recorder, allowing for optional filtering by trigger ID. ```C++ std::unordered_set getRecorderSignals(const std::string& triggerId = "") const; ``` ```Python def getRecorderSignals(triggerId: str = "") -> list ``` -------------------------------- ### Update Heex CLI to the latest version Source: https://context7_llms This command updates an existing Heex CLI installation to its latest version. It requires an API key for authentication to perform the update operation. ```bash ./heex update --api-key ``` -------------------------------- ### Heex CLI: Create System from Configuration File Source: https://context7_llms This command creates a new system on the Heex Cloud by providing a configuration file. The file can be generated using `create-template-file` and must contain `name` and `type` fields. An API key is required for authentication. ```bash ./heex system create --api-key --input-file /path/to/your/createSystemFilled.json ``` -------------------------------- ### Recorder: Get Signal Recording Range Method Source: https://context7_llms Retrieves the minimum and maximum recording ranges for a specific signal, with optional filtering capabilities by trigger ID and signal name. ```C++ std::pair getSignalRecordingRange(const std::string triggerId = "", const std::string signalName = "") const; ``` ```Python def getSignalRecordingRange(triggerId: str = "", signalName: str = "") -> tuple ``` -------------------------------- ### Create Heex Implementation by Name and Description Source: https://context7_llms This command creates a new implementation on the Heex Cloud using a unique name and an optional description. An API key is required. The created implementation can be further accessed and modified via the cloud platform. ```bash ./heex implementation create --api-key --name "Jane's implementation" --description "Optional description" ``` -------------------------------- ### Heex CLI Implementation Subcommands Overview Source: https://context7_llms This section provides an overview of the available subcommands for managing implementations via the Heex CLI, including their descriptions and the general usage pattern for calling implementation commands. ```APIDOC Subcommand | Description -------------------- | ---------------------------------------------------------------------------------- get | Retrieve implementation details with a given ID. list | Retrieve implementations based on optional filters. create | Create a new implementation on the cloud. create-template-file | Advanced usage: creates a template file for implementation creation configuration. update | Update existing implementation for a given id. delete | Delete an implementaion with a given ID. Usage: ./heex implementation SUBCOMMAND [--help] ``` -------------------------------- ### Build Heex SDK C++ Samples Source: https://context7_llms This command compiles the C++ samples included in the Heex SDK. It supports parallel jobs for faster operations and allows specifying the SDK path. MCAP samples are disabled by default and require manual activation in `samples/CMakeLists.txt`. ```bash ./heex sdk build-samples ``` -------------------------------- ### Change System Connectivity Mode (Heex CLI) Source: https://context7_llms This command allows changing the connectivity mode of a specified system. All options provided in the example, including API key, system ID, and mode, are mandatory for this operation. ```bash ./heex system connectivity --api-key --system-id --mode ``` -------------------------------- ### Implement Basic Heex Recorder Source: https://context7_llms Demonstrates creating a basic Heex Recorder that provides a 'position' label and generates an event recording file with timestamps. It initializes, connects to Core with an ID, exposes labels and event recording, and runs until SIGKILL. ```C++ Conceptual C++ implementation of a basic Heex recorder: - Initialize recorder. - Connect to Core with ID. - Expose 'position' label and event recording part generation. - Run until SIGKILL. ``` ```Python Conceptual Python implementation of a basic Heex recorder: - Initialize recorder. - Connect to Core with ID. - Expose 'position' label and event recording part generation. - Run until SIGKILL. ``` -------------------------------- ### Download Heex SDK using CLI Source: https://context7_llms Downloads the Heex Software Development Kit (SDK) using the previously downloaded Heex CLI. This command requires an API key and automatically unzips the downloaded SDK into the current directory. ```bash ./heex sdk download --api-key --unzip ``` -------------------------------- ### Heex CLI: Get Workspace Storage Information Source: https://context7_llms This command retrieves detailed storage configuration for the current workspace, including cloud provider, region, path, and name. It requires the user's secret API key. ```bash ./heex workspace get-storage --api-key ``` ```APIDOC Options: -k, --api-key: Your user secret key (required) Example Output 1: { "key": "AKIA5Fxxxxxxxxxxxxxxxxxxx", "name": "my_custom_bucket", "path": "recording", "provider": "BucketProviderS3", "region": "eu-central-1", "secret": "xxxxxxxxxxxxxxxxxxx+I859/xxxxxxxxxxxxxxxx" } Example Output 2: You are currently using the default storage system. ``` ```bash ❯ ./heex workspace get-storage --api-key xx-xxxxxxxxxxxxxxxxxxxxxxxxxxxx-1 [get_storage][INFO] { "key": "AKIA5Fxxxxxxxxxxxxxxxxxxx", "name": "my_custom_bucket", "path": "recording", "provider": "BucketProviderS3", "region": "eu-central-1", "secret": "xxxxxxxxxxxxxxxxxxx+I859/xxxxxxxxxxxxxxxx" } ``` ```bash ❯ ./heex workspace get-storage --api-key xx-xxxxxxxxxxxxxxxxxxxxxxxxxxxx-2 [get_storage][INFO] You are currently using the default storage system. ``` -------------------------------- ### Heex FAQ: SDK Development (APIDOC) Source: https://context7_llms Helpful information for developers building applications with the Heex SDK, covering SDK integration, differences between custom and pre-built implementations, RDA utilities, and logging issues. ```APIDOC FAQ - Development: Q: How do I start using the SDK? A: Explore SDK Overview, then follow Integration steps. Q: What's the difference between custom and pre-built implementations? A: Pre-built (e.g., BooleanMonitor) are ready-to-use; custom allows tailored design. Q: Where do I find RDA utilities? A: In the Heex SDK under RDA. Q: Why are my logs empty? A: Misconfiguration in logging settings or no events triggering log entries. Verify log level and trigger configuration. ``` -------------------------------- ### Heex CLI: Retrieve System Configuration Source: https://context7_llms This command retrieves the configuration details for a given system ID. It functions similarly to the `get` command, allowing the output to be saved to a file. An API key and system ID are required. ```bash ./heex system get-sys-conf --api-key --system-id --output-file path/to/your/sysConf.json ``` -------------------------------- ### Heex CLI System Subcommands Overview (APIDOC) Source: https://context7_llms This table provides an overview of available subcommands for the Heex CLI 'system' command, along with a brief description of each functionality. It serves as a reference for managing systems on the cloud. ```APIDOC Subcommand: add-credentials Description: Add a system's secret key to the credentials file. Subcommand: connectivity Description: Change the connectivity mode of a system. Subcommand: create Description: Create a new system on the cloud. Subcommand: create-template-file Description: Advanced usage: creates a template file for system creation configuration. Subcommand: get Description: Retrieve system details for a given ID. Subcommand: get-sys-conf Description: Retrieve system configuration for a given ID. Subcommand: list Description: List all systems. Subcommand: status Description: Provides the status of the system. Subcommand: todo-list Description: Provides systems todo list for a given workspace. Subcommand: update Description: Update a system on the cloud. Subcommand: delete Description: Delete a system with a given ID. ``` -------------------------------- ### Heex CLI: Get Candidate Systems for Trigger Deployment Source: https://context7_llms This command identifies systems where a specific trigger can be deployed, aiding in compatibility verification before deploying. It requires an API key and trigger ID, with an option to save the results to a file. ```bash ./heex trigger candidates --api-key --trigger-id --output-file ``` ```APIDOC Flags: --api-key: Provide your USER_SECRET_KEY [required]. --trigger-id: ID of the trigger to check for compatible systems [required]. --output-file: Filepath where the result will be saved (JSON format recommended). ``` -------------------------------- ### Call Recorder Class Constructor Source: https://context7_llms Demonstrates how to call the `Recorder` class's constructor, providing an ID, server IP, and server port. The Python version also includes a version parameter. ```cpp Recorder(const std::string& id, const std::string& serverIp, const unsigned int& serverPort) ``` ```python super().__init__(self, id, server_ip, server_port, "1.0.0") // Where "1.0.0" is the version ``` -------------------------------- ### Upload Heex Agent to Cloud Source: https://context7_llms Demonstrates how to upload a packaged Heex Agent to the Heex Cloud. This command requires an API key, specifies the path to the SDK folder, and can include a system configuration file for targeted deployment to a specific system. ```bash ./heex agent upload --api-key --path-to-sdk /path/to/sdk/folder --config-path path/to/systremConf.json ``` -------------------------------- ### ISO 8601 Repeating Interval Formats Source: https://en.wikipedia.org/wiki/ISO_8601 Describes the syntax for specifying repeating time intervals according to ISO 8601, including unbounded repetitions and specific repetition counts. Examples illustrate how to combine the repetition prefix with interval expressions. ```ISO 8601 Format Rn/ R/ R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M ``` -------------------------------- ### Multipass Command-Line Interface (CLI) Commands Source: https://multipass.run/docs This section provides a reference for the core commands available in the Multipass command-line interface. These commands allow users to manage virtual machine instances, including operations like creating, deleting, cloning, executing commands within instances, and retrieving instance information. ```APIDOC Multipass CLI Commands: - alias - aliases - authenticate - clone - delete - exec - find - get ``` -------------------------------- ### Heex CLI: Get Triggers Linked to a System Source: https://context7_llms This command retrieves a list of triggers currently associated with a specified system. It requires an API key and system ID. Users can optionally save the output to a file or request detailed information about the linked triggers. ```bash ./heex trigger linked --api-key --system-id --output-file --details ``` ```APIDOC Flags: --api-key: Provide your USER_SECRET_KEY [required]. --system-id: ID of the system to retrieve linked triggers for [required]. --output-file: Filepath where the result will be saved (JSON format). --details: If specified, shows detailed information (ID, status, etc.). If not, only trigger IDs are displayed. ``` -------------------------------- ### Get Signal Details using Heex CLI Source: https://context7_llms This command retrieves the detailed information for a specific signal by its ID. It requires a signal ID and an API key, and optionally allows saving the output to a file. This is useful for inspecting or preparing to modify an existing signal. ```bash ./heex signal get --signal-id --api-key --output-file ``` -------------------------------- ### APIDOC: Developer Implementation Statuses Source: https://context7_llms This documentation describes the two primary statuses for implementations from a developer's perspective, indicating whether development is pending or complete and ready for deployment. ```APIDOC DeveloperImplementationStatus: Requested: string description: The implementation has been requested by others but has not yet been developed. Ready: string description: Development is complete and the binary file is ready for deployment (or has already been deployed) on the target system(s). This status requires manual update. ``` -------------------------------- ### ISO 8601 Current Calendar Date Formats Source: https://en.wikipedia.org/wiki/ISO_8601 Specifies the current standard calendar date formats in ISO 8601, including full dates in extended (YYYY-MM-DD) and basic (YYYYMMDD) formats, and reduced precision for year and month (YYYY-MM). Examples illustrate usage. ```APIDOC YYYY-MM-DD ``` ```APIDOC YYYYMMDD ``` ```APIDOC YYYY-MM ``` ```APIDOC 1981-04-05 ``` ```APIDOC 19810405 ``` ```APIDOC 1981-04 ``` ```APIDOC 1981 ``` ```APIDOC 198 ``` ```APIDOC 19 ``` ```APIDOC 2000-01-07 ``` ```APIDOC 20000107 ``` -------------------------------- ### Deprecated ISO 8601 Truncated Date/Time Formats (ISO 8601:2000) Source: https://en.wikipedia.org/wiki/ISO_8601 Details various truncated date and time representations that were allowed in ISO 8601:2000 but have since been removed. These formats omit leading components and can be ambiguous. Includes examples for specific dates, years, months, and days. ```ISO 8601 Format Specification Type Basic format Basic example Extended format Extended example A specific date in the implied century YYMMDD 851026 YY-MM-DD 85-10-26 A specific year and month in the implied century -YYMM -8510 -YY-MM -85-10 A specific year in the implied century -YY -85 — — A specific day of a month in the implied year --MMDD --1026 --MM-DD --10-26 A specific month in the implied year --MM --10 — — A specific day in the implied month ---DD ---26 — — A specific year and ordinal day in the implied century YYDDD 85299 YY-DDD 85-299 A specific ordinal day in the implied year -DDD -299 — — A specific year and week in the implied decade -YWww -5W43 -Y-Www -5-W43 A specific week and day in the implied year -WwwD -W436 -Www-D -W43-6 A specific day in the implied week -W-D -W-6 — — A specific minute and second of the implied hour -mmss -3456 -mm:ss -34:56 A specific second of the implied minute -ss -56 — — A specific minute and decimal fraction of the implied hour -mm,m -34,9 — — ``` -------------------------------- ### Login to Heex CLI with API Key and Userconfig Name Source: https://context7_llms Demonstrates how to perform an initial login to the Heex CLI by providing an API key and a userconfig name. This command creates a new userconfig and sets it as default for future use. ```bash ./heex login --api-key --save-as ``` -------------------------------- ### Heex CLI: Create System by Name Source: https://context7_llms This command creates a new system on the Heex Cloud using a unique name and optional flags for description, middleware, and category. It requires an API key for authentication. The created system can be further modified via the cloud platform. ```bash ./heex system create --api-key --name "Jane's system" --description "Optional description" --system-middleware 1 --system-category 1 ```