diff --git a/mkespfs.py b/mkespfs.py index 5c9d4a2..5368b70 100755 --- a/mkespfs.py +++ b/mkespfs.py @@ -1,43 +1,56 @@ #! /usr/bin/python3 +# Given a directory name as argument, this script generates an espfs filesystem image +# with all the html, js, css, png, and ico files found in the directory tree. +# Each file is compressed with gzip so it can be served up in compressed form from the esp8266. from sys import argv, exit, stderr, stdout from pathlib import Path import re, gzip, struct -MAGIC = 0x73665345 -FL_GZIP = 2 # gzipped file flag -FL_LAST = 1 # last entry file flag - -if len(argv) != 2 or not Path(argv[1]).is_dir(): - print("Usage: {} directory".format(argv[0]), file=stderr) - exit(1) -dir = argv[1] - -f_html = list(Path(dir).rglob('*.html')) -f_css = list(Path(dir).rglob('*.css')) -f_js = list(Path(dir).rglob('*.js')) -f_img = list(Path(dir).rglob('*.ico')) + list(Path(dir).rglob('*.png')) -f_all = f_html + f_css + f_js + f_img - -for fn in f_all: - if not fn.is_file(): continue - out_path = fn.relative_to(dir).as_posix().encode('ascii') - info = fn.stat() - data_un = fn.read_bytes() - data_comp = gzip.compress(data_un) - - print("Processing {} -> {}[{}], {}->{} bytes".format(fn, out_path, len(out_path), info.st_size, - len(data_comp)), file=stderr) - - header = struct.pack(' {}[{}], {}->{} bytes".format(fn, out_path, len(out_path), info.st_size, + # len(data_comp)), file=stderr) + + header = struct.pack(' -<*/test/> -<*/*/test/> -monitor_speed = 115200 -upload_resetmethod = ck build_flags = -Isrc/include -I. -Wl,-Tld/eagle.flash.4m1m.app1.ld @@ -20,8 +17,13 @@ build_flags = -DMQTT -DREST -DSOCKET -DWEBSERVER -DSYSLOG -DCHANGE_TO_STA=yes -DESP_HOSTNAME=esp-link-v3 +extra_scripts = pre:pio-genespfs.py - +[env:esp12e] +board = esp12e +monitor_speed = 115200 +upload_resetmethod = ck upload_speed = 460800 +upload_port = /dev/ttyUSB0 #upload_speed = 230400 diff --git a/src/main.c b/src/main.c index 3eb0180..09a4805 100644 --- a/src/main.c +++ b/src/main.c @@ -131,9 +131,7 @@ static void ICACHE_FLASH_ATTR prHeapTimerCb(void *arg) { char* esp_link_version = VERS_STR(VERSION); // address of espfs binary blob -#if PIO_HACK -extern uint32_t _binary_espfs_img_start; -#endif +extern uint8_t espfs_image[]; extern void app_init(void); extern void mqtt_client_init(void); @@ -186,10 +184,8 @@ user_init(void) { serledInit(); // Wifi wifiInit(); -#if PIO_HACK // init the flash filesystem with the html stuff - espFsInit(espLinkCtx, &_binary_espfs_img_start, ESPFS_MEMORY); -#endif + espFsInit(espLinkCtx, espfs_image, ESPFS_MEMORY); //EspFsInitResult res = espFsInit(&_binary_espfs_img_start); //os_printf("espFsInit %s\n", res?"ERR":"ok");