Протокол 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.