You wouldn't believe this simple trick that freed 10 kB of RAM!

http-comm
Ondřej Hruška 7 years ago
parent 830ec073bf
commit 8d7419b666
  1. 3
      CMakeLists.txt
  2. 4
      esphttpdconfig.mk
  3. 33
      html_orig/js/app.js
  4. 2
      libesphttpd
  5. 4
      user/apars_csi.c
  6. 6
      user/character_sets.h
  7. 2
      user/routes.c
  8. 2
      user/routes.h

@ -110,8 +110,6 @@ set(SOURCE_FILES
user/serial.h
user/routes.c
user/routes.h
user/uart_asyncdrv.c-
user/uart_asyncdrv.h-
user/cgi_main.c
user/cgi_main.h
user/cgi_sockets.c
@ -155,6 +153,7 @@ include_directories(esp_iot_sdk_v1.5.2/include)
add_definitions(
-D__ets__
-DICACHE_FLASH
-DUSE_OPTIMIZE_PRINTF=1
-DHTTPD_MAX_CONNECTIONS=5
-DHTTPD_STACKSIZE=1000
-DICACHE_FLASH_ATTR=

@ -54,4 +54,6 @@ GLOBAL_CFLAGS = \
-DHTTPD_MAX_POST_LEN=512 \
-DDEBUG_INPUT=0 \
-DDEBUG_HEAP=1 \
-DDEBUG_MALLOC=0
-DDEBUG_MALLOC=0 \
-mforce-l32 \
-DUSE_OPTIMIZE_PRINTF=1

@ -1615,16 +1615,21 @@ var Conn = (function() {
var pingIv;
var xoff = false;
var autoXoffTout;
var reconTout;
var pageShown = false;
function onOpen(evt) {
console.log("CONNECTED");
doSend("i");
}
function onClose(evt) {
console.warn("SOCKET CLOSED, code " + evt.code + ". Reconnecting...");
setTimeout(function() {
clearTimeout(reconTout);
reconTout = setTimeout(function () {
init();
}, 200);
}, 2000);
// this happens when the buffer gets fucked up via invalid unicode.
// we basically use polling instead of socket then
}
@ -1637,12 +1642,18 @@ var Conn = (function() {
case 'T':
case 'S':
Screen.load(evt.data);
if(!pageShown) {
showPage();
pageShown = true;
}
break;
case '-':
//console.log('xoff');
xoff = true;
autoXoffTout = setTimeout(function(){xoff=false;}, 250);
autoXoffTout = setTimeout(function () {
xoff = false;
}, 250);
break;
case '+':
@ -1691,24 +1702,16 @@ var Conn = (function() {
showPage();
return;
}
heartbeat();
clearTimeout(reconTout);
clearTimeout(heartbeatTout);
ws = new WebSocket("ws://" + _root + "/term/update.ws");
ws.onopen = onOpen;
ws.onclose = onClose;
ws.onmessage = onMessage;
console.log("Opening socket.");
// Ask for initial data
$.get('http://'+_root+'/term/init', function(resp, status) {
if (status !== 200) location.reload(true);
console.log("Data received!");
Screen.load(resp);
heartbeat();
showPage();
});
}
function heartbeat() {
@ -1729,7 +1732,7 @@ var Conn = (function() {
}, {
timeout: 100,
});
}, 500);
}, 1000);
}
return {

@ -1 +1 @@
Subproject commit 13fa224963081e9ff298abd74a59faafcb9bf816
Subproject commit 3479ab3efcb4581669370cde6a607f936ff5515a

@ -760,7 +760,7 @@ do_csi_xterm_screen_cmd(CSI_Data *opts)
// data tables for the DECREPTPARM command response
struct DECREPTPARM_parity { int parity; const char * msg; };
static const struct DECREPTPARM_parity DECREPTPARM_parity_arr[] = {
static const struct DECREPTPARM_parity DECREPTPARM_parity_arr[] ESP_CONST_DATA = {
{PARITY_NONE, "1"},
{PARITY_ODD, "4"},
{PARITY_EVEN, "5"},
@ -768,7 +768,7 @@ static const struct DECREPTPARM_parity DECREPTPARM_parity_arr[] = {
};
struct DECREPTPARM_baud { int baud; const char * msg; };
static const struct DECREPTPARM_baud DECREPTPARM_baud_arr[] = {
static const struct DECREPTPARM_baud DECREPTPARM_baud_arr[] ESP_CONST_DATA = {
{BIT_RATE_300, "48"},
{BIT_RATE_600, "56"},
{BIT_RATE_1200, "64"},

@ -12,7 +12,7 @@
#define CODEPAGE_A_BEGIN 35
#define CODEPAGE_A_END 35
static const u16 codepage_A[] =
static const u16 codepage_A[] ESP_CONST_DATA =
{// Unicode ASCII SYM
// %%BEGIN:A%%
0x20a4, // 35 # £
@ -26,7 +26,7 @@ static const u16 codepage_A[] =
* translates VT100 ACS escape codes to Unicode values.
* Based on rxvt-unicode screen.C table.
*/
static const u16 codepage_0[] =
static const u16 codepage_0[] ESP_CONST_DATA =
{// Unicode ASCII SYM
// %%BEGIN:0%%
0x2666, // 96 ` ♦
@ -66,7 +66,7 @@ static const u16 codepage_0[] =
#define CODEPAGE_1_BEGIN 33
#define CODEPAGE_1_END 126
static const u16 codepage_1[] =
static const u16 codepage_1[] ESP_CONST_DATA =
{// Unicode ASCII SYM DOS
// %%BEGIN:1%%
0x263A, // 33 ! ☺ (1) - low ASCII symbols from DOS, moved to +32

@ -22,7 +22,7 @@ static int wifiPassFn(HttpdConnData *connData, int no, char *user, int userLen,
/**
* Application routes
*/
HttpdBuiltInUrl routes[] = {
const HttpdBuiltInUrl routes[] ESP_CONST_DATA = {
// redirect func for the captive portal
ROUTE_CGI_ARG("*", cgiRedirectApClientToHostname, "esp-terminal.ap"),

@ -4,7 +4,7 @@
#include <esp8266.h>
#include <httpd.h>
extern HttpdBuiltInUrl routes[];
extern const HttpdBuiltInUrl routes[];
/** Broadcast screen state to sockets */
void screen_notifyChange();

Loading…
Cancel
Save