Множество примеров и учебных пособий по запуску веб-сервера на Arduino (или микроконтроллерах в целом) используют gzipped веб-страницу в виде массива шестнадцатеричных значений
#define index_ov2640_html_gz_len 4316
const uint8_t index_ov2640_html_gz[] = {
0x1F, 0x8B, 0x08, 0x08, 0x50, 0x5C, 0xAE, 0x5C, 0x00, 0x03, 0x69, 0x6E, 0x64, 0x65, 0x78, 0x5F,
...
0x7F, 0x22, 0xF6, 0x5F, 0x04, 0x9C, 0x39, 0x76, 0x5C, 0x6C, 0x00, 0x00
};
Я нашел несколько способов вручную преобразовать HTML в такой массив, но я ищу способ выполнить преобразование автоматически, например, с помощью сценария bash.
Я нашел инструмент hexdump
и смог получить некоторые многообещающие результаты с
hexdump -e '16/1 "0x%02X, " "\n"' ~/Dev/Arduino/CameraWebServer/www/index_ov2640.html.gz > test.txt
, но есть некоторые проблемы:
- Полученный файл содержит (иногда) одну или несколько звездочек
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
*
0x3C, 0x69, 0x6E, 0x70, 0x75, 0x74, 0x20, 0x69, 0x64, 0x3D, 0x22, 0x61, 0x65, 0x63, 0x32, 0x22,
Последняя строка выглядит следующим образом
0x6D, 0x6C, 0x3E, 0x0A, 0x , 0x , 0x , 0x , 0x , 0x , 0x , 0x , 0x , 0x , 0x , 0x ,