CRON API response implemented

This commit is contained in:
Bogdan Pilyugin 2023-10-03 17:05:27 +02:00
parent e65132c7ee
commit 97fb6e44c3
4 changed files with 105 additions and 39 deletions

@ -1 +1 @@
Subproject commit 2a89f5f190a59d5b5e565491e60f5d60e28c514f
Subproject commit 1e3eb967ab70d350fd9dba82832c69c9d85a7b5a

View File

@ -1,4 +1,4 @@
/*! Copyright 2023 Bogdan Pilyugin
/*! Copyright 2023 Bogdan Pilyugin
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -23,9 +23,57 @@
#include "webguiapp.h"
#include "AppConfiguration.h"
#include "CronTimers.h"
extern APP_CONFIG AppConfig;
static void funct_cronrecs(char *argres, int rw)
{
struct jWriteControl jwc;
jwOpen(&jwc, argres, VAR_MAX_VALUE_LENGTH, JW_ARRAY, JW_COMPACT);
for (int idx = 0; idx < CRON_TIMERS_NUMBER; idx++)
{
cron_timer_t T;
memcpy(&T, &GetAppConf()->Timers[idx], sizeof(cron_timer_t));
jwArr_object(&jwc);
jwObj_int(&jwc, "num", (unsigned int) T.num);
jwObj_int(&jwc, "del", (T.del) ? 1 : 0);
jwObj_int(&jwc, "enab", (T.enab) ? 1 : 0);
jwObj_int(&jwc, "prev", (T.prev) ? 1 : 0);
jwObj_string(&jwc, "name", T.name);
jwObj_int(&jwc, "obj", (unsigned int) T.obj);
jwObj_int(&jwc, "act", (unsigned int) T.act);
jwObj_string(&jwc, "cron", T.cron);
jwEnd(&jwc);
}
jwClose(&jwc);
}
static void funct_cronobjs(char *argres, int rw)
{
struct jWriteControl jwc;
jwOpen(&jwc, argres, VAR_MAX_VALUE_LENGTH, JW_ARRAY, JW_COMPACT);
for (int idx = 0; idx < CRON_OBJECTS_NUMBER; idx++)
{
jwArr_object(&jwc);
jwObj_string(&jwc, "name", GetAppConf()->CronObjects[idx].objname);
jwObj_raw(&jwc, "acts", GetCronActAvail(idx));
jwEnd(&jwc);
}
jwClose(&jwc);
}
static void funct_cronacts(char *argres, int rw)
{
struct jWriteControl jwc;
jwOpen(&jwc, argres, VAR_MAX_VALUE_LENGTH, JW_ARRAY, JW_COMPACT);
for (int idx = 0; idx < CRON_OBJECTS_NUMBER; idx++)
{
jwArr_string(&jwc, GetCronActionName(idx));
}
jwClose(&jwc);
}
static void funct_time(char *argres, int rw)
{
time_t now;
@ -36,14 +84,16 @@ static void funct_time(char *argres, int rw)
const rest_var_t ApplicationVariables[] =
{
/*FUNCTIONS*/
{ 0, "cronrecs", &funct_cronrecs, VAR_FUNCT, R, 0, 0 },
{ 0, "cronobjs", &funct_cronobjs, VAR_FUNCT, R, 0, 0 },
{ 0, "cronacts", &funct_cronacts, VAR_FUNCT, R, 0, 0 },
{ 0, "mytime", &funct_time, VAR_FUNCT, R, 0, 0 },
{ 0, "myvar", &AppConfig.test, VAR_INT, R, 0, 0 }
};
void RegAppVariables(void)
{
SetAppVars((rest_var_t*)ApplicationVariables, sizeof(ApplicationVariables) / sizeof(rest_var_t));
SetAppVars((rest_var_t*) ApplicationVariables, sizeof(ApplicationVariables) / sizeof(rest_var_t));
}

View File

@ -600,7 +600,7 @@ CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
CONFIG_HTTPD_MAX_URI_LEN=512
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
CONFIG_HTTPD_PURGE_BUF_LEN=32
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
CONFIG_HTTPD_LOG_PURGE_DATA=y
# CONFIG_HTTPD_WS_SUPPORT is not set
# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set
# end of HTTP Server

View File

