Я использую platformio с ESP8266, платой WiFi, 4M RAM, 32-битным процессором.
Веб-сайт встроен: одна страница, index.html, закодированная с xxd
, вот правилов пользовательском make-файле:
src/index.html.h: index.html
xxd -i $< $@.tmp
sed 's/unsigned char/static const unsigned char/g' $@.tmp > $@
sed 's/unsigned int/static const unsigned int/g' $@ > $@.tmp
sed 's/};/,0};/g' $@.tmp > $@
rm -f $@.tmp
Makefile используется только с симулятором для создания двоичного файла elf x86.
Я хочу сделать то же самое со сборщиком platformio, автоматически, когда ясборка для цели ESP8266.
Я добавил дополнительную директиву скрипта в platformio.ini
:
[env:nodemcuv2]
extra_scripts = pre:generate_index_html_header.py
...
И написал следующий скрипт на Python:
Import("env")
def generate_index_html_header(source, target, env):
print "Generating index html header"
env.Execute( "make src/index.html.h" )
env.AddPreAction("generate_index_html_header", generate_index_html_header)
Itкажется, что он не выполняется, так как я не вижу следа "Генерация ..." в журнале сборки:
14:57:16 **** Incremental Build of configuration Default for project arrosage ****
platformio -f -c eclipse run
Processing nodemcuv2 (framework: arduino; platform: espressif8266...)
---------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
PLATFORM: Espressif 8266 > NodeMCU 1.0 (ESP-12E Module)
SYSTEM: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder
LDF MODES: FINDER(deep+) COMPATIBILITY(soft)
Collected 28 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <json>
|-- <NTPClient> 3.1.0
|-- <ESP8266WiFi> 1.0
Compiling .pioenvs/nodemcuv2/src/Activite.cpp.o
...
Archiving .pioenvs/nodemcuv2/libFrameworkArduino.a
Indexing .pioenvs/nodemcuv2/libFrameworkArduino.a
Linking .pioenvs/nodemcuv2/firmware.elf
Retrieving maximum program size .pioenvs/nodemcuv2/firmware.elf
Building .pioenvs/nodemcuv2/firmware.bin
Checking size .pioenvs/nodemcuv2/firmware.elf
Memory Usage ->
DATA: [====== ] 64.1% (used 52504 bytes from 81920 bytes)
PROGRAM: [=== ] 28.3% (used 295412 bytes from 1044464 bytes)
========================= [SUCCESS] Took 8.55 seconds =========================
14:57:25 Build Finished. 0 errors, 0 warnings. (took 8s.950ms)
Я уверен, что мой дополнительный сценарий на python не выполняется, потому что если явручную удалите сгенерированный файл index.html.h из файла сборки со следующей ошибкой:
src/Serveur.cpp:3:24: fatal error: index.html.h: No such file or directory