custom Print handler implementation added
This commit is contained in:
parent
4487cde1b7
commit
3e9e6289b6
|
|
@ -1 +1 @@
|
||||||
Subproject commit 13a0cdbe4cc438d59e88f2ac863cf8133d020a79
|
Subproject commit 7038b80d4f1438d1fbd5be286718edf5d4e65cea
|
||||||
|
|
@ -2,9 +2,7 @@
|
||||||
# for more information about component CMakeLists.txt files.
|
# for more information about component CMakeLists.txt files.
|
||||||
|
|
||||||
idf_component_register(
|
idf_component_register(
|
||||||
SRCS main.c # list the source files of this component
|
SRCS main.c
|
||||||
INCLUDE_DIRS # optional, add here public include directories
|
HTTPPrintCustom.c
|
||||||
PRIV_INCLUDE_DIRS # optional, add here private include directories
|
|
||||||
REQUIRES # optional, list the public requirements (component names)
|
|
||||||
PRIV_REQUIRES # optional, list the private requirements
|
|
||||||
)
|
)
|
||||||
|
|
|
||||||
102
main/HTTPPrintCustom.c
Normal file
102
main/HTTPPrintCustom.c
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
/*! Copyright 2022 Bogdan Pilyugin
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* \file HTTPPrintCustom.c
|
||||||
|
* \version 1.0
|
||||||
|
* \date 2022-08-18
|
||||||
|
* \author Bogdan Pilyugin
|
||||||
|
* \brief
|
||||||
|
* \details
|
||||||
|
* \copyright Apache License, Version 2.0
|
||||||
|
*/
|
||||||
|
#include "HTTPServer.h"
|
||||||
|
|
||||||
|
//Default string if not found handler
|
||||||
|
static void HTTPPrint_DEF(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "#DEF");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void HTTPPrint_status_fail(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "none");
|
||||||
|
}
|
||||||
|
|
||||||
|
dyn_var_handler_t HANDLERS_ARRAY_CUST[] = {
|
||||||
|
|
||||||
|
/*ERROR report*/
|
||||||
|
{ "status_fail", sizeof("status_fail") - 1, &HTTPPrint_status_fail },
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int HTTPPrintCustom(httpd_req_t *req, char *buf, char *var)
|
||||||
|
{
|
||||||
|
char VarData[MAX_DYNVAR_LENGTH];
|
||||||
|
const char incPat[] = "inc:";
|
||||||
|
const int incPatLen = sizeof(incPat) - 1;
|
||||||
|
if (!memcmp(var, incPat, incPatLen))
|
||||||
|
{
|
||||||
|
const char rootFS[] = "/";
|
||||||
|
char filename[32];
|
||||||
|
filename[0] = 0x00;
|
||||||
|
var += incPatLen;
|
||||||
|
strcat(filename, rootFS);
|
||||||
|
strcat(filename, var);
|
||||||
|
espfs_file_t *file = espfs_fopen(fs, filename);
|
||||||
|
struct espfs_stat_t stat;
|
||||||
|
if (file)
|
||||||
|
{
|
||||||
|
espfs_fstat(file, &stat);
|
||||||
|
int readBytes = espfs_fread(file, buf, stat.size);
|
||||||
|
espfs_fclose(file);
|
||||||
|
return readBytes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool fnd = false;
|
||||||
|
char *p2 = var + strlen(var) - 1; //last var symbol
|
||||||
|
int arg = 0;
|
||||||
|
//searching for tag in handles array
|
||||||
|
for (int i = 0; i < (sizeof(HANDLERS_ARRAY_CUST) / sizeof(HANDLERS_ARRAY_CUST[0])); ++i)
|
||||||
|
{
|
||||||
|
if (*p2 == ')')
|
||||||
|
{ //found close brace
|
||||||
|
char *p1 = p2;
|
||||||
|
while ((*p1 != '(') && (p1 > var))
|
||||||
|
--p1;
|
||||||
|
if (*p1 == '(')
|
||||||
|
{ //found open brace
|
||||||
|
*p1 = 0x00; //trim variable to name part
|
||||||
|
++p1; //to begin of argument
|
||||||
|
*p2 = 0x00; //set end of argument
|
||||||
|
arg = atoi(p1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (strcmp(var, HANDLERS_ARRAY_CUST[i].tag) == 0
|
||||||
|
&& HANDLERS_ARRAY_CUST[i].HandlerRoutine != NULL)
|
||||||
|
{
|
||||||
|
HANDLERS_ARRAY_CUST[i].HandlerRoutine(VarData, (void*) &arg);
|
||||||
|
fnd = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!fnd)
|
||||||
|
{
|
||||||
|
HTTPPrint_DEF(VarData, NULL);
|
||||||
|
}
|
||||||
|
int dLen = strlen(VarData);
|
||||||
|
memcpy(buf, VarData, dLen);
|
||||||
|
return dLen;
|
||||||
|
}
|
||||||
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
#define MANUAL_RESET 0
|
#define MANUAL_RESET 0
|
||||||
|
|
||||||
|
int HTTPPrintCustom(httpd_req_t *req, char *buf, char *var);
|
||||||
|
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -81,8 +83,11 @@ void app_main(void)
|
||||||
if (CONFIG_WEBGUIAPP_GPRS_ENABLE ||
|
if (CONFIG_WEBGUIAPP_GPRS_ENABLE ||
|
||||||
CONFIG_WEBGUIAPP_ETHERNET_ENABLE ||
|
CONFIG_WEBGUIAPP_ETHERNET_ENABLE ||
|
||||||
CONFIG_WEBGUIAPP_WIFI_ENABLE)
|
CONFIG_WEBGUIAPP_WIFI_ENABLE)
|
||||||
|
{
|
||||||
ESP_ERROR_CHECK(start_file_server());
|
ESP_ERROR_CHECK(start_file_server());
|
||||||
|
regHTTPPrintCustom(&HTTPPrintCustom);
|
||||||
|
|
||||||
|
}
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
printf("Hello from app_main!\n");
|
printf("Hello from app_main!\n");
|
||||||
|
|
|
||||||
10
sdkconfig
10
sdkconfig
|
|
@ -1264,7 +1264,7 @@ CONFIG_WEBGUIAPP_ETHERNET_ON=y
|
||||||
CONFIG_WEBGUIAPP_ETH_IP_DEFAULT="192.168.1.150"
|
CONFIG_WEBGUIAPP_ETH_IP_DEFAULT="192.168.1.150"
|
||||||
CONFIG_WEBGUIAPP_ETH_MASK_DEFAULT="255.255.255.0"
|
CONFIG_WEBGUIAPP_ETH_MASK_DEFAULT="255.255.255.0"
|
||||||
CONFIG_WEBGUIAPP_ETH_GATEWAY_DEFAULT="192.168.1.150"
|
CONFIG_WEBGUIAPP_ETH_GATEWAY_DEFAULT="192.168.1.150"
|
||||||
CONFIG_WEBGUIAPP_ETHERNET_DHCP_DEFAULT=y
|
# CONFIG_WEBGUIAPP_ETHERNET_DHCP_DEFAULT is not set
|
||||||
CONFIG_GPIO_RANGE_MIN=0
|
CONFIG_GPIO_RANGE_MIN=0
|
||||||
CONFIG_GPIO_RANGE_MAX=36
|
CONFIG_GPIO_RANGE_MAX=36
|
||||||
# CONFIG_USE_INTERNAL_ETHERNET is not set
|
# CONFIG_USE_INTERNAL_ETHERNET is not set
|
||||||
|
|
@ -1323,6 +1323,14 @@ CONFIG_MQTT_ROOT_TOPIC="ROOTTOPIC"
|
||||||
CONFIG_MQTT_USERNAME="username"
|
CONFIG_MQTT_USERNAME="username"
|
||||||
CONFIG_MQTT_PASSWORD="password"
|
CONFIG_MQTT_PASSWORD="password"
|
||||||
# end of MQTT settings
|
# end of MQTT settings
|
||||||
|
|
||||||
|
#
|
||||||
|
# DNS settings
|
||||||
|
#
|
||||||
|
CONFIG_WEBGUIAPP_DNS1_ADDRESS_DEFAULT="8.8.8.8"
|
||||||
|
CONFIG_WEBGUIAPP_DNS2_ADDRESS_DEFAULT="8.8.4.4"
|
||||||
|
CONFIG_WEBGUIAPP_DNS3_ADDRESS_DEFAULT="1.1.1.1"
|
||||||
|
# end of DNS settings
|
||||||
# end of WebGuiApp configuration
|
# end of WebGuiApp configuration
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,7 @@ CONFIG_BOOTLOADER_LOG_LEVEL=3
|
||||||
CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y
|
CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y
|
||||||
# CONFIG_BOOTLOADER_FACTORY_RESET is not set
|
# CONFIG_BOOTLOADER_FACTORY_RESET is not set
|
||||||
# CONFIG_BOOTLOADER_APP_TEST is not set
|
# CONFIG_BOOTLOADER_APP_TEST is not set
|
||||||
|
CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
|
||||||
CONFIG_BOOTLOADER_WDT_ENABLE=y
|
CONFIG_BOOTLOADER_WDT_ENABLE=y
|
||||||
# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
|
# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
|
||||||
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
|
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
|
||||||
|
|
@ -95,6 +96,9 @@ CONFIG_ESPTOOLPY_FLASHFREQ="40m"
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
|
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
|
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
|
||||||
CONFIG_ESPTOOLPY_BEFORE_RESET=y
|
CONFIG_ESPTOOLPY_BEFORE_RESET=y
|
||||||
|
|
@ -257,8 +261,8 @@ CONFIG_EFUSE_MAX_BLK_LEN=192
|
||||||
#
|
#
|
||||||
CONFIG_ESP_TLS_USING_MBEDTLS=y
|
CONFIG_ESP_TLS_USING_MBEDTLS=y
|
||||||
# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
|
# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
|
||||||
# CONFIG_ESP_TLS_SERVER is not set
|
|
||||||
# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
|
# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
|
||||||
|
# CONFIG_ESP_TLS_SERVER is not set
|
||||||
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
|
||||||
# CONFIG_ESP_TLS_INSECURE is not set
|
# CONFIG_ESP_TLS_INSECURE is not set
|
||||||
# end of ESP-TLS
|
# end of ESP-TLS
|
||||||
|
|
@ -889,6 +893,7 @@ CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
|
||||||
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
|
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
|
||||||
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
|
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
|
||||||
# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
|
# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
|
||||||
|
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200
|
||||||
# end of Certificate Bundle
|
# end of Certificate Bundle
|
||||||
|
|
||||||
# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
|
# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
|
||||||
|
|
@ -1036,6 +1041,7 @@ CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
|
||||||
#
|
#
|
||||||
# NVS
|
# NVS
|
||||||
#
|
#
|
||||||
|
# CONFIG_NVS_ASSERT_ERROR_CHECK is not set
|
||||||
# end of NVS
|
# end of NVS
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
@ -1173,7 +1179,6 @@ CONFIG_VFS_SUPPORT_TERMIOS=y
|
||||||
# Host File System I/O (Semihosting)
|
# Host File System I/O (Semihosting)
|
||||||
#
|
#
|
||||||
CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
||||||
CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
|
||||||
# end of Host File System I/O (Semihosting)
|
# end of Host File System I/O (Semihosting)
|
||||||
# end of Virtual file system
|
# end of Virtual file system
|
||||||
|
|
||||||
|
|
@ -1190,6 +1195,7 @@ CONFIG_WL_SECTOR_SIZE=4096
|
||||||
#
|
#
|
||||||
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
|
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
|
||||||
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
|
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
|
||||||
|
CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION=y
|
||||||
# end of Wi-Fi Provisioning Manager
|
# end of Wi-Fi Provisioning Manager
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
@ -1202,6 +1208,8 @@ CONFIG_WPA_MBEDTLS_CRYPTO=y
|
||||||
# CONFIG_WPA_TESTING_OPTIONS is not set
|
# CONFIG_WPA_TESTING_OPTIONS is not set
|
||||||
# CONFIG_WPA_WPS_STRICT is not set
|
# CONFIG_WPA_WPS_STRICT is not set
|
||||||
# CONFIG_WPA_11KV_SUPPORT is not set
|
# CONFIG_WPA_11KV_SUPPORT is not set
|
||||||
|
# CONFIG_WPA_MBO_SUPPORT is not set
|
||||||
|
# CONFIG_WPA_DPP_SUPPORT is not set
|
||||||
# end of Supplicant
|
# end of Supplicant
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
@ -1235,71 +1243,19 @@ CONFIG_I2C_CLOCK=400000
|
||||||
#
|
#
|
||||||
# WiFi settings
|
# WiFi settings
|
||||||
#
|
#
|
||||||
CONFIG_WEBGUIAPP_WIFI_ENABLE=y
|
# CONFIG_WEBGUIAPP_WIFI_ENABLE is not set
|
||||||
CONFIG_WEBGUIAPP_WIFI_ON=y
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_DHCP_ON=y
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_SSID_AP="YourAP"
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_KEY_AP="123456789"
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_SSID_STA="YourSTA"
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_KEY_STA="123456789"
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_IP_AP="192.168.1.150"
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_IP_STA="192.168.1.150"
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_MASK_STA="255.255.255.0"
|
|
||||||
CONFIG_WEBGUIAPP_WIFI_GATEWAY_STA="192.168.1.150"
|
|
||||||
# end of WiFi settings
|
# end of WiFi settings
|
||||||
|
|
||||||
#
|
#
|
||||||
# Ethernet settings
|
# Ethernet settings
|
||||||
#
|
#
|
||||||
CONFIG_WEBGUIAPP_ETHERNET_ENABLE=y
|
# CONFIG_WEBGUIAPP_ETHERNET_ENABLE is not set
|
||||||
CONFIG_WEBGUIAPP_ETHERNET_ON=y
|
|
||||||
CONFIG_WEBGUIAPP_ETH_IP_DEFAULT="192.168.1.150"
|
|
||||||
CONFIG_WEBGUIAPP_ETH_MASK_DEFAULT="255.255.255.0"
|
|
||||||
CONFIG_WEBGUIAPP_ETH_GATEWAY_DEFAULT="192.168.1.150"
|
|
||||||
# CONFIG_WEBGUIAPP_ETHERNET_DHCP_DEFAULT is not set
|
|
||||||
CONFIG_GPIO_RANGE_MIN=0
|
|
||||||
CONFIG_GPIO_RANGE_MAX=36
|
|
||||||
# CONFIG_USE_INTERNAL_ETHERNET is not set
|
|
||||||
CONFIG_USE_SPI_ETHERNET=y
|
|
||||||
CONFIG_SPI_ETHERNETS_NUM=1
|
|
||||||
# CONFIG_DM9051 is not set
|
|
||||||
# CONFIG_KSZ8851SNL is not set
|
|
||||||
CONFIG_W5500=y
|
|
||||||
CONFIG_ETH_SPI_CLOCK_MHZ=12
|
|
||||||
CONFIG_ETH_SPI_CS0_GPIO=15
|
|
||||||
CONFIG_ETH_SPI_INT0_GPIO=4
|
|
||||||
CONFIG_ETH_SPI_PHY_RST0_GPIO=-1
|
|
||||||
CONFIG_ETH_SPI_PHY_ADDR0=1
|
|
||||||
# end of Ethernet settings
|
# end of Ethernet settings
|
||||||
|
|
||||||
#
|
#
|
||||||
# GPRS settings
|
# GPRS settings
|
||||||
#
|
#
|
||||||
CONFIG_WEBGUIAPP_GPRS_ENABLE=y
|
# CONFIG_WEBGUIAPP_GPRS_ENABLE is not set
|
||||||
# CONFIG_WEBGUIAPP_GPRS_ON is not set
|
|
||||||
CONFIG_MODEM_DEVICE_SIM800=y
|
|
||||||
# CONFIG_MODEM_DEVICE_BG96 is not set
|
|
||||||
# CONFIG_MODEM_DEVICE_SIM7600 is not set
|
|
||||||
CONFIG_MODEM_PPP_APN="internet"
|
|
||||||
CONFIG_MODEM_PPP_AUTH_USERNAME="gdata"
|
|
||||||
CONFIG_MODEM_PPP_AUTH_PASSWORD="gdata"
|
|
||||||
# CONFIG_MODEM_PPP_AUTH_NONE is not set
|
|
||||||
# CONFIG_MODEM_NEED_SIM_PIN is not set
|
|
||||||
|
|
||||||
#
|
|
||||||
# UART Configuration
|
|
||||||
#
|
|
||||||
CONFIG_MODEM_UART_TX_PIN=17
|
|
||||||
CONFIG_MODEM_UART_RX_PIN=16
|
|
||||||
CONFIG_MODEM_UART_RTS_PIN=0
|
|
||||||
CONFIG_MODEM_UART_CTS_PIN=0
|
|
||||||
CONFIG_MODEM_UART_EVENT_TASK_STACK_SIZE=2048
|
|
||||||
CONFIG_MODEM_UART_EVENT_TASK_PRIORITY=5
|
|
||||||
CONFIG_MODEM_UART_EVENT_QUEUE_SIZE=30
|
|
||||||
CONFIG_MODEM_UART_PATTERN_QUEUE_SIZE=20
|
|
||||||
CONFIG_MODEM_UART_TX_BUFFER_SIZE=512
|
|
||||||
CONFIG_MODEM_UART_RX_BUFFER_SIZE=1024
|
|
||||||
# end of UART Configuration
|
|
||||||
# end of GPRS settings
|
# end of GPRS settings
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
@ -1502,5 +1458,4 @@ CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
|
||||||
CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
|
CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
|
||||||
CONFIG_SUPPORT_TERMIOS=y
|
CONFIG_SUPPORT_TERMIOS=y
|
||||||
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
||||||
CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
|
||||||
# End of deprecated options
|
# End of deprecated options
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user