@ -1173,9 +1173,17 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
# CONFIG_LWIP_PPP_SUPPORT is not set
CONFIG_LWIP_PPP_SUPPORT=y
CONFIG_LWIP_PPP_ENABLE_IPV6=y
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
CONFIG_LWIP_PPP_NOTIFY_PHASE_SUPPORT=y
CONFIG_LWIP_PPP_PAP_SUPPORT=y
# CONFIG_LWIP_PPP_CHAP_SUPPORT is not set
# CONFIG_LWIP_PPP_MSCHAP_SUPPORT is not set
# CONFIG_LWIP_PPP_MPPE_SUPPORT is not set
# CONFIG_LWIP_ENABLE_LCP_ECHO is not set
# CONFIG_LWIP_PPP_DEBUG_ON is not set
# CONFIG_LWIP_SLIP_SUPPORT is not set
#
@ -1590,37 +1598,6 @@ CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set
# end of Wi-Fi Provisioning Manager
#
# esp-modem
#
CONFIG_ESP_MODEM_CMUX_DEFRAGMENT_PAYLOAD=y
CONFIG_ESP_MODEM_CMUX_DELAY_AFTER_DLCI_SETUP=0
# end of esp-modem
#
# The Things Network
#
# CONFIG_TTN_LORA_FREQ_DISABLED is not set
# CONFIG_TTN_LORA_FREQ_EU_868 is not set
# CONFIG_TTN_LORA_FREQ_US_915 is not set
# CONFIG_TTN_LORA_FREQ_AU_915 is not set
# CONFIG_TTN_LORA_FREQ_AS_923 is not set
# CONFIG_TTN_LORA_FREQ_AS_923_JP is not set
# CONFIG_TTN_LORA_FREQ_KR_920 is not set
# CONFIG_TTN_LORA_FREQ_IN_866 is not set
CONFIG_TTN_LORA_FREQ_RU_864=y
# CONFIG_TTN_RADIO_SX1272_73 is not set
CONFIG_TTN_RADIO_SX1276_77_78_79=y
CONFIG_TTN_SPI_FREQ=10000000
CONFIG_TTN_RESET_STATES_FLOATING=y
# CONFIG_TTN_RESET_STATES_ASSERTED is not set
CONFIG_TTN_BG_TASK_PRIO=10
# CONFIG_TTN_PROVISION_UART_DEFAULT is not set
# CONFIG_TTN_PROVISION_UART_CUSTOM is not set
CONFIG_TTN_PROVISION_UART_NONE=y
CONFIG_TTN_PROVISION_UART_NUM=0
# end of The Things Network
#
# WebGUIApp
#
@ -1809,6 +1786,39 @@ CONFIG_ESPFS_MAX_PARTITIONS=1
CONFIG_ESPFS_USE_HEATSHRINK=y
# end of libespfs
# end of WebGUIApp
#
# esp-modem
#
CONFIG_ESP_MODEM_CMUX_DEFRAGMENT_PAYLOAD=y
# CONFIG_ESP_MODEM_USE_INFLATABLE_BUFFER_IF_NEEDED is not set
CONFIG_ESP_MODEM_CMUX_DELAY_AFTER_DLCI_SETUP=0
# CONFIG_ESP_MODEM_CMUX_USE_SHORT_PAYLOADS_ONLY is not set
# end of esp-modem
#
# The Things Network
#
# CONFIG_TTN_LORA_FREQ_DISABLED is not set
# CONFIG_TTN_LORA_FREQ_EU_868 is not set
# CONFIG_TTN_LORA_FREQ_US_915 is not set
# CONFIG_TTN_LORA_FREQ_AU_915 is not set
# CONFIG_TTN_LORA_FREQ_AS_923 is not set
# CONFIG_TTN_LORA_FREQ_AS_923_JP is not set
# CONFIG_TTN_LORA_FREQ_KR_920 is not set
# CONFIG_TTN_LORA_FREQ_IN_866 is not set
CONFIG_TTN_LORA_FREQ_RU_864=y
# CONFIG_TTN_RADIO_SX1272_73 is not set
CONFIG_TTN_RADIO_SX1276_77_78_79=y
CONFIG_TTN_SPI_FREQ=10000000
CONFIG_TTN_RESET_STATES_FLOATING=y
# CONFIG_TTN_RESET_STATES_ASSERTED is not set
CONFIG_TTN_BG_TASK_PRIO=10
# CONFIG_TTN_PROVISION_UART_DEFAULT is not set
# CONFIG_TTN_PROVISION_UART_CUSTOM is not set
CONFIG_TTN_PROVISION_UART_NONE=y
CONFIG_TTN_PROVISION_UART_NUM=0
# end of The Things Network
# end of Component config
# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set
@ -1999,7 +2009,13 @@ CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
# CONFIG_PPP_SUPPORT is not set
CONFIG_PPP_SUPPORT=y
CONFIG_PPP_NOTIFY_PHASE_SUPPORT=y
CONFIG_PPP_PAP_SUPPORT=y
# CONFIG_PPP_CHAP_SUPPORT is not set
# CONFIG_PPP_MSCHAP_SUPPORT is not set
# CONFIG_PPP_MPPE_SUPPORT is not set
# CONFIG_PPP_DEBUG_ON is not set
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y
# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set