# Communication

## Introduction

The **Communication Nodes** (**CAN**, **HTTP**, **MAVLink**, **MQTT**, **Serial**, **Socket.IO**, **TCP**, and **UDP**) represent the different messaging protocols and ways of communicating between devices that each one employs.

**Serial**, **Socket.IO**, **TCP**, and **UDP** are available as plugins. For more information, check out the [**Plugins Module**](https://docs.incari.com/incari-studio/2023.1/modules/plugins)

The following guideline explains the specific set-up required to implement **Communication** in **Incari**.

## General Guideline

These are the general guidelines for incorporating **Communication** into a **Project**. This includes how to start a connection, the **Nodes** that can be used and how to use them, as well as how to stop a connection.

* Locate the desired communications protocol in [**Project Settings**](https://docs.incari.com/incari-studio/2023.1/modules/project-settings). Attach all necessary files and data.
* In the **Logic Editor**, use the protocol's **Start Node** to initiate the connection. Separately, use the protocol's **On Start Node** to execute any following **Logic**. This is to make sure the connection is successfully finished being established before doing anything.
* Use any combination of the protocol's **Nodes** to provide **Communication** capabilities to the **Project**. The protocols supported by **Incari** are [**CAN**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/can), [**HTTP**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/http), [**MAVLink**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/mavlink), [**MQTT**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/mqtt), [**Serial**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/serial), [**Socket.IO**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/socketio), [**TCP**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/tcp), and [**UDP**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/udp) communication. For more information on each protocol, visit their respective page.
* To terminate the connection, use the protocol's **Stop Node** to start disconnecting. Separately, use the protocol's **On Stop Node** to execute any following **Logic**. This is to make sure the connection is stopped completely before doing anything.

## Content

* [**CAN**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/can)
* [**HTTP**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/http)
* [**MAVLink**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/mavlink)
* [**MQTT**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/mqtt)
* [**Serial**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/serial)
* [**Socket.IO**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/socketio)
* [**TCP**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/tcp)
* [**UDP**](https://docs.incari.com/incari-studio/2023.1/toolbox/communication/udp)
