--- alias: user-guide-automation-protocol-protocols-index tags: - connect iot description: "Documentation details available communication drivers and their associated settings for integration" --- # Communication Drivers Each of the available communication drivers is documented within its own entry. * [BLE (Bluetooth Low Energy)](driver_ble.md) * [CSV](driver_csv.md) * [Database](driver_database.md) * [Factory Automation](driver_factoryautomation.md) * [File Raw](driver_fileraw.md) * [Fuji Nexim](driver_fujinexim.md) * [IPC-CFX](driver_ipccfx.md) * [Keyboard Wedge](driver_keyboardwedge.md) * [MQTT](driver_mqtt.md) * [OIB](driver_oib.md) * [OPC DA](driver_opcda.md) * [OPC UA](driver_opcua.md) * [PanaCIM](driver_panacim.md) * [Rest Client](driver_restclient.md) * [Rest Server](driver_restserver.md) * [Secs/Gem](driver_secsgem.md) * [Serial](driver_serial.md) * [TCP/IP](driver_tcpip.md) Custom communication drivers can also be developed and used. Please refer the Developers Guide for further information. ## Available Data Types The available data types in the system are listed below: * Boolean * String * Decimal * Integer * Long * Object * Password * DateTime * Culture ## Parameters All communication drivers share settings with the same format/meaning: Name | Type | Possible Values | Default Value | Description --- | --- | --- | --- | --- setupTimeout | Integer | | 10000 | Max time for the setup flow (milliseconds) heartbeatInterval | Integer | | 60000 | Interval to trigger an optional heartbeat to validate communication or any other task (milliseconds) intervalBeforeReconnect | Integer | | 5000 | Time to wait between connection attempt (milliseconds) connectingTimeout | Integer | | 30000 | Max time for the connection to be established (milliseconds) Table: Communication driver settings ## Communication States All communication drivers follow this state model: ![communicationState][communicationState] ## Driver/Controller communication The communication the Connect IoT components is done using WebSockets. The intention is to allow customization to override one or more components using the programming language of the choice of the customer. The establish communication is described in the following diagram: ```mermaid sequenceDiagram activate Monitor Monitor->>Manager: Request Create Driver activate Manager Monitor->>Manager: Request Create Controller Manager->>Driver: Create Process activate Driver Manager->>Controller: Create Process activate Controller Driver->>Driver: Create Communication Channel Driver->>Monitor: Connect with Monitor Controller->>Monitor: Connect with Monitor Driver->>Monitor: Notify Communication Channel Details Monitor->>Controller: Notify Driver Communication Details Controller->>Controller: Prepare Workflows Controller->>Driver: Connect with Driver Controller-->>Driver: Exchange communication Data Driver-->>Controller: Exchange communication Data deactivate Driver deactivate Controller deactivate Manager deactivate Monitor ``` [communicationState]: ../images/automation_protocol_communication_states.svg