Wi fi manager (#11)

* autoexec config settings working

* small fixes

* working autoexec* saving

* allow double quotes in command line
This commit is contained in:
Christian Herzog
2019-09-02 22:54:11 +02:00
committed by sle118
parent 4e8abb2954
commit 7e4e0e2caf
5 changed files with 38 additions and 6 deletions

View File

@@ -225,6 +225,8 @@ void http_server_netconn_serve(struct netconn *conn) {
uint8_t autoexec_flag=0; uint8_t autoexec_flag=0;
int buflen=MAX_COMMAND_LINE_SIZE+strlen(template)+1; int buflen=MAX_COMMAND_LINE_SIZE+strlen(template)+1;
char * buff = malloc(buflen); char * buff = malloc(buflen);
char *s = "\"";
char *r = "\\\"";
if(!buff) if(!buff)
{ {
ESP_LOGE(TAG,"Unable to allocate buffer for config.json!"); ESP_LOGE(TAG,"Unable to allocate buffer for config.json!");
@@ -242,7 +244,7 @@ void http_server_netconn_serve(struct netconn *conn) {
do { do {
snprintf(autoexec_name,sizeof(autoexec_name)-1,"autoexec%u",i); snprintf(autoexec_name,sizeof(autoexec_name)-1,"autoexec%u",i);
ESP_LOGD(TAG,"Getting command name %s", autoexec_name); ESP_LOGD(TAG,"Getting command name %s", autoexec_name);
autoexec_value= wifi_manager_alloc_get_config(autoexec_name, &l); autoexec_value = wifi_manager_alloc_get_config(autoexec_name, &l);
if(autoexec_value!=NULL ){ if(autoexec_value!=NULL ){
if(i>1) if(i>1)
{ {
@@ -250,6 +252,7 @@ void http_server_netconn_serve(struct netconn *conn) {
ESP_LOGD(TAG,"%s", array_separator); ESP_LOGD(TAG,"%s", array_separator);
} }
ESP_LOGI(TAG,"found command %s = %s", autoexec_name, autoexec_value); ESP_LOGI(TAG,"found command %s = %s", autoexec_name, autoexec_value);
strreplace(autoexec_value, s, r);
snprintf(buff, buflen-1, template, autoexec_name, autoexec_value); snprintf(buff, buflen-1, template, autoexec_name, autoexec_value);
netconn_write(conn, buff, strlen(buff), NETCONN_NOCOPY); netconn_write(conn, buff, strlen(buff), NETCONN_NOCOPY);
ESP_LOGD(TAG,"%s", buff); ESP_LOGD(TAG,"%s", buff);
@@ -367,3 +370,23 @@ void http_server_netconn_serve(struct netconn *conn) {
/* free the buffer */ /* free the buffer */
netbuf_delete(inbuf); netbuf_delete(inbuf);
} }
void strreplace(char *src, char *str, char *rep)
{
char *p = strstr(src, str);
if (p)
{
int len = strlen(src)+strlen(rep)-strlen(str);
char r[len];
memset(r, 0, len);
if ( p >= src ){
strncpy(r, src, p-src);
r[p-src]='\0';
strncat(r, rep, strlen(rep));
strncat(r, p+strlen(str), p+strlen(str)-src+strlen(src));
strcpy(src, r);
strreplace(p+strlen(rep), str, rep);
}
}
}

View File

@@ -88,6 +88,9 @@ void http_server_start();
*/ */
char* http_server_get_header(char *request, char *header_name, int *len); char* http_server_get_header(char *request, char *header_name, int *len);
void strreplace(char *src, char *str, char *rep);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -184,7 +184,7 @@ function handleClick(cb) {
<div id="autoexec-command"> <div id="autoexec-command">
<h2>Command to run</h2> <h2>Command to run</h2>
<section id="command-list"> <section id="command-list">
<input id="autoexec1" type="text" size="50" maxlength="201" value="squeezelite -o I2S -b 500:2000 -d all=info" /> <textarea id="autoexec1" maxlength="120">squeezelite -o I2S -b 500:2000 -d all=info -M esp32</textarea>
</section> </section>
</div> </div>

View File

@@ -265,6 +265,9 @@ h3 {
position: absolute; position: absolute;
cursor: pointer; cursor: pointer;
top: 1.5em; top: 1.5em;
left: 8px;
width: 4em; width: 4em;
height: 2em; height: 2em;
background-color: #c32e04; background-color: #c32e04;
@@ -343,3 +346,8 @@ input#ota {
#otadiv { #otadiv {
margin-bottom: 15px; margin-bottom: 15px;
} }
textarea#autoexec1 {
width: 100%;
}

View File

@@ -77,10 +77,9 @@ CONFIG_SPIRAM_SIZE=-1
CONFIG_SPIRAM_SPEED_80M=y CONFIG_SPIRAM_SPEED_80M=y
CONFIG_SPIRAM_MEMTEST=y CONFIG_SPIRAM_MEMTEST=y
CONFIG_SPIRAM_CACHE_WORKAROUND=y CONFIG_SPIRAM_CACHE_WORKAROUND=y
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=256 CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=512
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=65536 CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
CONFIG_SPIRAM_OCCUPY_VSPI_HOST=y CONFIG_SPIRAM_OCCUPY_VSPI_HOST=y
CONFIG_SPIRAM_BANKSWITCH_ENABLE=n CONFIG_SPIRAM_BANKSWITCH_ENABLE=n
CONFIG_D0WD_PSRAM_CLK_IO=17 CONFIG_D0WD_PSRAM_CLK_IO=17
@@ -114,7 +113,6 @@ CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
CONFIG_ESP32_PHY_MAX_TX_POWER=20 CONFIG_ESP32_PHY_MAX_TX_POWER=20
CONFIG_FREERTOS_HZ=100 CONFIG_FREERTOS_HZ=100
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
CONFIG_LWIP_UDP_RECVMBOX_SIZE=32
CONFIG_LWIP_NETIF_LOOPBACK=y CONFIG_LWIP_NETIF_LOOPBACK=y
CONFIG_LWIP_TCP_MSL=60000 CONFIG_LWIP_TCP_MSL=60000
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=8192 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=8192