# Project Settings

## Overview

The **Project Settings Module** is used to choose and customize settings for different functionalities within **Incari**, such as **Communications**, the **Profiler Module**, *fonts*, or *layouts* for **On-Screen Keyboards**.

{% tabs %}
{% tab title="CAN" %}

#### CAN

![The CAN Settings.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-4f389a6f9865fb3b611a24aef71a214206c7127e%2Fcanreal.png?alt=media)

The **CAN Settings** cover the necessary data to provide functionality to the **CAN Nodes**.

`Interface Name (Linux - SocketCAN)` is the identifying name of the *CAN* Bus. *Virtual CAN* is also possible within **Incari**.

`Baudrate (Windows - PCAN)` is the speed of the communication for the channel. More information about this metric can be found in the **External Links** section.

`Channel Name (Windows - PCAN)` is the USB port that *CAN* is connected to on *Windows*.

A `DBC File` needs to be uploaded and selected. This `DBC File` is a vital part of the **CAN** protocol, as it stores all data regarding the connections between devices.

`Autostart` can be enabled or disabled and dictates when the channel is run (from the beginning of an application's life cycle or when the appropriate **Nodes** are used).
{% endtab %}

{% tab title="Fonts" %}

#### Fonts

![The Project Settings Fonts Attributes.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-700d1c8302bb880cb9a00db8ea2790a48f47d1e1%2Ffontsreal.png?alt=media)

The **Fonts Settings** let the user define different types of *fonts* to add personalized style to texts.

In the **Font Manager**, the user can manage their *fonts*: using the `+` button to add a new one and the `x` to delete all existing *fonts*. Furthermore, each *font* can be individually deleted with the `x` button next to it.

`Family Name` is automatically filled in with the **Font's** name when a **Font** file is chosen. The text can also be edited manually.

`Font Asset` is the **Font** file that is uploaded and selected for use. The **Font** file needs to be in the **Project's** **Asset Folder**.
{% endtab %}

{% tab title="HTTP" %}

#### HTTP

![The Project Settings HTTP Attributes.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-1bbf8781b67cce4996698f1484bddbb1f14df6c2%2Fhttpreal.png?alt=media)

The **HTTP Settings** cover the necessary data to provide functionality to the **HTTP Nodes**.

`Name` is an identifying name of a *HTTP* server chosen at the user's discretion. This will show up in the **Nodes** as a choice for the `Configuration` **Attribute**.

`Is IPv6` can be enabled or disabled. *IPv6* is the newest version of the *Internet Protocol*. More information about *IPv6* can be found in the **External Links** section.

`Local port` is the port the user chooses to use for their *HTTP* server. More information on ports and port forwarding can be found in the **External Links** section.

`Is auto start` can be enabled or disabled and dictates when the server is run (from the beginning of an application's life cycle or when the appropriate **Nodes** are used).
{% endtab %}

{% tab title="Keyboard" %}

#### Keyboard

![The Keyboard Settings.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-a785b2c9ee65af173513cd16d250d7edc1a5614a%2Fkeyboardreal.png?alt=media)

The **Keyboard Settings** let the user define new *layouts* that can then be used for **On-Screen Keyboards**.

In the **Layout Manager**, the user can manage all their custom *layouts*: using the `+` button to add a new one and the `x` to delete all existing custom *layouts*. Furthermore, each *layout* can be individually deleted with the `x` button next to it.

To create a new *layout*, a **Keyboard Layout** **Asset** is necessary. One can be created either in the **Asset Manager** or directly in the **Layout Manager** by clicking on the `Layout Asset` slot. The default for a newly created **Keyboard Layout** **Asset** is the English keyboard, which can be further modified in the **Code Editor**.

The `Layout Name` is also defined in the **Layout Manager**. This is the name with which custom *layouts* defined in the **Layout Manager** will appear in the `Layout` **Attribute** for **On-Screen Keyboards**.
{% endtab %}

{% tab title="MQTT" %}

#### MQTT

![The Project Settings MQTT Attributes.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-7ffc3265b7db4124885faf8309a89835b92b207e%2Fmqttreal.png?alt=media)

The **MQTT Settings** allow to manage the **MQTT Connections** and cover the necessary data to provide functionality to the **MQTT Nodes**.

`Name` is an identifying name of an *MQTT* connection chosen at the user's discretion.

`Is IPv6` can be enabled or disabled. *IPv6* is the newest version of the *Internet Protocol*. More information about *IPv6* can be found in the **External Links** section.

`Remote ip address` is the IP address from which the connection originates.

`Remote port` is the port number of the connection.

`Is auto start` can be enabled or disabled and dictates when the connection is run (from the beginning of an application's life cycle or when the appropriate **Nodes** are used).
{% endtab %}

{% tab title="Profiler" %}

#### Profiler

![The Project Settings Profiler Attributes.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-1d63224bc05da4e4dad559603fff24c851469257%2Fprofilerreal.png?alt=media)

The **Profiler Settings** cover the necessary data to provide functionality to the **Profiler** **Module**.

`Enable` enables or disables the **Profiler**, which can be edited in the **Profiler View Module**.

`Port` is the port number to which the **Profiler Module** has to connect.
{% endtab %}

{% tab title="Serial" %}

#### Serial

![The Project Settings Serial Attributes.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-ec264d70240bf3ab4bf1095b65d4e1f670637bcb%2Fserialreal.png?alt=media)

The **Serial Settings** allow the user to manage the **Serial Connections** and cover the necessary data to provide functionality to the **Serial** **Nodes**.

`Name` is an identifying name of a *Serial* connection chosen at the user's discretion.

`ChannelName (Linux)` is the USB port that a *Serial* set-up is connected to on *Linux*.

`ChannelName (Windows)` is the USB port that a *Serial* set-up is connected to on *Windows*.

Furthermore, the `ChannelNames` can both be specified, in the case that the user's platform is different than the target platform. If there is no difference in platforms, only one `ChannelName` needs to be filled in.

`Baudrate` is the speed of the communication for a channel. More information about this metric can be found in the **External Links** section.
{% endtab %}
{% endtabs %}

## See Also

* [**Communication Nodes**](https://docs.incari.com/incari-studio/2022.1/toolbox/communication)
* [**Profiler View**](https://docs.incari.com/incari-studio/2022.1/modules/profiler-view)

## External Links

* More information on the [*Baud metric*](https://en.wikipedia.org/wiki/Baud).
* More information on [*IPv6*](https://en.wikipedia.org/wiki/IPv6).
* More information on [*ports*](https://en.wikipedia.org/wiki/Port_\(computer_networking\)).
* More information on [*port forwarding*](https://en.wikipedia.org/wiki/Port_forwarding).
