.pio | .pio | ||||
.vscode | .vscode | ||||
compress | compress | ||||
data_gz | |||||
platformio.ini | platformio.ini | ||||
include/wifi_credentials.h | include/wifi_credentials.h | ||||
include/*.gz.h | include/*.gz.h |
#!/usr/bin/python3 | |||||
import os, gzip | |||||
# https://www.mischianti.org/2020/10/26/web-server-with-esp8266-and-esp32-byte-array-gzipped-pages-and-spiffs-2/ | |||||
def convert_to_gzip(src, out, f): | |||||
input_file = f'{src}{f}' | |||||
output_file = f'{out}{f}.gz.h' | |||||
output_charp = f'{f.replace(".", "_")}_gz' | |||||
top = '' | |||||
with open(input_file, 'rb') as f_in: | |||||
gz = gzip.compress(f_in.read()) | |||||
gzlen = len(gz) | |||||
top += f'// filename: {f}.gz.h\n' | |||||
top += f'#define {output_charp}_len {gzlen}\n' | |||||
top += f'const char {output_charp}[] = ' | |||||
top += '{' | |||||
with open(output_file, 'wb') as f_out: | |||||
for i, b in enumerate(gz): | |||||
if not i%10: | |||||
top += '\n ' | |||||
top += f'0x{b:02X}, ' | |||||
top = top[:-2] | |||||
top += '};' | |||||
f_out.write(top.encode(encoding='utf-8')) | |||||
src='data/' | |||||
out='compress/' | |||||
if not 'compress' in os.listdir(): | |||||
os.mkdir('compress') | |||||
for f in os.listdir(src): | |||||
convert_to_gzip(src, out, f) |
#!/usr/bin/python3 | #!/usr/bin/python3 | ||||
import os, gzip | import os, gzip | ||||
# https://www.mischianti.org/2020/10/26/web-server-with-esp8266-and-esp32-byte-array-gzipped-pages-and-spiffs-2/ | |||||
# https://stackoverflow.com/questions/8156707/gzip-a-file-in-python | |||||
def convert_to_gzip(src, out, f): | |||||
input_file = f'{src}{f}' | |||||
output_file = f'{out}{f}.gz.h' | |||||
output_charp = f'{f.replace(".", "_")}_gz' | |||||
src_dir='data' | |||||
out_dir='data_gz' | |||||
top = '' | |||||
with open(input_file, 'rb') as f_in: | |||||
gz = gzip.compress(f_in.read()) | |||||
gzlen = len(gz) | |||||
if not 'data_gz' in os.listdir(): | |||||
os.mkdir('data_gz') | |||||
top += f'// filename: {f}.gz.h\n' | |||||
top += f'#define {output_charp}_len {gzlen}\n' | |||||
top += f'const char {output_charp}[] = ' | |||||
top += '{' | |||||
with open(output_file, 'wb') as f_out: | |||||
for i, b in enumerate(gz): | |||||
if not i%10: | |||||
top += '\n ' | |||||
top += f'0x{b:02X}, ' | |||||
top = top[:-2] | |||||
top += '};' | |||||
f_out.write(top.encode(encoding='utf-8')) | |||||
src='data/' | |||||
out='compress/' | |||||
if not 'compress' in os.listdir(): | |||||
os.mkdir('compress') | |||||
for f in os.listdir(src): | |||||
convert_to_gzip(src, out, f) | |||||
for f in os.listdir(src_dir): | |||||
with open(f'{src_dir}/{f}', 'rb') as f_in: | |||||
with gzip.open(f'{out_dir}/{f}.gz', 'wb') as f_out: | |||||
f_out.writelines(f_in) |
- maybe compress files ? | - maybe compress files ? | ||||
LED Flickering issue | |||||
### LED Flickering issue | |||||
https://github.com/NachtRaveVL/PCA9685-Arduino/issues/15 | https://github.com/NachtRaveVL/PCA9685-Arduino/issues/15 | ||||
PlatformIO Library veraltet !! | |||||
PlatformIO Library veraltet | |||||
### TIMER in OTA unterbrechen !!!!! | |||||
###TIMER in OTA unterbrechen !!!!! | |||||
### further improvments | |||||
with streamFile gzip encoded Files can be sent | |||||
this reduces space on fs ! | |||||
new easier script needed to just convert to .gz | |||||
maybe measure timings on ESP |