Перейти к основному содержимому

Протокол HTTP в Eclipse 4diac

4diac FORTE поддерживает HTTP для отправки данных в REST API, веб-сервисы и облачные платформы.

Применение

✅ Отправка данных телеметрии в REST API ✅ Вызов облачных сервисов (AWS, Azure, Thingsboard REST) ✅ Интеграция с Webhook системами ✅ Простые GET-запросы для получения конфигурации

Компиляция FORTE с HTTP

cmake .. \
-DFORTE_ARCHITECTURE=Posix \
-DFORTE_COM_HTTP=ON
make -j$(nproc)

HTTP GET запрос

         ┌─────────────────────────────────────────┐
INIT ──►│ CLIENT_0 │──► CNF
REQ ──►│ ID = "http://api.example.com/temp" │──► IND
│ │──► RD_1 (ответ)
└─────────────────────────────────────────┘

HTTP POST запрос

         ┌──────────────────────────────────────────────────────┐
INIT ──►│ CLIENT_1 │──► CNF
REQ ──►│ ID = "http://api.example.com/data[POST]" │
│ SD_1 = '{"temperature": 23.5, "humidity": 65}' │──► IND
└──────────────────────────────────────────────────────┘

Формат параметра ID для HTTP

http[s]://hostname[:port]/path[?query][METHOD]

Примеры:

http://192.168.1.100/api/sensor      # GET (по умолчанию)
http://api.example.com/data[POST] # POST
https://secure.api.com/v1[PUT] # PUT через HTTPS

Отправка JSON в Thingsboard

SD_1 = '{"temperature": 23.5}'
ID = "http://demo.thingsboard.io/api/v1/ACCESS_TOKEN/telemetry[POST]"

Ограничения HTTP в FORTE

  • Нет поддержки Headers (авторизация через URL или тело)
  • Нет поддержки chunked transfer encoding
  • Для сложных REST API лучше использовать MQTT или внешний сервис
Альтернатива для REST API

Для полноценной работы с REST API рассмотрите Node-RED как middleware: FORTE → MQTT → Node-RED → REST API

Следующий шаг

EtherNet/IP — промышленный протокол Allen-Bradley.