RCM — ESP32 Room Controller
WT32-ETH01 firmware
Loading...
Searching...
No Matches
web_server.c File Reference

Минимальный HTTP-сервер: главная страница и REST API статуса. More...

#include "web_server.h"
#include <stdio.h>
#include <string.h>
#include "esp_check.h"
#include "esp_chip_info.h"
#include "esp_http_server.h"
#include "esp_log.h"
#include "esp_netif.h"
#include "esp_system.h"

Go to the source code of this file.

Functions

static esp_err_t root_get_handler (httpd_req_t *req)
 Обработчик GET / — HTML-страница с сетевой информацией.
 
static esp_err_t status_get_handler (httpd_req_t *req)
 Обработчик GET /api/status — JSON со статусом платы и сети.
 
esp_err_t web_server_start (httpd_handle_t *server_out)
 Запускает HTTP-сервер на порту по умолчанию (80).
 
esp_err_t web_server_stop (httpd_handle_t server)
 Останавливает HTTP-сервер и освобождает ресурсы.
 

Variables

static const char * TAG = "web_server"
 
static const httpd_uri_t root_uri
 Дескриптор маршрута корневой страницы
 
static const httpd_uri_t status_uri
 Дескриптор маршрута JSON API.
 

Detailed Description

Минимальный HTTP-сервер: главная страница и REST API статуса.

Использует esp_http_server (HTTPD). Данные сети читаются из netif с ключом "ETH_DEF" — тот же интерфейс, что создаётся в ethernet.c.

Definition in file web_server.c.

Function Documentation

◆ root_get_handler()

static esp_err_t root_get_handler ( httpd_req_t * req)
static

Обработчик GET / — HTML-страница с сетевой информацией.

Формирует одностраничный ответ с таблицей: IP, маска, шлюз, uptime. Uptime берётся из esp_log_timestamp() (миллисекунды с boot → секунды).

Definition at line 29 of file web_server.c.

◆ status_get_handler()

static esp_err_t status_get_handler ( httpd_req_t * req)
static

Обработчик GET /api/status — JSON со статусом платы и сети.

Поля: board, ip, netmask, gateway, cores, revision, uptime_sec. chip_info — данные о чипе ESP32 (число ядер, ревизия кремния).

Definition at line 82 of file web_server.c.

◆ web_server_start()

esp_err_t web_server_start ( httpd_handle_t * server_out)

Запускает HTTP-сервер на порту по умолчанию (80).

Регистрирует обработчики:

  • GET / — HTML-страница с IP, маской, шлюзом и uptime;
  • GET /api/status — JSON с параметрами платы и сети.
Parameters
server_outУказатель, куда записывается дескриптор httpd (для последующей остановки).
Returns
ESP_OK при успехе, ESP_FAIL если httpd_start не удался.

Definition at line 130 of file web_server.c.

References root_uri, status_uri, and TAG.

Referenced by got_ip_event_handler().

◆ web_server_stop()

esp_err_t web_server_stop ( httpd_handle_t server)

Останавливает HTTP-сервер и освобождает ресурсы.

Parameters
serverДескриптор сервера, полученный из web_server_start().
Returns
ESP_OK; для NULL-сервера также возвращает ESP_OK без действий.

Definition at line 148 of file web_server.c.

References TAG.

Referenced by eth_event_handler().

Variable Documentation

◆ root_uri

const httpd_uri_t root_uri
static
Initial value:
= {
.uri = "/",
.method = HTTP_GET,
.handler = root_get_handler,
}
static esp_err_t root_get_handler(httpd_req_t *req)
Обработчик GET / — HTML-страница с сетевой информацией.
Definition web_server.c:29

Дескриптор маршрута корневой страницы

Definition at line 117 of file web_server.c.

Referenced by web_server_start().

◆ status_uri

const httpd_uri_t status_uri
static
Initial value:
= {
.uri = "/api/status",
.method = HTTP_GET,
.handler = status_get_handler,
}
static esp_err_t status_get_handler(httpd_req_t *req)
Обработчик GET /api/status — JSON со статусом платы и сети.
Definition web_server.c:82

Дескриптор маршрута JSON API.

Definition at line 124 of file web_server.c.

Referenced by web_server_start().

◆ TAG

const char* TAG = "web_server"
static

Definition at line 21 of file web_server.c.

Referenced by web_server_start(), and web_server_stop().