mirror of
https://github.com/alexandrebobkov/ESP-Nodes.git
synced 2025-08-08 04:02:29 +00:00
ESP-IDF EPD
This commit is contained in:
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
6ef196edff71679280c507c5c06e3a62a37aae5b
|
||||
55a08b6048ea3b5eb7eb61aa361a0ad1a9c23f4d
|
||||
|
@@ -103,3 +103,9 @@
|
||||
8508 8860 1745135248843167157 /home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build/bootloader/.bin_timestamp 1645f312509add3a
|
||||
8860 8956 1745135248845167242 esp-idf/esptool_py/CMakeFiles/bootloader_check_size ad45a6956c9e2e9a
|
||||
8860 8956 1745135248845167242 /home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size ad45a6956c9e2e9a
|
||||
22 143 1745210507105158436 esp-idf/esptool_py/CMakeFiles/bootloader_check_size ad45a6956c9e2e9a
|
||||
22 143 1745210507105158436 /home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size ad45a6956c9e2e9a
|
||||
7 73 1745210659351167614 esp-idf/esptool_py/CMakeFiles/bootloader_check_size ad45a6956c9e2e9a
|
||||
7 73 1745210659351167614 /home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size ad45a6956c9e2e9a
|
||||
8 75 1745210688394143208 esp-idf/esptool_py/CMakeFiles/bootloader_check_size ad45a6956c9e2e9a
|
||||
8 75 1745210688394143208 /home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build/bootloader/esp-idf/esptool_py/CMakeFiles/bootloader_check_size ad45a6956c9e2e9a
|
||||
|
@@ -3149,7 +3149,7 @@ build esp-idf/partition_table/CMakeFiles/partition_table-flash | ${cmake_ninja_w
|
||||
build cmake_object_order_depends_target___idf_esp_app_format: phony || cmake_object_order_depends_target___idf_esp_bootloader_format
|
||||
|
||||
build esp-idf/esp_app_format/CMakeFiles/__idf_esp_app_format.dir/esp_app_desc.c.obj: C_COMPILER____idf_esp_app_format_unscanned_ /home/abobkov/esp/esp-idf/components/esp_app_format/esp_app_desc.c || cmake_object_order_depends_target___idf_esp_app_format
|
||||
DEFINES = -DESP_PLATFORM -DIDF_VER=\"v5.4\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -D PROJECT_NAME=\"ESP-IDF_ePaper\" -DPROJECT_VER=\"ESP32-Node_Switch-v2.7-4578-g6e\"
|
||||
DEFINES = -DESP_PLATFORM -DIDF_VER=\"v5.4\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -D PROJECT_NAME=\"ESP-IDF_ePaper\" -DPROJECT_VER=\"ESP32-Node_Switch-v2.7-4579-g55\"
|
||||
DEP_FILE = esp-idf/esp_app_format/CMakeFiles/__idf_esp_app_format.dir/esp_app_desc.c.obj.d
|
||||
FLAGS = -march=rv32imc_zicsr_zifencei -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Og -fno-shrink-wrap -fmacro-prefix-map=/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper=. -fmacro-prefix-map=/home/abobkov/esp/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration
|
||||
INCLUDES = -I/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build/config -I/home/abobkov/esp/esp-idf/components/esp_app_format/include -I/home/abobkov/esp/esp-idf/components/newlib/platform_include -I/home/abobkov/esp/esp-idf/components/freertos/config/include -I/home/abobkov/esp/esp-idf/components/freertos/config/include/freertos -I/home/abobkov/esp/esp-idf/components/freertos/config/riscv/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -I/home/abobkov/esp/esp-idf/components/freertos/esp_additions/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include/soc -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include/soc/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_hw_support/dma/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/ldo/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/debug_probe/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/port/esp32c3/. -I/home/abobkov/esp/esp-idf/components/esp_hw_support/port/esp32c3/include -I/home/abobkov/esp/esp-idf/components/heap/include -I/home/abobkov/esp/esp-idf/components/heap/tlsf -I/home/abobkov/esp/esp-idf/components/log/include -I/home/abobkov/esp/esp-idf/components/soc/include -I/home/abobkov/esp/esp-idf/components/soc/esp32c3 -I/home/abobkov/esp/esp-idf/components/soc/esp32c3/include -I/home/abobkov/esp/esp-idf/components/soc/esp32c3/register -I/home/abobkov/esp/esp-idf/components/hal/platform_port/include -I/home/abobkov/esp/esp-idf/components/hal/esp32c3/include -I/home/abobkov/esp/esp-idf/components/hal/include -I/home/abobkov/esp/esp-idf/components/esp_rom/include -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3/include -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3/include/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_common/include -I/home/abobkov/esp/esp-idf/components/esp_system/include -I/home/abobkov/esp/esp-idf/components/esp_system/port/soc -I/home/abobkov/esp/esp-idf/components/esp_system/port/include/riscv -I/home/abobkov/esp/esp-idf/components/esp_system/port/include/private -I/home/abobkov/esp/esp-idf/components/riscv/include -I/home/abobkov/esp/esp-idf/components/lwip/include -I/home/abobkov/esp/esp-idf/components/lwip/include/apps -I/home/abobkov/esp/esp-idf/components/lwip/include/apps/sntp -I/home/abobkov/esp/esp-idf/components/lwip/lwip/src/include -I/home/abobkov/esp/esp-idf/components/lwip/port/include -I/home/abobkov/esp/esp-idf/components/lwip/port/freertos/include -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include/arch -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include/sys
|
||||
|
@@ -907,7 +907,7 @@
|
||||
},
|
||||
{
|
||||
"directory": "/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build",
|
||||
"command": "/home/abobkov/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/riscv32-esp-elf-gcc -DESP_PLATFORM -DIDF_VER=\\\"v5.4\\\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -D PROJECT_NAME=\\\"ESP-IDF_ePaper\\\" -DPROJECT_VER=\\\"ESP32-Node_Switch-v2.7-4578-g6e\\\" -I/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build/config -I/home/abobkov/esp/esp-idf/components/esp_app_format/include -I/home/abobkov/esp/esp-idf/components/newlib/platform_include -I/home/abobkov/esp/esp-idf/components/freertos/config/include -I/home/abobkov/esp/esp-idf/components/freertos/config/include/freertos -I/home/abobkov/esp/esp-idf/components/freertos/config/riscv/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -I/home/abobkov/esp/esp-idf/components/freertos/esp_additions/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include/soc -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include/soc/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_hw_support/dma/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/ldo/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/debug_probe/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/port/esp32c3/. -I/home/abobkov/esp/esp-idf/components/esp_hw_support/port/esp32c3/include -I/home/abobkov/esp/esp-idf/components/heap/include -I/home/abobkov/esp/esp-idf/components/heap/tlsf -I/home/abobkov/esp/esp-idf/components/log/include -I/home/abobkov/esp/esp-idf/components/soc/include -I/home/abobkov/esp/esp-idf/components/soc/esp32c3 -I/home/abobkov/esp/esp-idf/components/soc/esp32c3/include -I/home/abobkov/esp/esp-idf/components/soc/esp32c3/register -I/home/abobkov/esp/esp-idf/components/hal/platform_port/include -I/home/abobkov/esp/esp-idf/components/hal/esp32c3/include -I/home/abobkov/esp/esp-idf/components/hal/include -I/home/abobkov/esp/esp-idf/components/esp_rom/include -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3/include -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3/include/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_common/include -I/home/abobkov/esp/esp-idf/components/esp_system/include -I/home/abobkov/esp/esp-idf/components/esp_system/port/soc -I/home/abobkov/esp/esp-idf/components/esp_system/port/include/riscv -I/home/abobkov/esp/esp-idf/components/esp_system/port/include/private -I/home/abobkov/esp/esp-idf/components/riscv/include -I/home/abobkov/esp/esp-idf/components/lwip/include -I/home/abobkov/esp/esp-idf/components/lwip/include/apps -I/home/abobkov/esp/esp-idf/components/lwip/include/apps/sntp -I/home/abobkov/esp/esp-idf/components/lwip/lwip/src/include -I/home/abobkov/esp/esp-idf/components/lwip/port/include -I/home/abobkov/esp/esp-idf/components/lwip/port/freertos/include -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include/arch -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include/sys -march=rv32imc_zicsr_zifencei -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Og -fno-shrink-wrap -fmacro-prefix-map=/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper=. -fmacro-prefix-map=/home/abobkov/esp/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -o esp-idf/esp_app_format/CMakeFiles/__idf_esp_app_format.dir/esp_app_desc.c.obj -c /home/abobkov/esp/esp-idf/components/esp_app_format/esp_app_desc.c",
|
||||
"command": "/home/abobkov/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/riscv32-esp-elf-gcc -DESP_PLATFORM -DIDF_VER=\\\"v5.4\\\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -D PROJECT_NAME=\\\"ESP-IDF_ePaper\\\" -DPROJECT_VER=\\\"ESP32-Node_Switch-v2.7-4579-g55\\\" -I/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build/config -I/home/abobkov/esp/esp-idf/components/esp_app_format/include -I/home/abobkov/esp/esp-idf/components/newlib/platform_include -I/home/abobkov/esp/esp-idf/components/freertos/config/include -I/home/abobkov/esp/esp-idf/components/freertos/config/include/freertos -I/home/abobkov/esp/esp-idf/components/freertos/config/riscv/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -I/home/abobkov/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -I/home/abobkov/esp/esp-idf/components/freertos/esp_additions/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include/soc -I/home/abobkov/esp/esp-idf/components/esp_hw_support/include/soc/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_hw_support/dma/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/ldo/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/debug_probe/include -I/home/abobkov/esp/esp-idf/components/esp_hw_support/port/esp32c3/. -I/home/abobkov/esp/esp-idf/components/esp_hw_support/port/esp32c3/include -I/home/abobkov/esp/esp-idf/components/heap/include -I/home/abobkov/esp/esp-idf/components/heap/tlsf -I/home/abobkov/esp/esp-idf/components/log/include -I/home/abobkov/esp/esp-idf/components/soc/include -I/home/abobkov/esp/esp-idf/components/soc/esp32c3 -I/home/abobkov/esp/esp-idf/components/soc/esp32c3/include -I/home/abobkov/esp/esp-idf/components/soc/esp32c3/register -I/home/abobkov/esp/esp-idf/components/hal/platform_port/include -I/home/abobkov/esp/esp-idf/components/hal/esp32c3/include -I/home/abobkov/esp/esp-idf/components/hal/include -I/home/abobkov/esp/esp-idf/components/esp_rom/include -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3/include -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3/include/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_rom/esp32c3 -I/home/abobkov/esp/esp-idf/components/esp_common/include -I/home/abobkov/esp/esp-idf/components/esp_system/include -I/home/abobkov/esp/esp-idf/components/esp_system/port/soc -I/home/abobkov/esp/esp-idf/components/esp_system/port/include/riscv -I/home/abobkov/esp/esp-idf/components/esp_system/port/include/private -I/home/abobkov/esp/esp-idf/components/riscv/include -I/home/abobkov/esp/esp-idf/components/lwip/include -I/home/abobkov/esp/esp-idf/components/lwip/include/apps -I/home/abobkov/esp/esp-idf/components/lwip/include/apps/sntp -I/home/abobkov/esp/esp-idf/components/lwip/lwip/src/include -I/home/abobkov/esp/esp-idf/components/lwip/port/include -I/home/abobkov/esp/esp-idf/components/lwip/port/freertos/include -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include/arch -I/home/abobkov/esp/esp-idf/components/lwip/port/esp32xx/include/sys -march=rv32imc_zicsr_zifencei -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Og -fno-shrink-wrap -fmacro-prefix-map=/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper=. -fmacro-prefix-map=/home/abobkov/esp/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -o esp-idf/esp_app_format/CMakeFiles/__idf_esp_app_format.dir/esp_app_desc.c.obj -c /home/abobkov/esp/esp-idf/components/esp_app_format/esp_app_desc.c",
|
||||
"file": "/home/abobkov/esp/esp-idf/components/esp_app_format/esp_app_desc.c",
|
||||
"output": "esp-idf/esp_app_format/CMakeFiles/__idf_esp_app_format.dir/esp_app_desc.c.obj"
|
||||
},
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"version": "1.1",
|
||||
"project_name": "ESP-IDF_ePaper",
|
||||
"project_version": "ESP32-Node_Switch-v2.7-4578-g6ef196edf-dirty",
|
||||
"project_version": "ESP32-Node_Switch-v2.7-4579-g55a08b604-dirty",
|
||||
"project_path": "/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper",
|
||||
"idf_path": "/home/abobkov/esp/esp-idf",
|
||||
"build_dir": "/home/abobkov/MyProjects/ESP-Nodes/ESP-IDF_ePaper/build",
|
||||
|
@@ -1,178 +0,0 @@
|
||||
#pragma once
|
||||
#include <Adafruit_GFX.h>
|
||||
|
||||
const uint8_t FreeMono9pt7bBitmaps[] PROGMEM = {
|
||||
0xAA, 0xA8, 0x0C, 0xED, 0x24, 0x92, 0x48, 0x24, 0x48, 0x91, 0x2F, 0xE4,
|
||||
0x89, 0x7F, 0x28, 0x51, 0x22, 0x40, 0x08, 0x3E, 0x62, 0x40, 0x30, 0x0E,
|
||||
0x01, 0x81, 0xC3, 0xBE, 0x08, 0x08, 0x71, 0x12, 0x23, 0x80, 0x23, 0xB8,
|
||||
0x0E, 0x22, 0x44, 0x70, 0x38, 0x81, 0x02, 0x06, 0x1A, 0x65, 0x46, 0xC8,
|
||||
0xEC, 0xE9, 0x24, 0x5A, 0xAA, 0xA9, 0x40, 0xA9, 0x55, 0x5A, 0x80, 0x10,
|
||||
0x22, 0x4B, 0xE3, 0x05, 0x11, 0x00, 0x10, 0x20, 0x47, 0xF1, 0x02, 0x04,
|
||||
0x00, 0x6B, 0x48, 0xFF, 0x00, 0xF0, 0x02, 0x08, 0x10, 0x60, 0x81, 0x04,
|
||||
0x08, 0x20, 0x41, 0x02, 0x08, 0x00, 0x38, 0x8A, 0x0C, 0x18, 0x30, 0x60,
|
||||
0xC1, 0x82, 0x88, 0xE0, 0x27, 0x28, 0x42, 0x10, 0x84, 0x21, 0x3E, 0x38,
|
||||
0x8A, 0x08, 0x10, 0x20, 0x82, 0x08, 0x61, 0x03, 0xF8, 0x7C, 0x06, 0x02,
|
||||
0x02, 0x1C, 0x06, 0x01, 0x01, 0x01, 0x42, 0x3C, 0x18, 0xA2, 0x92, 0x8A,
|
||||
0x28, 0xBF, 0x08, 0x21, 0xC0, 0x7C, 0x81, 0x03, 0xE4, 0x40, 0x40, 0x81,
|
||||
0x03, 0x88, 0xE0, 0x1E, 0x41, 0x04, 0x0B, 0x98, 0xB0, 0xC1, 0xC2, 0x88,
|
||||
0xE0, 0xFE, 0x04, 0x08, 0x20, 0x40, 0x82, 0x04, 0x08, 0x20, 0x40, 0x38,
|
||||
0x8A, 0x0C, 0x14, 0x47, 0x11, 0x41, 0x83, 0x8C, 0xE0, 0x38, 0x8A, 0x1C,
|
||||
0x18, 0x68, 0xCE, 0x81, 0x04, 0x13, 0xC0, 0xF0, 0x0F, 0x6C, 0x00, 0xD2,
|
||||
0xD2, 0x00, 0x03, 0x04, 0x18, 0x60, 0x60, 0x18, 0x04, 0x03, 0xFF, 0x80,
|
||||
0x00, 0x1F, 0xF0, 0x40, 0x18, 0x03, 0x00, 0x60, 0x20, 0x60, 0xC0, 0x80,
|
||||
0x3D, 0x84, 0x08, 0x30, 0xC2, 0x00, 0x00, 0x00, 0x30, 0x3C, 0x46, 0x82,
|
||||
0x8E, 0xB2, 0xA2, 0xA2, 0x9F, 0x80, 0x80, 0x40, 0x3C, 0x3C, 0x01, 0x40,
|
||||
0x28, 0x09, 0x01, 0x10, 0x42, 0x0F, 0xC1, 0x04, 0x40, 0x9E, 0x3C, 0xFE,
|
||||
0x21, 0x90, 0x48, 0x67, 0xE2, 0x09, 0x02, 0x81, 0x41, 0xFF, 0x80, 0x3E,
|
||||
0xB0, 0xF0, 0x30, 0x08, 0x04, 0x02, 0x00, 0x80, 0x60, 0x8F, 0x80, 0xFE,
|
||||
0x21, 0x90, 0x68, 0x14, 0x0A, 0x05, 0x02, 0x83, 0x43, 0x7F, 0x00, 0xFF,
|
||||
0x20, 0x90, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x81, 0x40, 0xFF, 0xC0, 0xFF,
|
||||
0xA0, 0x50, 0x08, 0x87, 0xC2, 0x21, 0x00, 0x80, 0x40, 0x78, 0x00, 0x1E,
|
||||
0x98, 0x6C, 0x0A, 0x00, 0x80, 0x20, 0xF8, 0x0B, 0x02, 0x60, 0x87, 0xC0,
|
||||
0xE3, 0xA0, 0x90, 0x48, 0x27, 0xF2, 0x09, 0x04, 0x82, 0x41, 0x71, 0xC0,
|
||||
0xF9, 0x08, 0x42, 0x10, 0x84, 0x27, 0xC0, 0x1F, 0x02, 0x02, 0x02, 0x02,
|
||||
0x02, 0x82, 0x82, 0xC6, 0x78, 0xE3, 0xA1, 0x11, 0x09, 0x05, 0x83, 0x21,
|
||||
0x08, 0x84, 0x41, 0x70, 0xC0, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x41,
|
||||
0x41, 0x41, 0xFF, 0xE0, 0xEC, 0x19, 0x45, 0x28, 0xA4, 0xA4, 0x94, 0x91,
|
||||
0x12, 0x02, 0x40, 0x5C, 0x1C, 0xC3, 0xB0, 0x94, 0x4A, 0x24, 0x92, 0x49,
|
||||
0x14, 0x8A, 0x43, 0x70, 0x80, 0x1E, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06,
|
||||
0x02, 0x82, 0x63, 0x0F, 0x00, 0xFE, 0x43, 0x41, 0x41, 0x42, 0x7C, 0x40,
|
||||
0x40, 0x40, 0xF0, 0x1C, 0x31, 0x90, 0x50, 0x18, 0x0C, 0x06, 0x02, 0x82,
|
||||
0x63, 0x1F, 0x04, 0x07, 0x92, 0x30, 0xFE, 0x21, 0x90, 0x48, 0x24, 0x23,
|
||||
0xE1, 0x10, 0x84, 0x41, 0x70, 0xC0, 0x3A, 0xCD, 0x0A, 0x03, 0x01, 0x80,
|
||||
0xC1, 0xC7, 0x78, 0xFF, 0xC4, 0x62, 0x21, 0x00, 0x80, 0x40, 0x20, 0x10,
|
||||
0x08, 0x1F, 0x00, 0xE3, 0xA0, 0x90, 0x48, 0x24, 0x12, 0x09, 0x04, 0x82,
|
||||
0x22, 0x0E, 0x00, 0xF1, 0xE8, 0x10, 0x82, 0x10, 0x42, 0x10, 0x22, 0x04,
|
||||
0x80, 0x50, 0x0C, 0x00, 0x80, 0xF1, 0xE8, 0x09, 0x11, 0x25, 0x44, 0xA8,
|
||||
0x55, 0x0C, 0xA1, 0x8C, 0x31, 0x84, 0x30, 0xE3, 0xA0, 0x88, 0x82, 0x80,
|
||||
0x80, 0xC0, 0x90, 0x44, 0x41, 0x71, 0xC0, 0xE3, 0xA0, 0x88, 0x82, 0x81,
|
||||
0x40, 0x40, 0x20, 0x10, 0x08, 0x1F, 0x00, 0xFD, 0x0A, 0x20, 0x81, 0x04,
|
||||
0x10, 0x21, 0x83, 0xFC, 0xEA, 0xAA, 0xAA, 0xC0, 0x80, 0x81, 0x03, 0x02,
|
||||
0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0xD5, 0x55, 0x55, 0xC0,
|
||||
0x10, 0x51, 0x22, 0x28, 0x20, 0xFF, 0xE0, 0x88, 0x80, 0x7E, 0x00, 0x80,
|
||||
0x47, 0xEC, 0x14, 0x0A, 0x0C, 0xFB, 0xC0, 0x20, 0x10, 0x0B, 0xC6, 0x12,
|
||||
0x05, 0x02, 0x81, 0x40, 0xB0, 0xB7, 0x80, 0x3A, 0x8E, 0x0C, 0x08, 0x10,
|
||||
0x10, 0x9E, 0x03, 0x00, 0x80, 0x47, 0xA4, 0x34, 0x0A, 0x05, 0x02, 0x81,
|
||||
0x21, 0x8F, 0x60, 0x3C, 0x43, 0x81, 0xFF, 0x80, 0x80, 0x61, 0x3E, 0x3D,
|
||||
0x04, 0x3E, 0x41, 0x04, 0x10, 0x41, 0x0F, 0x80, 0x3D, 0xA1, 0xA0, 0x50,
|
||||
0x28, 0x14, 0x09, 0x0C, 0x7A, 0x01, 0x01, 0x87, 0x80, 0xC0, 0x20, 0x10,
|
||||
0x0B, 0xC6, 0x32, 0x09, 0x04, 0x82, 0x41, 0x20, 0xB8, 0xE0, 0x10, 0x01,
|
||||
0xC0, 0x81, 0x02, 0x04, 0x08, 0x11, 0xFC, 0x10, 0x3E, 0x10, 0x84, 0x21,
|
||||
0x08, 0x42, 0x3F, 0x00, 0xC0, 0x40, 0x40, 0x4F, 0x44, 0x58, 0x70, 0x48,
|
||||
0x44, 0x42, 0xC7, 0x70, 0x20, 0x40, 0x81, 0x02, 0x04, 0x08, 0x10, 0x23,
|
||||
0xF8, 0xB7, 0x64, 0x62, 0x31, 0x18, 0x8C, 0x46, 0x23, 0x91, 0x5E, 0x31,
|
||||
0x90, 0x48, 0x24, 0x12, 0x09, 0x05, 0xC7, 0x3E, 0x31, 0xA0, 0x30, 0x18,
|
||||
0x0C, 0x05, 0x8C, 0x7C, 0xDE, 0x30, 0x90, 0x28, 0x14, 0x0A, 0x05, 0x84,
|
||||
0xBC, 0x40, 0x20, 0x38, 0x00, 0x3D, 0xA1, 0xA0, 0x50, 0x28, 0x14, 0x09,
|
||||
0x0C, 0x7A, 0x01, 0x00, 0x80, 0xE0, 0xCE, 0xA1, 0x82, 0x04, 0x08, 0x10,
|
||||
0x7C, 0x3A, 0x8D, 0x0B, 0x80, 0xF0, 0x70, 0xDE, 0x40, 0x40, 0xFC, 0x40,
|
||||
0x40, 0x40, 0x40, 0x40, 0x41, 0x3E, 0xC3, 0x41, 0x41, 0x41, 0x41, 0x41,
|
||||
0x43, 0x3D, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x20, 0xA0, 0x50, 0x10, 0xE3,
|
||||
0xC0, 0x92, 0x4B, 0x25, 0x92, 0xA9, 0x98, 0x44, 0xE3, 0x31, 0x05, 0x01,
|
||||
0x01, 0x41, 0x11, 0x05, 0xC7, 0xE3, 0xA0, 0x90, 0x84, 0x42, 0x40, 0xA0,
|
||||
0x60, 0x10, 0x10, 0x08, 0x3E, 0x00, 0xFD, 0x08, 0x20, 0x82, 0x08, 0x10,
|
||||
0xBF, 0x29, 0x24, 0xA2, 0x49, 0x26, 0xFF, 0xF8, 0x89, 0x24, 0x8A, 0x49,
|
||||
0x2C, 0x61, 0x24, 0x30};
|
||||
|
||||
const GFXglyph FreeMono9pt7bGlyphs[] PROGMEM = {
|
||||
{0, 0, 0, 11, 0, 1}, // 0x20 ' '
|
||||
{0, 2, 11, 11, 4, -10}, // 0x21 '!'
|
||||
{3, 6, 5, 11, 2, -10}, // 0x22 '"'
|
||||
{7, 7, 12, 11, 2, -10}, // 0x23 '#'
|
||||
{18, 8, 12, 11, 1, -10}, // 0x24 '$'
|
||||
{30, 7, 11, 11, 2, -10}, // 0x25 '%'
|
||||
{40, 7, 10, 11, 2, -9}, // 0x26 '&'
|
||||
{49, 3, 5, 11, 4, -10}, // 0x27 '''
|
||||
{51, 2, 13, 11, 5, -10}, // 0x28 '('
|
||||
{55, 2, 13, 11, 4, -10}, // 0x29 ')'
|
||||
{59, 7, 7, 11, 2, -10}, // 0x2A '*'
|
||||
{66, 7, 7, 11, 2, -8}, // 0x2B '+'
|
||||
{73, 3, 5, 11, 2, -1}, // 0x2C ','
|
||||
{75, 9, 1, 11, 1, -5}, // 0x2D '-'
|
||||
{77, 2, 2, 11, 4, -1}, // 0x2E '.'
|
||||
{78, 7, 13, 11, 2, -11}, // 0x2F '/'
|
||||
{90, 7, 11, 11, 2, -10}, // 0x30 '0'
|
||||
{100, 5, 11, 11, 3, -10}, // 0x31 '1'
|
||||
{107, 7, 11, 11, 2, -10}, // 0x32 '2'
|
||||
{117, 8, 11, 11, 1, -10}, // 0x33 '3'
|
||||
{128, 6, 11, 11, 3, -10}, // 0x34 '4'
|
||||
{137, 7, 11, 11, 2, -10}, // 0x35 '5'
|
||||
{147, 7, 11, 11, 2, -10}, // 0x36 '6'
|
||||
{157, 7, 11, 11, 2, -10}, // 0x37 '7'
|
||||
{167, 7, 11, 11, 2, -10}, // 0x38 '8'
|
||||
{177, 7, 11, 11, 2, -10}, // 0x39 '9'
|
||||
{187, 2, 8, 11, 4, -7}, // 0x3A ':'
|
||||
{189, 3, 11, 11, 3, -7}, // 0x3B ';'
|
||||
{194, 8, 8, 11, 1, -8}, // 0x3C '<'
|
||||
{202, 9, 4, 11, 1, -6}, // 0x3D '='
|
||||
{207, 9, 8, 11, 1, -8}, // 0x3E '>'
|
||||
{216, 7, 10, 11, 2, -9}, // 0x3F '?'
|
||||
{225, 8, 12, 11, 2, -10}, // 0x40 '@'
|
||||
{237, 11, 10, 11, 0, -9}, // 0x41 'A'
|
||||
{251, 9, 10, 11, 1, -9}, // 0x42 'B'
|
||||
{263, 9, 10, 11, 1, -9}, // 0x43 'C'
|
||||
{275, 9, 10, 11, 1, -9}, // 0x44 'D'
|
||||
{287, 9, 10, 11, 1, -9}, // 0x45 'E'
|
||||
{299, 9, 10, 11, 1, -9}, // 0x46 'F'
|
||||
{311, 10, 10, 11, 1, -9}, // 0x47 'G'
|
||||
{324, 9, 10, 11, 1, -9}, // 0x48 'H'
|
||||
{336, 5, 10, 11, 3, -9}, // 0x49 'I'
|
||||
{343, 8, 10, 11, 2, -9}, // 0x4A 'J'
|
||||
{353, 9, 10, 11, 1, -9}, // 0x4B 'K'
|
||||
{365, 8, 10, 11, 2, -9}, // 0x4C 'L'
|
||||
{375, 11, 10, 11, 0, -9}, // 0x4D 'M'
|
||||
{389, 9, 10, 11, 1, -9}, // 0x4E 'N'
|
||||
{401, 9, 10, 11, 1, -9}, // 0x4F 'O'
|
||||
{413, 8, 10, 11, 1, -9}, // 0x50 'P'
|
||||
{423, 9, 13, 11, 1, -9}, // 0x51 'Q'
|
||||
{438, 9, 10, 11, 1, -9}, // 0x52 'R'
|
||||
{450, 7, 10, 11, 2, -9}, // 0x53 'S'
|
||||
{459, 9, 10, 11, 1, -9}, // 0x54 'T'
|
||||
{471, 9, 10, 11, 1, -9}, // 0x55 'U'
|
||||
{483, 11, 10, 11, 0, -9}, // 0x56 'V'
|
||||
{497, 11, 10, 11, 0, -9}, // 0x57 'W'
|
||||
{511, 9, 10, 11, 1, -9}, // 0x58 'X'
|
||||
{523, 9, 10, 11, 1, -9}, // 0x59 'Y'
|
||||
{535, 7, 10, 11, 2, -9}, // 0x5A 'Z'
|
||||
{544, 2, 13, 11, 5, -10}, // 0x5B '['
|
||||
{548, 7, 13, 11, 2, -11}, // 0x5C '\'
|
||||
{560, 2, 13, 11, 4, -10}, // 0x5D ']'
|
||||
{564, 7, 5, 11, 2, -10}, // 0x5E '^'
|
||||
{569, 11, 1, 11, 0, 2}, // 0x5F '_'
|
||||
{571, 3, 3, 11, 3, -11}, // 0x60 '`'
|
||||
{573, 9, 8, 11, 1, -7}, // 0x61 'a'
|
||||
{582, 9, 11, 11, 1, -10}, // 0x62 'b'
|
||||
{595, 7, 8, 11, 2, -7}, // 0x63 'c'
|
||||
{602, 9, 11, 11, 1, -10}, // 0x64 'd'
|
||||
{615, 8, 8, 11, 1, -7}, // 0x65 'e'
|
||||
{623, 6, 11, 11, 3, -10}, // 0x66 'f'
|
||||
{632, 9, 11, 11, 1, -7}, // 0x67 'g'
|
||||
{645, 9, 11, 11, 1, -10}, // 0x68 'h'
|
||||
{658, 7, 10, 11, 2, -9}, // 0x69 'i'
|
||||
{667, 5, 13, 11, 3, -9}, // 0x6A 'j'
|
||||
{676, 8, 11, 11, 2, -10}, // 0x6B 'k'
|
||||
{687, 7, 11, 11, 2, -10}, // 0x6C 'l'
|
||||
{697, 9, 8, 11, 1, -7}, // 0x6D 'm'
|
||||
{706, 9, 8, 11, 1, -7}, // 0x6E 'n'
|
||||
{715, 9, 8, 11, 1, -7}, // 0x6F 'o'
|
||||
{724, 9, 11, 11, 1, -7}, // 0x70 'p'
|
||||
{737, 9, 11, 11, 1, -7}, // 0x71 'q'
|
||||
{750, 7, 8, 11, 3, -7}, // 0x72 'r'
|
||||
{757, 7, 8, 11, 2, -7}, // 0x73 's'
|
||||
{764, 8, 10, 11, 2, -9}, // 0x74 't'
|
||||
{774, 8, 8, 11, 1, -7}, // 0x75 'u'
|
||||
{782, 9, 8, 11, 1, -7}, // 0x76 'v'
|
||||
{791, 9, 8, 11, 1, -7}, // 0x77 'w'
|
||||
{800, 9, 8, 11, 1, -7}, // 0x78 'x'
|
||||
{809, 9, 11, 11, 1, -7}, // 0x79 'y'
|
||||
{822, 7, 8, 11, 2, -7}, // 0x7A 'z'
|
||||
{829, 3, 13, 11, 4, -10}, // 0x7B '{'
|
||||
{834, 1, 13, 11, 5, -10}, // 0x7C '|'
|
||||
{836, 3, 13, 11, 4, -10}, // 0x7D '}'
|
||||
{841, 7, 3, 11, 2, -6}}; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeMono9pt7b PROGMEM = {(uint8_t *)FreeMono9pt7bBitmaps,
|
||||
(GFXglyph *)FreeMono9pt7bGlyphs, 0x20,
|
||||
0x7E, 18};
|
||||
|
||||
// Approx. 1516 bytes
|
@@ -1,252 +0,0 @@
|
||||
#pragma once
|
||||
#include <Adafruit_GFX.h>
|
||||
|
||||
const uint8_t FreeMonoBold12pt7bBitmaps[] PROGMEM = {
|
||||
0xFF, 0xFF, 0xFF, 0xF6, 0x66, 0x60, 0x6F, 0x60, 0xE7, 0xE7, 0x62, 0x42,
|
||||
0x42, 0x42, 0x42, 0x11, 0x87, 0x30, 0xC6, 0x18, 0xC3, 0x31, 0xFF, 0xFF,
|
||||
0xF9, 0x98, 0x33, 0x06, 0x60, 0xCC, 0x7F, 0xEF, 0xFC, 0x66, 0x0C, 0xC3,
|
||||
0x98, 0x63, 0x04, 0x40, 0x0C, 0x03, 0x00, 0xC0, 0xFE, 0x7F, 0x9C, 0x66,
|
||||
0x09, 0x80, 0x78, 0x0F, 0xE0, 0x7F, 0x03, 0xE0, 0xF8, 0x7F, 0xFB, 0xFC,
|
||||
0x0C, 0x03, 0x00, 0xC0, 0x30, 0x38, 0x1F, 0x0C, 0x42, 0x10, 0xC4, 0x1F,
|
||||
0x03, 0x9C, 0x3C, 0x7F, 0x33, 0xE0, 0x8C, 0x21, 0x08, 0xC3, 0xE0, 0x70,
|
||||
0x3E, 0x1F, 0xC6, 0x61, 0x80, 0x70, 0x0C, 0x07, 0x83, 0xEE, 0xDF, 0xB3,
|
||||
0xCC, 0x73, 0xFE, 0x7F, 0x80, 0xFD, 0x24, 0x90, 0x39, 0xDC, 0xE6, 0x73,
|
||||
0x18, 0xC6, 0x31, 0x8C, 0x31, 0x8E, 0x31, 0xC4, 0xE7, 0x1C, 0xE3, 0x1C,
|
||||
0x63, 0x18, 0xC6, 0x31, 0x98, 0xCE, 0x67, 0x10, 0x0C, 0x03, 0x00, 0xC3,
|
||||
0xB7, 0xFF, 0xDF, 0xE1, 0xE0, 0xFC, 0x33, 0x0C, 0xC0, 0x06, 0x00, 0x60,
|
||||
0x06, 0x00, 0x60, 0x06, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x06, 0x00, 0x60,
|
||||
0x06, 0x00, 0x60, 0x06, 0x00, 0x3B, 0x9C, 0xCE, 0x62, 0x00, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x80, 0x00, 0x40, 0x30, 0x1C, 0x07, 0x03, 0x80, 0xE0, 0x30,
|
||||
0x1C, 0x06, 0x03, 0x80, 0xC0, 0x70, 0x18, 0x0E, 0x03, 0x01, 0xC0, 0x60,
|
||||
0x38, 0x0E, 0x01, 0x00, 0x1E, 0x0F, 0xC6, 0x1B, 0x87, 0xC0, 0xF0, 0x3C,
|
||||
0x0F, 0x03, 0xC0, 0xF0, 0x3C, 0x0F, 0x87, 0x61, 0x8F, 0xC1, 0xE0, 0x1C,
|
||||
0x0F, 0x0F, 0xC3, 0xB0, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00,
|
||||
0xC0, 0x30, 0x0C, 0x3F, 0xFF, 0xFC, 0x1F, 0x1F, 0xEE, 0x1F, 0x83, 0xC0,
|
||||
0xC0, 0x70, 0x38, 0x1E, 0x0F, 0x07, 0x83, 0xC1, 0xE3, 0xF0, 0xFF, 0xFF,
|
||||
0xFC, 0x3F, 0x0F, 0xF1, 0x87, 0x00, 0x60, 0x0C, 0x03, 0x83, 0xE0, 0x7C,
|
||||
0x01, 0xC0, 0x0C, 0x01, 0x80, 0x3C, 0x0F, 0xFF, 0x9F, 0xC0, 0x07, 0x07,
|
||||
0x83, 0xC3, 0xE1, 0xB1, 0xD8, 0xCC, 0xC6, 0xE3, 0x7F, 0xFF, 0xE0, 0x61,
|
||||
0xF8, 0xFC, 0x7F, 0x9F, 0xE6, 0x01, 0x80, 0x60, 0x1F, 0x87, 0xF9, 0x86,
|
||||
0x00, 0xC0, 0x30, 0x0C, 0x03, 0xC1, 0xBF, 0xE7, 0xE0, 0x07, 0xC7, 0xF3,
|
||||
0xC1, 0xC0, 0x60, 0x38, 0x0E, 0xF3, 0xFE, 0xF1, 0xF8, 0x3E, 0x0F, 0x83,
|
||||
0x71, 0xCF, 0xE1, 0xF0, 0xFF, 0xFF, 0xFC, 0x1F, 0x07, 0x01, 0x80, 0x60,
|
||||
0x38, 0x0C, 0x03, 0x01, 0xC0, 0x60, 0x18, 0x0E, 0x03, 0x00, 0xC0, 0x1E,
|
||||
0x1F, 0xEE, 0x1F, 0x03, 0xC0, 0xF0, 0x36, 0x19, 0xFE, 0x7F, 0xB8, 0x7C,
|
||||
0x0F, 0x03, 0xE1, 0xDF, 0xE3, 0xF0, 0x3E, 0x1F, 0xCE, 0x3B, 0x07, 0xC1,
|
||||
0xF0, 0x7E, 0x3D, 0xFF, 0x3D, 0xC0, 0x70, 0x18, 0x0E, 0x0F, 0x3F, 0x8F,
|
||||
0x80, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x77, 0x70, 0x00, 0x00, 0x76, 0x6C,
|
||||
0xC8, 0x80, 0x00, 0x30, 0x0F, 0x03, 0xE0, 0xF8, 0x3E, 0x0F, 0x80, 0x3E,
|
||||
0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x60, 0x0F, 0x80, 0x3E, 0x00, 0xF8,
|
||||
0x03, 0xE0, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x0F, 0x00, 0x40, 0x00, 0x7C,
|
||||
0x7F, 0xB0, 0xF8, 0x30, 0x18, 0x1C, 0x3C, 0x3C, 0x18, 0x08, 0x00, 0x07,
|
||||
0x03, 0x81, 0xC0, 0x1E, 0x07, 0xF1, 0xC7, 0x30, 0x6C, 0x0D, 0x87, 0xB3,
|
||||
0xF6, 0xE6, 0xD8, 0xDB, 0x1B, 0x73, 0x67, 0xFC, 0x7F, 0x80, 0x30, 0x03,
|
||||
0x00, 0x71, 0xC7, 0xF8, 0x7C, 0x00, 0x3F, 0x80, 0x7F, 0x80, 0x1F, 0x00,
|
||||
0x76, 0x00, 0xEE, 0x01, 0x8C, 0x07, 0x18, 0x0E, 0x38, 0x1F, 0xF0, 0x7F,
|
||||
0xF0, 0xC0, 0x61, 0x80, 0xCF, 0xC7, 0xFF, 0x8F, 0xC0, 0xFF, 0xC7, 0xFF,
|
||||
0x0C, 0x1C, 0x60, 0x63, 0x03, 0x18, 0x38, 0xFF, 0x87, 0xFE, 0x30, 0x39,
|
||||
0x80, 0xCC, 0x06, 0x60, 0x7F, 0xFF, 0x7F, 0xF0, 0x0F, 0xF3, 0xFF, 0x70,
|
||||
0x76, 0x03, 0xC0, 0x3C, 0x00, 0xC0, 0x0C, 0x00, 0xC0, 0x0C, 0x00, 0x60,
|
||||
0x37, 0x07, 0x3F, 0xF0, 0xFC, 0xFF, 0x0F, 0xFC, 0x60, 0xE6, 0x06, 0x60,
|
||||
0x36, 0x03, 0x60, 0x36, 0x03, 0x60, 0x36, 0x03, 0x60, 0x76, 0x0E, 0xFF,
|
||||
0xCF, 0xF8, 0xFF, 0xF7, 0xFF, 0x8C, 0x0C, 0x60, 0x63, 0x1B, 0x18, 0xC0,
|
||||
0xFE, 0x07, 0xF0, 0x31, 0x81, 0x8C, 0xCC, 0x06, 0x60, 0x3F, 0xFF, 0xFF,
|
||||
0xFC, 0xFF, 0xFF, 0xFF, 0xCC, 0x06, 0x60, 0x33, 0x19, 0x98, 0xC0, 0xFE,
|
||||
0x07, 0xF0, 0x31, 0x81, 0x8C, 0x0C, 0x00, 0x60, 0x0F, 0xF0, 0x7F, 0x80,
|
||||
0x0F, 0xF1, 0xFF, 0x9C, 0x1C, 0xC0, 0x6C, 0x03, 0x60, 0x03, 0x00, 0x18,
|
||||
0x7F, 0xC3, 0xFE, 0x01, 0xB8, 0x0C, 0xE0, 0xE3, 0xFF, 0x07, 0xE0, 0x7C,
|
||||
0xF9, 0xF3, 0xE3, 0x03, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0xFF, 0x0F,
|
||||
0xFC, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0xFC, 0xFF, 0xF3, 0xF0,
|
||||
0xFF, 0xFF, 0xF0, 0xC0, 0x30, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, 0x03,
|
||||
0x00, 0xC0, 0x30, 0xFF, 0xFF, 0xF0, 0x0F, 0xF8, 0x7F, 0xC0, 0x30, 0x01,
|
||||
0x80, 0x0C, 0x00, 0x60, 0x03, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x30, 0x31,
|
||||
0xC3, 0x0F, 0xF8, 0x1F, 0x00, 0xFC, 0xFB, 0xF3, 0xE3, 0x0E, 0x0C, 0x70,
|
||||
0x33, 0x80, 0xFC, 0x03, 0xF0, 0x0F, 0xE0, 0x39, 0xC0, 0xC3, 0x03, 0x0E,
|
||||
0x0C, 0x18, 0xFC, 0x7F, 0xF0, 0xF0, 0xFF, 0x0F, 0xF0, 0x18, 0x01, 0x80,
|
||||
0x18, 0x01, 0x80, 0x18, 0x01, 0x80, 0x18, 0x31, 0x83, 0x18, 0x31, 0x83,
|
||||
0xFF, 0xFF, 0xFF, 0xF0, 0x3F, 0xC0, 0xF7, 0x87, 0x9E, 0x1E, 0x7C, 0xF9,
|
||||
0xB3, 0xE6, 0xFD, 0x99, 0xF6, 0x67, 0x99, 0x8E, 0x66, 0x31, 0x98, 0x06,
|
||||
0xFC, 0xFF, 0xF3, 0xF0, 0xF1, 0xFF, 0xCF, 0xCF, 0x0C, 0x78, 0x63, 0xE3,
|
||||
0x1B, 0x18, 0xDC, 0xC6, 0x76, 0x31, 0xB1, 0x8F, 0x8C, 0x3C, 0x61, 0xE7,
|
||||
0xE7, 0x3F, 0x18, 0x0F, 0x03, 0xFC, 0x70, 0xE6, 0x06, 0xE0, 0x7C, 0x03,
|
||||
0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07, 0x60, 0x67, 0x0E, 0x3F, 0xC0, 0xF0,
|
||||
0xFF, 0x8F, 0xFE, 0x30, 0x73, 0x03, 0x30, 0x33, 0x03, 0x30, 0x73, 0xFE,
|
||||
0x3F, 0x83, 0x00, 0x30, 0x03, 0x00, 0xFF, 0x0F, 0xF0, 0x0F, 0x03, 0xFC,
|
||||
0x70, 0xE6, 0x06, 0xE0, 0x7C, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3E, 0x07,
|
||||
0x60, 0x67, 0x0E, 0x3F, 0xC1, 0xF0, 0x18, 0x33, 0xFF, 0x3F, 0xE0, 0xFF,
|
||||
0x83, 0xFF, 0x83, 0x07, 0x0C, 0x0C, 0x30, 0x30, 0xC1, 0xC3, 0xFE, 0x0F,
|
||||
0xF0, 0x31, 0xE0, 0xC3, 0x83, 0x07, 0x0C, 0x0C, 0xFE, 0x3F, 0xF8, 0x70,
|
||||
0x3F, 0xDF, 0xFE, 0x1F, 0x03, 0xC0, 0xF8, 0x07, 0xE0, 0x7E, 0x01, 0xF0,
|
||||
0x3C, 0x0F, 0x87, 0xFF, 0xBF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC6, 0x3C, 0x63,
|
||||
0xC6, 0x3C, 0x63, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60,
|
||||
0x3F, 0xC3, 0xFC, 0xFF, 0xFF, 0xFF, 0x60, 0x66, 0x06, 0x60, 0x66, 0x06,
|
||||
0x60, 0x66, 0x06, 0x60, 0x66, 0x06, 0x60, 0x63, 0x9C, 0x1F, 0xC0, 0xF0,
|
||||
0xFC, 0x3F, 0xFC, 0x3F, 0x30, 0x0C, 0x38, 0x1C, 0x18, 0x18, 0x1C, 0x38,
|
||||
0x1C, 0x38, 0x0E, 0x70, 0x0E, 0x70, 0x0F, 0x60, 0x07, 0xE0, 0x07, 0xE0,
|
||||
0x03, 0xC0, 0x03, 0xC0, 0xFC, 0xFF, 0xF3, 0xF6, 0x01, 0xDC, 0xC6, 0x77,
|
||||
0x99, 0xDE, 0x67, 0x79, 0x8D, 0xFE, 0x3F, 0xF8, 0xF3, 0xE3, 0xCF, 0x8F,
|
||||
0x3C, 0x38, 0x70, 0xE1, 0xC0, 0xF8, 0xFB, 0xE3, 0xE3, 0x86, 0x0F, 0x38,
|
||||
0x1F, 0xC0, 0x3E, 0x00, 0x70, 0x03, 0xE0, 0x0F, 0x80, 0x77, 0x03, 0x8E,
|
||||
0x1E, 0x1C, 0xFC, 0xFF, 0xF3, 0xF0, 0xF9, 0xFF, 0x9F, 0x30, 0xC3, 0x9C,
|
||||
0x19, 0x81, 0xF8, 0x0F, 0x00, 0x60, 0x06, 0x00, 0x60, 0x06, 0x00, 0x60,
|
||||
0x3F, 0xC3, 0xFC, 0xFF, 0xBF, 0xEC, 0x3B, 0x0C, 0xC6, 0x33, 0x80, 0xC0,
|
||||
0x60, 0x38, 0xCC, 0x36, 0x0F, 0x03, 0xFF, 0xFF, 0xF0, 0xFF, 0xF1, 0x8C,
|
||||
0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC7, 0xFE, 0x40, 0x30, 0x0E,
|
||||
0x01, 0x80, 0x70, 0x0C, 0x03, 0x80, 0x60, 0x1C, 0x03, 0x00, 0xE0, 0x18,
|
||||
0x07, 0x00, 0xC0, 0x38, 0x0E, 0x01, 0xC0, 0x70, 0x0C, 0x01, 0xFF, 0xC6,
|
||||
0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x1F, 0xFE, 0x04, 0x03,
|
||||
0x01, 0xE0, 0xFC, 0x7B, 0x9C, 0x7E, 0x1F, 0x03, 0xFF, 0xFF, 0xFF, 0xF0,
|
||||
0xCE, 0x73, 0x3F, 0x07, 0xF8, 0x00, 0xC0, 0x0C, 0x1F, 0xC7, 0xFC, 0x60,
|
||||
0xCC, 0x0C, 0xC1, 0xCF, 0xFF, 0x3F, 0xF0, 0xF0, 0x07, 0x80, 0x0C, 0x00,
|
||||
0x60, 0x03, 0x7C, 0x1F, 0xF8, 0xF1, 0xC7, 0x07, 0x30, 0x19, 0x80, 0xCC,
|
||||
0x06, 0x60, 0x73, 0xC7, 0x7F, 0xFB, 0xDF, 0x00, 0x1F, 0xB3, 0xFF, 0x70,
|
||||
0xFE, 0x07, 0xC0, 0x3C, 0x00, 0xC0, 0x0C, 0x00, 0x70, 0x77, 0xFF, 0x1F,
|
||||
0xC0, 0x01, 0xE0, 0x0F, 0x00, 0x18, 0x00, 0xC1, 0xF6, 0x3F, 0xF1, 0xC7,
|
||||
0x9C, 0x1C, 0xC0, 0x66, 0x03, 0x30, 0x19, 0x81, 0xC7, 0x1E, 0x3F, 0xFC,
|
||||
0x7D, 0xE0, 0x1F, 0x83, 0xFC, 0x70, 0xEE, 0x07, 0xFF, 0xFF, 0xFF, 0xE0,
|
||||
0x0E, 0x00, 0x70, 0x73, 0xFF, 0x1F, 0xC0, 0x07, 0xC3, 0xFC, 0x60, 0x0C,
|
||||
0x0F, 0xFD, 0xFF, 0x86, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01,
|
||||
0x81, 0xFF, 0xBF, 0xF0, 0x1F, 0x79, 0xFF, 0xDC, 0x79, 0x81, 0xCC, 0x06,
|
||||
0x60, 0x33, 0x01, 0x9C, 0x1C, 0x71, 0xE1, 0xFF, 0x07, 0xD8, 0x00, 0xC0,
|
||||
0x06, 0x00, 0x70, 0x7F, 0x03, 0xF0, 0xF0, 0x03, 0xC0, 0x03, 0x00, 0x0C,
|
||||
0x00, 0x37, 0xC0, 0xFF, 0x83, 0xC7, 0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3,
|
||||
0x03, 0x0C, 0x0C, 0x30, 0x33, 0xF3, 0xFF, 0xCF, 0xC0, 0x06, 0x00, 0xC0,
|
||||
0x00, 0x3F, 0x07, 0xE0, 0x0C, 0x01, 0x80, 0x30, 0x06, 0x00, 0xC0, 0x18,
|
||||
0x03, 0x0F, 0xFF, 0xFF, 0xC0, 0x06, 0x06, 0x00, 0xFF, 0xFF, 0x03, 0x03,
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0xFE, 0xFC,
|
||||
0xF0, 0x07, 0x80, 0x0C, 0x00, 0x60, 0x03, 0x3F, 0x19, 0xF8, 0xDE, 0x07,
|
||||
0xE0, 0x3E, 0x01, 0xF0, 0x0F, 0xC0, 0x6F, 0x03, 0x1C, 0x78, 0xFF, 0xC7,
|
||||
0xE0, 0x7E, 0x0F, 0xC0, 0x18, 0x03, 0x00, 0x60, 0x0C, 0x01, 0x80, 0x30,
|
||||
0x06, 0x00, 0xC0, 0x18, 0x03, 0x00, 0x61, 0xFF, 0xFF, 0xF8, 0xFE, 0xF1,
|
||||
0xFF, 0xF1, 0xCE, 0x63, 0x18, 0xC6, 0x31, 0x8C, 0x63, 0x18, 0xC6, 0x31,
|
||||
0x8C, 0x63, 0x19, 0xF7, 0xBF, 0xEF, 0x78, 0x77, 0xC1, 0xFF, 0x83, 0xC7,
|
||||
0x0C, 0x0C, 0x30, 0x30, 0xC0, 0xC3, 0x03, 0x0C, 0x0C, 0x30, 0x33, 0xF1,
|
||||
0xFF, 0xC7, 0xC0, 0x1F, 0x83, 0xFC, 0x70, 0xEE, 0x07, 0xC0, 0x3C, 0x03,
|
||||
0xC0, 0x3E, 0x07, 0x70, 0xE3, 0xFC, 0x1F, 0x80, 0xF7, 0xE3, 0xFF, 0xC3,
|
||||
0xC3, 0x8E, 0x07, 0x30, 0x0C, 0xC0, 0x33, 0x00, 0xCE, 0x07, 0x3C, 0x38,
|
||||
0xFF, 0xC3, 0x7E, 0x0C, 0x00, 0x30, 0x00, 0xC0, 0x0F, 0xE0, 0x3F, 0x80,
|
||||
0x1F, 0xBC, 0xFF, 0xF7, 0x0F, 0x38, 0x1C, 0xC0, 0x33, 0x00, 0xCC, 0x03,
|
||||
0x38, 0x1C, 0x70, 0xF0, 0xFF, 0xC1, 0xFB, 0x00, 0x0C, 0x00, 0x30, 0x00,
|
||||
0xC0, 0x1F, 0xC0, 0x7F, 0x79, 0xE7, 0xFF, 0x1F, 0x31, 0xC0, 0x18, 0x01,
|
||||
0x80, 0x18, 0x01, 0x80, 0x18, 0x0F, 0xFC, 0xFF, 0xC0, 0x3F, 0x9F, 0xFE,
|
||||
0x1F, 0x82, 0xFE, 0x1F, 0xE0, 0xFF, 0x03, 0xE0, 0xFF, 0xFF, 0xF0, 0x30,
|
||||
0x06, 0x00, 0xC0, 0x7F, 0xEF, 0xFC, 0x60, 0x0C, 0x01, 0x80, 0x30, 0x06,
|
||||
0x00, 0xC0, 0x18, 0x71, 0xFE, 0x1F, 0x00, 0xF1, 0xF7, 0x8F, 0x8C, 0x0C,
|
||||
0x60, 0x63, 0x03, 0x18, 0x18, 0xC0, 0xC6, 0x06, 0x38, 0xF0, 0xFF, 0xC3,
|
||||
0xEE, 0xFC, 0xFF, 0xF3, 0xF3, 0x87, 0x0E, 0x1C, 0x1C, 0x60, 0x73, 0x80,
|
||||
0xEC, 0x03, 0xF0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xF8, 0x7F, 0xE1,
|
||||
0xF7, 0x39, 0x8C, 0xE6, 0x37, 0xB0, 0xFF, 0xC3, 0xFF, 0x07, 0xBC, 0x1C,
|
||||
0xF0, 0x73, 0x81, 0x86, 0x00, 0x7C, 0xF9, 0xF3, 0xE3, 0xCF, 0x07, 0xF8,
|
||||
0x0F, 0xC0, 0x1E, 0x00, 0xFC, 0x07, 0x38, 0x38, 0x73, 0xF3, 0xFF, 0xCF,
|
||||
0xC0, 0xF9, 0xFF, 0x9F, 0x70, 0xE3, 0x0C, 0x39, 0xC1, 0x98, 0x19, 0x81,
|
||||
0xF8, 0x0F, 0x00, 0xF0, 0x06, 0x00, 0x60, 0x0E, 0x00, 0xC0, 0xFF, 0x0F,
|
||||
0xF0, 0x7F, 0xCF, 0xF9, 0x8E, 0x33, 0x80, 0x70, 0x1C, 0x07, 0x01, 0xC6,
|
||||
0x70, 0xFF, 0xFF, 0xFF, 0x80, 0x0E, 0x3C, 0x60, 0xC1, 0x83, 0x06, 0x0C,
|
||||
0x39, 0xE3, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x3C, 0x38, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xF0, 0xE1, 0xC0, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0x30, 0x3C,
|
||||
0x79, 0x83, 0x06, 0x0C, 0x18, 0x31, 0xE3, 0x80, 0x3C, 0x37, 0xE7, 0x67,
|
||||
0xE6, 0x1C};
|
||||
|
||||
const GFXglyph FreeMonoBold12pt7bGlyphs[] PROGMEM = {
|
||||
{0, 0, 0, 14, 0, 1}, // 0x20 ' '
|
||||
{0, 4, 15, 14, 5, -14}, // 0x21 '!'
|
||||
{8, 8, 7, 14, 3, -13}, // 0x22 '"'
|
||||
{15, 11, 18, 14, 2, -15}, // 0x23 '#'
|
||||
{40, 10, 20, 14, 2, -16}, // 0x24 '$'
|
||||
{65, 10, 15, 14, 2, -14}, // 0x25 '%'
|
||||
{84, 10, 13, 14, 2, -12}, // 0x26 '&'
|
||||
{101, 3, 7, 14, 5, -13}, // 0x27 '''
|
||||
{104, 5, 19, 14, 6, -14}, // 0x28 '('
|
||||
{116, 5, 19, 14, 3, -14}, // 0x29 ')'
|
||||
{128, 10, 10, 14, 2, -14}, // 0x2A '*'
|
||||
{141, 12, 13, 14, 1, -12}, // 0x2B '+'
|
||||
{161, 5, 7, 14, 4, -2}, // 0x2C ','
|
||||
{166, 12, 2, 14, 1, -7}, // 0x2D '-'
|
||||
{169, 3, 3, 14, 5, -2}, // 0x2E '.'
|
||||
{171, 10, 20, 14, 2, -16}, // 0x2F '/'
|
||||
{196, 10, 15, 14, 2, -14}, // 0x30 '0'
|
||||
{215, 10, 15, 14, 2, -14}, // 0x31 '1'
|
||||
{234, 10, 15, 14, 2, -14}, // 0x32 '2'
|
||||
{253, 11, 15, 14, 1, -14}, // 0x33 '3'
|
||||
{274, 9, 14, 14, 2, -13}, // 0x34 '4'
|
||||
{290, 10, 15, 14, 2, -14}, // 0x35 '5'
|
||||
{309, 10, 15, 14, 2, -14}, // 0x36 '6'
|
||||
{328, 10, 15, 14, 2, -14}, // 0x37 '7'
|
||||
{347, 10, 15, 14, 2, -14}, // 0x38 '8'
|
||||
{366, 10, 15, 14, 3, -14}, // 0x39 '9'
|
||||
{385, 3, 11, 14, 5, -10}, // 0x3A ':'
|
||||
{390, 4, 15, 14, 4, -10}, // 0x3B ';'
|
||||
{398, 12, 11, 14, 1, -11}, // 0x3C '<'
|
||||
{415, 12, 7, 14, 1, -9}, // 0x3D '='
|
||||
{426, 12, 11, 14, 1, -11}, // 0x3E '>'
|
||||
{443, 9, 14, 14, 3, -13}, // 0x3F '?'
|
||||
{459, 11, 19, 14, 2, -14}, // 0x40 '@'
|
||||
{486, 15, 14, 14, -1, -13}, // 0x41 'A'
|
||||
{513, 13, 14, 14, 0, -13}, // 0x42 'B'
|
||||
{536, 12, 14, 14, 1, -13}, // 0x43 'C'
|
||||
{557, 12, 14, 14, 1, -13}, // 0x44 'D'
|
||||
{578, 13, 14, 14, 0, -13}, // 0x45 'E'
|
||||
{601, 13, 14, 14, 0, -13}, // 0x46 'F'
|
||||
{624, 13, 14, 14, 1, -13}, // 0x47 'G'
|
||||
{647, 14, 14, 14, 0, -13}, // 0x48 'H'
|
||||
{672, 10, 14, 14, 2, -13}, // 0x49 'I'
|
||||
{690, 13, 14, 14, 1, -13}, // 0x4A 'J'
|
||||
{713, 14, 14, 14, 0, -13}, // 0x4B 'K'
|
||||
{738, 12, 14, 14, 1, -13}, // 0x4C 'L'
|
||||
{759, 14, 14, 14, 0, -13}, // 0x4D 'M'
|
||||
{784, 13, 14, 14, 0, -13}, // 0x4E 'N'
|
||||
{807, 12, 14, 14, 1, -13}, // 0x4F 'O'
|
||||
{828, 12, 14, 14, 0, -13}, // 0x50 'P'
|
||||
{849, 12, 17, 14, 1, -13}, // 0x51 'Q'
|
||||
{875, 14, 14, 14, 0, -13}, // 0x52 'R'
|
||||
{900, 10, 14, 14, 2, -13}, // 0x53 'S'
|
||||
{918, 12, 14, 14, 1, -13}, // 0x54 'T'
|
||||
{939, 12, 14, 14, 1, -13}, // 0x55 'U'
|
||||
{960, 16, 14, 14, -1, -13}, // 0x56 'V'
|
||||
{988, 14, 14, 14, 0, -13}, // 0x57 'W'
|
||||
{1013, 14, 14, 14, 0, -13}, // 0x58 'X'
|
||||
{1038, 12, 14, 14, 1, -13}, // 0x59 'Y'
|
||||
{1059, 10, 14, 14, 2, -13}, // 0x5A 'Z'
|
||||
{1077, 5, 19, 14, 6, -14}, // 0x5B '['
|
||||
{1089, 10, 20, 14, 2, -16}, // 0x5C '\'
|
||||
{1114, 5, 19, 14, 3, -14}, // 0x5D ']'
|
||||
{1126, 10, 8, 14, 2, -15}, // 0x5E '^'
|
||||
{1136, 14, 2, 14, 0, 4}, // 0x5F '_'
|
||||
{1140, 4, 4, 14, 4, -15}, // 0x60 '`'
|
||||
{1142, 12, 11, 14, 1, -10}, // 0x61 'a'
|
||||
{1159, 13, 15, 14, 0, -14}, // 0x62 'b'
|
||||
{1184, 12, 11, 14, 1, -10}, // 0x63 'c'
|
||||
{1201, 13, 15, 14, 1, -14}, // 0x64 'd'
|
||||
{1226, 12, 11, 14, 1, -10}, // 0x65 'e'
|
||||
{1243, 11, 15, 14, 2, -14}, // 0x66 'f'
|
||||
{1264, 13, 16, 14, 1, -10}, // 0x67 'g'
|
||||
{1290, 14, 15, 14, 0, -14}, // 0x68 'h'
|
||||
{1317, 11, 14, 14, 1, -13}, // 0x69 'i'
|
||||
{1337, 8, 19, 15, 3, -13}, // 0x6A 'j'
|
||||
{1356, 13, 15, 14, 1, -14}, // 0x6B 'k'
|
||||
{1381, 11, 15, 14, 1, -14}, // 0x6C 'l'
|
||||
{1402, 15, 11, 14, 0, -10}, // 0x6D 'm'
|
||||
{1423, 14, 11, 14, 0, -10}, // 0x6E 'n'
|
||||
{1443, 12, 11, 14, 1, -10}, // 0x6F 'o'
|
||||
{1460, 14, 16, 14, 0, -10}, // 0x70 'p'
|
||||
{1488, 14, 16, 14, 0, -10}, // 0x71 'q'
|
||||
{1516, 12, 11, 14, 1, -10}, // 0x72 'r'
|
||||
{1533, 10, 11, 14, 2, -10}, // 0x73 's'
|
||||
{1547, 11, 14, 14, 1, -13}, // 0x74 't'
|
||||
{1567, 13, 11, 14, 0, -10}, // 0x75 'u'
|
||||
{1585, 14, 11, 14, 0, -10}, // 0x76 'v'
|
||||
{1605, 14, 11, 14, 0, -10}, // 0x77 'w'
|
||||
{1625, 14, 11, 14, 0, -10}, // 0x78 'x'
|
||||
{1645, 12, 16, 14, 1, -10}, // 0x79 'y'
|
||||
{1669, 11, 11, 14, 1, -10}, // 0x7A 'z'
|
||||
{1685, 7, 19, 14, 3, -14}, // 0x7B '{'
|
||||
{1702, 2, 19, 14, 6, -14}, // 0x7C '|'
|
||||
{1707, 7, 19, 14, 4, -14}, // 0x7D '}'
|
||||
{1724, 12, 4, 14, 1, -7}}; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeMonoBold12pt7b PROGMEM = {
|
||||
(uint8_t *)FreeMonoBold12pt7bBitmaps, (GFXglyph *)FreeMonoBold12pt7bGlyphs,
|
||||
0x20, 0x7E, 24};
|
||||
|
||||
// Approx. 2402 bytes
|
@@ -1,425 +0,0 @@
|
||||
#pragma once
|
||||
#include <Adafruit_GFX.h>
|
||||
|
||||
const uint8_t FreeMonoBold18pt7bBitmaps[] PROGMEM = {
|
||||
0x77, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x9C, 0xE7, 0x39, 0xC4, 0x03, 0xBF,
|
||||
0xFF, 0xB8, 0xF1, 0xFE, 0x3F, 0xC7, 0xF8, 0xFF, 0x1E, 0xC1, 0x98, 0x33,
|
||||
0x06, 0x60, 0xCC, 0x18, 0x0E, 0x1C, 0x0F, 0x3C, 0x1F, 0x3C, 0x1E, 0x3C,
|
||||
0x1E, 0x3C, 0x1E, 0x78, 0x1E, 0x78, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFE, 0x1E, 0x78, 0x1E, 0x78, 0x1E, 0x78, 0x7F, 0xFE, 0x7F, 0xFE,
|
||||
0x7F, 0xFE, 0x7F, 0xFE, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0x78, 0x3C, 0xF0,
|
||||
0x3C, 0xF0, 0x3C, 0xF0, 0x3C, 0xF0, 0x03, 0x00, 0x1E, 0x00, 0x78, 0x01,
|
||||
0xE0, 0x1F, 0xF1, 0xFF, 0xE7, 0xFF, 0xBE, 0x1E, 0xF0, 0x3B, 0xC0, 0xCF,
|
||||
0xE0, 0x3F, 0xF8, 0x7F, 0xF0, 0x7F, 0xE0, 0x1F, 0xF0, 0x0F, 0xE0, 0x3F,
|
||||
0x80, 0xFF, 0x87, 0xFF, 0xFE, 0xFF, 0xF3, 0x7F, 0x80, 0x78, 0x01, 0xE0,
|
||||
0x07, 0x80, 0x1E, 0x00, 0x78, 0x00, 0xC0, 0x1E, 0x00, 0xFF, 0x03, 0x86,
|
||||
0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18, 0x38, 0x70, 0x3F, 0xC2, 0x1E, 0x3E,
|
||||
0x03, 0xF8, 0x3F, 0x83, 0xF8, 0x0F, 0x8F, 0x18, 0x7F, 0x01, 0xC7, 0x03,
|
||||
0x06, 0x06, 0x0C, 0x0C, 0x18, 0x1C, 0x70, 0x1F, 0xC0, 0x0F, 0x00, 0x03,
|
||||
0xD0, 0x1F, 0xF0, 0x7F, 0xE1, 0xFF, 0xC3, 0xE6, 0x07, 0x80, 0x0F, 0x00,
|
||||
0x0F, 0x00, 0x1F, 0x00, 0x3E, 0x00, 0xFE, 0x03, 0xFE, 0xFF, 0xBD, 0xFE,
|
||||
0x3F, 0xFC, 0x3F, 0x7C, 0x7C, 0xFF, 0xFE, 0xFF, 0xFC, 0xFF, 0xF8, 0x7E,
|
||||
0xF0, 0xFF, 0xFF, 0xF6, 0x66, 0x66, 0x07, 0x0F, 0x1F, 0x1E, 0x3E, 0x3C,
|
||||
0x78, 0x78, 0x78, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
|
||||
0x78, 0x78, 0x78, 0x3C, 0x3C, 0x1E, 0x1F, 0x0F, 0x07, 0xE0, 0xF0, 0xF8,
|
||||
0x78, 0x7C, 0x3C, 0x3E, 0x1E, 0x1E, 0x1E, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x0E, 0x1E, 0x1E, 0x1E, 0x3C, 0x3C, 0x78, 0xF8, 0xF0, 0xE0,
|
||||
0x01, 0x80, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7F, 0xFE, 0x1F, 0xF8, 0x07, 0xE0, 0x0F, 0xF0, 0x1F, 0xF8,
|
||||
0x1E, 0x78, 0x1C, 0x38, 0x18, 0x18, 0x01, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
|
||||
0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
|
||||
0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x3E, 0x78, 0xF3, 0xC7,
|
||||
0x8E, 0x1C, 0x70, 0xE1, 0x80, 0x7F, 0xFF, 0xDF, 0xFF, 0xF9, 0xFF, 0xFF,
|
||||
0x3F, 0xFF, 0xE0, 0x77, 0xFF, 0xF7, 0x00, 0x00, 0x0E, 0x00, 0x3C, 0x00,
|
||||
0x78, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x00, 0x1E, 0x00, 0x38, 0x00, 0xF0,
|
||||
0x01, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x3C, 0x00, 0x78, 0x01, 0xE0, 0x03,
|
||||
0xC0, 0x0F, 0x00, 0x1E, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xC0, 0x07, 0x80,
|
||||
0x1E, 0x00, 0x3C, 0x00, 0x70, 0x01, 0xE0, 0x03, 0x80, 0x03, 0x00, 0x00,
|
||||
0x07, 0xE0, 0x1F, 0xF8, 0x3F, 0xFC, 0x3F, 0xFC, 0x7C, 0x3E, 0x78, 0x1E,
|
||||
0xF8, 0x1F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F,
|
||||
0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF0, 0x0F, 0xF8, 0x1F, 0x78, 0x1E,
|
||||
0x7C, 0x3E, 0x3F, 0xFC, 0x3F, 0xFC, 0x1F, 0xF8, 0x07, 0xE0, 0x07, 0xC0,
|
||||
0x1F, 0x80, 0xFF, 0x03, 0xFE, 0x0F, 0xBC, 0x0C, 0x78, 0x00, 0xF0, 0x01,
|
||||
0xE0, 0x03, 0xC0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78,
|
||||
0x00, 0xF0, 0x01, 0xE0, 0x03, 0xC0, 0x07, 0x81, 0xFF, 0xFB, 0xFF, 0xF7,
|
||||
0xFF, 0xE7, 0xFF, 0x80, 0x0F, 0xC0, 0x7F, 0xE1, 0xFF, 0xE3, 0xFF, 0xEF,
|
||||
0x87, 0xDE, 0x07, 0xF8, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x7C, 0x01,
|
||||
0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00,
|
||||
0x78, 0x03, 0xE0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80,
|
||||
0x0F, 0xC0, 0x7F, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC, 0x70, 0x3E, 0x00, 0x1E,
|
||||
0x00, 0x1E, 0x00, 0x1E, 0x00, 0x3C, 0x03, 0xFC, 0x03, 0xF0, 0x03, 0xF0,
|
||||
0x03, 0xFC, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x00, 0x0F, 0x00, 0x0F,
|
||||
0xE0, 0x3F, 0xFF, 0xFE, 0xFF, 0xFC, 0x7F, 0xF8, 0x1F, 0xE0, 0x00, 0xF8,
|
||||
0x03, 0xF0, 0x07, 0xE0, 0x1F, 0xC0, 0x77, 0x80, 0xEF, 0x03, 0x9E, 0x0F,
|
||||
0x3C, 0x1C, 0x78, 0x70, 0xF1, 0xE1, 0xE3, 0x83, 0xCF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x78, 0x07, 0xFC, 0x0F, 0xF8, 0x1F, 0xF0,
|
||||
0x1F, 0xC0, 0x3F, 0xFC, 0x1F, 0xFE, 0x0F, 0xFF, 0x07, 0xFF, 0x83, 0xC0,
|
||||
0x01, 0xE0, 0x00, 0xF0, 0x00, 0x7B, 0xE0, 0x3F, 0xFC, 0x1F, 0xFF, 0x0F,
|
||||
0xFF, 0xC3, 0x83, 0xE0, 0x00, 0xF8, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F,
|
||||
0x00, 0x0F, 0xB8, 0x0F, 0xBF, 0xFF, 0xCF, 0xFF, 0xC3, 0xFF, 0xC0, 0x7F,
|
||||
0x80, 0x00, 0xFC, 0x07, 0xFC, 0x3F, 0xF8, 0xFF, 0xF1, 0xF8, 0x07, 0xC0,
|
||||
0x1F, 0x00, 0x3C, 0x00, 0xF0, 0x01, 0xE7, 0xC3, 0xDF, 0xC7, 0x7F, 0xCF,
|
||||
0xFF, 0xDF, 0x8F, 0xFC, 0x07, 0xF0, 0x0F, 0xF0, 0x1F, 0xE0, 0x3D, 0xE0,
|
||||
0xFB, 0xFF, 0xE3, 0xFF, 0xC3, 0xFF, 0x01, 0xF8, 0x00, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x01, 0xE0, 0x03, 0x80, 0x0F, 0x00, 0x1E,
|
||||
0x00, 0x38, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00,
|
||||
0x78, 0x00, 0xF0, 0x01, 0xE0, 0x07, 0x80, 0x0F, 0x00, 0x1E, 0x00, 0x38,
|
||||
0x00, 0x70, 0x00, 0x07, 0xC0, 0x3F, 0xE0, 0xFF, 0xE3, 0xFF, 0xEF, 0x83,
|
||||
0xFE, 0x03, 0xFC, 0x07, 0xF8, 0x0F, 0xF0, 0x1E, 0xF0, 0x78, 0xFF, 0xE0,
|
||||
0xFF, 0x81, 0xFF, 0x0F, 0xFF, 0x9E, 0x0F, 0x78, 0x0F, 0xF0, 0x1F, 0xE0,
|
||||
0x3F, 0xE0, 0xFB, 0xFF, 0xE7, 0xFF, 0xC7, 0xFF, 0x03, 0xF8, 0x00, 0x0F,
|
||||
0xC0, 0x3F, 0xE0, 0xFF, 0xE3, 0xFF, 0xEF, 0xC3, 0xDF, 0x03, 0xBC, 0x07,
|
||||
0xF8, 0x0F, 0xF0, 0x1F, 0xF0, 0x3D, 0xF1, 0xFB, 0xFF, 0xF3, 0xFE, 0xE3,
|
||||
0xFB, 0xC3, 0xE7, 0x80, 0x1E, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xE7, 0xFF,
|
||||
0x8F, 0xFE, 0x1F, 0xF0, 0x1F, 0x80, 0x00, 0x77, 0xFF, 0xF7, 0x00, 0x00,
|
||||
0x00, 0x00, 0xEF, 0xFF, 0xEE, 0x1C, 0x7C, 0xF9, 0xF1, 0xC0, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xF3, 0xC7, 0x8E, 0x3C, 0x70, 0xE1, 0x87, 0x0C, 0x00,
|
||||
0x00, 0x00, 0x00, 0x80, 0x00, 0xF0, 0x00, 0xFC, 0x00, 0xFE, 0x00, 0xFE,
|
||||
0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00,
|
||||
0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7C, 0x00,
|
||||
0x07, 0x7F, 0xFF, 0xDF, 0xFF, 0xF9, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x1F, 0xFF, 0xF7, 0xFF, 0xFE, 0x7F, 0xFF, 0xCF, 0xFF,
|
||||
0xF8, 0x00, 0x00, 0x3C, 0x00, 0x0F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0,
|
||||
0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x3F, 0x80,
|
||||
0x3F, 0x80, 0x3F, 0x80, 0x3F, 0x80, 0x3F, 0x80, 0x0F, 0x80, 0x03, 0x80,
|
||||
0x00, 0x1F, 0xC0, 0xFF, 0xE3, 0xFF, 0xF7, 0xFF, 0xEF, 0x07, 0xFE, 0x03,
|
||||
0xDC, 0x07, 0x80, 0x0F, 0x00, 0x7C, 0x03, 0xF8, 0x1F, 0xC0, 0x1E, 0x00,
|
||||
0x30, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x1F, 0x00, 0x3E,
|
||||
0x00, 0x7C, 0x00, 0x70, 0x00, 0x07, 0xE0, 0x1F, 0xE0, 0x7F, 0xE1, 0xE1,
|
||||
0xC7, 0x83, 0xCE, 0x03, 0xBC, 0x07, 0x70, 0x0E, 0xE0, 0x7D, 0xC3, 0xFB,
|
||||
0x8F, 0xF7, 0x3C, 0xEE, 0x71, 0xDC, 0xE3, 0xB9, 0xC7, 0x73, 0xCE, 0xE3,
|
||||
0xFF, 0xC3, 0xFF, 0x83, 0xFF, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x1E, 0x02,
|
||||
0x1E, 0x1E, 0x3F, 0xFC, 0x1F, 0xF0, 0x1F, 0x80, 0x0F, 0xF8, 0x00, 0x7F,
|
||||
0xF0, 0x01, 0xFF, 0xC0, 0x03, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x07, 0xF8,
|
||||
0x00, 0x1C, 0xF0, 0x00, 0xF3, 0xC0, 0x03, 0xCF, 0x00, 0x1E, 0x1E, 0x00,
|
||||
0x78, 0x78, 0x03, 0xC0, 0xF0, 0x0F, 0xFF, 0xC0, 0x3F, 0xFF, 0x01, 0xFF,
|
||||
0xFE, 0x07, 0xFF, 0xF8, 0x3C, 0x00, 0xF3, 0xFC, 0x1F, 0xEF, 0xF8, 0x7F,
|
||||
0xFF, 0xE1, 0xFF, 0x7F, 0x03, 0xF8, 0x7F, 0xFC, 0x0F, 0xFF, 0xF0, 0xFF,
|
||||
0xFF, 0x8F, 0xFF, 0xF8, 0x3C, 0x07, 0xC3, 0xC0, 0x3C, 0x3C, 0x03, 0xC3,
|
||||
0xC0, 0x7C, 0x3F, 0xFF, 0x83, 0xFF, 0xF0, 0x3F, 0xFF, 0x83, 0xFF, 0xFE,
|
||||
0x3C, 0x03, 0xE3, 0xC0, 0x1F, 0x3C, 0x00, 0xF3, 0xC0, 0x0F, 0x3C, 0x01,
|
||||
0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xEF, 0xFF, 0xFC, 0x7F, 0xFF, 0x00, 0x01,
|
||||
0xF8, 0xC1, 0xFF, 0xFC, 0x7F, 0xFF, 0x9F, 0xFF, 0xF7, 0xE0, 0x7E, 0xF8,
|
||||
0x07, 0xFE, 0x00, 0x7F, 0x80, 0x0E, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0,
|
||||
0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xE0,
|
||||
0x07, 0x7F, 0x03, 0xE7, 0xFF, 0xFC, 0x7F, 0xFF, 0x03, 0xFF, 0xC0, 0x1F,
|
||||
0xE0, 0xFF, 0xF0, 0x3F, 0xFF, 0x0F, 0xFF, 0xE3, 0xFF, 0xFC, 0x78, 0x1F,
|
||||
0x9E, 0x03, 0xE7, 0x80, 0x79, 0xE0, 0x0F, 0x78, 0x03, 0xDE, 0x00, 0xF7,
|
||||
0x80, 0x3D, 0xE0, 0x0F, 0x78, 0x03, 0xDE, 0x00, 0xF7, 0x80, 0x7D, 0xE0,
|
||||
0x1E, 0x78, 0x1F, 0xBF, 0xFF, 0xCF, 0xFF, 0xF3, 0xFF, 0xF0, 0x7F, 0xF0,
|
||||
0x00, 0x7F, 0xFF, 0xDF, 0xFF, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xE3, 0xC0,
|
||||
0x3C, 0x78, 0x07, 0x8F, 0x1C, 0xF1, 0xE3, 0xCC, 0x3F, 0xF8, 0x07, 0xFF,
|
||||
0x00, 0xFF, 0xE0, 0x1F, 0xFC, 0x03, 0xC7, 0x80, 0x78, 0xF1, 0x8F, 0x0C,
|
||||
0x79, 0xE0, 0x0F, 0x3C, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF7, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF3, 0xC0, 0x1E, 0x78, 0x63, 0xCF, 0x1E, 0x79, 0xE3, 0xC6, 0x3F, 0xF8,
|
||||
0x07, 0xFF, 0x00, 0xFF, 0xE0, 0x1F, 0xFC, 0x03, 0xC7, 0x80, 0x78, 0xE0,
|
||||
0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x1F, 0xFC, 0x03, 0xFF, 0x80,
|
||||
0x7F, 0xF0, 0x07, 0xFC, 0x00, 0x01, 0xFC, 0xE0, 0x7F, 0xFE, 0x1F, 0xFF,
|
||||
0xE3, 0xFF, 0xFE, 0x7F, 0x03, 0xE7, 0xC0, 0x1E, 0xF8, 0x00, 0xEF, 0x00,
|
||||
0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x03, 0xFE, 0xF0,
|
||||
0x3F, 0xFF, 0x03, 0xFF, 0xF8, 0x3F, 0xF7, 0x80, 0x1E, 0x7E, 0x01, 0xE3,
|
||||
0xFF, 0xFE, 0x1F, 0xFF, 0xE0, 0xFF, 0xF8, 0x01, 0xFE, 0x00, 0x7F, 0x0F,
|
||||
0xE3, 0xFC, 0x7F, 0x9F, 0xE3, 0xFC, 0x7F, 0x1F, 0xC1, 0xE0, 0x3C, 0x0F,
|
||||
0x01, 0xE0, 0x78, 0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xFF, 0xFE,
|
||||
0x07, 0xFF, 0xF0, 0x3F, 0xFF, 0x81, 0xFF, 0xFC, 0x0F, 0x01, 0xE0, 0x78,
|
||||
0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC3, 0xFC, 0x7F, 0xBF, 0xE3, 0xFF,
|
||||
0xFF, 0x1F, 0xF7, 0xF0, 0x7F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00,
|
||||
0x78, 0x01, 0xE0, 0x07, 0x80, 0x1E, 0x00, 0x78, 0x01, 0xE0, 0x07, 0x83,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8, 0x01, 0xFF, 0xE0, 0x3F, 0xFC,
|
||||
0x07, 0xFF, 0x80, 0xFF, 0xF0, 0x00, 0xF0, 0x00, 0x1E, 0x00, 0x03, 0xC0,
|
||||
0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x38, 0x07, 0x8F,
|
||||
0x00, 0xF1, 0xE0, 0x1E, 0x3C, 0x03, 0xC7, 0x80, 0xF8, 0xF8, 0x3F, 0x1F,
|
||||
0xFF, 0xC3, 0xFF, 0xF0, 0x1F, 0xFC, 0x00, 0x7E, 0x00, 0xFF, 0x0F, 0xCF,
|
||||
0xF9, 0xFE, 0xFF, 0x9F, 0xEF, 0xF8, 0xFC, 0x3C, 0x1F, 0x03, 0xC3, 0xE0,
|
||||
0x3C, 0x7C, 0x03, 0xCF, 0x80, 0x3D, 0xF0, 0x03, 0xFE, 0x00, 0x3F, 0xF8,
|
||||
0x03, 0xFF, 0x80, 0x3E, 0x7C, 0x03, 0xC3, 0xE0, 0x3C, 0x1E, 0x03, 0xC0,
|
||||
0xF0, 0x3C, 0x0F, 0x0F, 0xF8, 0x7E, 0xFF, 0x87, 0xFF, 0xF8, 0x7F, 0x7F,
|
||||
0x03, 0xE0, 0xFF, 0xC0, 0x3F, 0xF0, 0x0F, 0xFC, 0x03, 0xFF, 0x00, 0x1E,
|
||||
0x00, 0x07, 0x80, 0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x00, 0x07, 0x80,
|
||||
0x01, 0xE0, 0x00, 0x78, 0x00, 0x1E, 0x01, 0x87, 0x80, 0xF1, 0xE0, 0x3C,
|
||||
0x78, 0x0F, 0x1E, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
|
||||
0xFF, 0xC0, 0x3E, 0x00, 0xF8, 0xFC, 0x01, 0xF9, 0xFC, 0x07, 0xF3, 0xF8,
|
||||
0x0F, 0xE3, 0xF8, 0x3F, 0x87, 0xF0, 0x7F, 0x0F, 0xF1, 0xFE, 0x1F, 0xE3,
|
||||
0xFC, 0x3D, 0xE7, 0x78, 0x7B, 0xDE, 0xF0, 0xF7, 0xBD, 0xE1, 0xE7, 0xF3,
|
||||
0xC3, 0xCF, 0xE7, 0x87, 0x8F, 0x8F, 0x0F, 0x1F, 0x1E, 0x1E, 0x1E, 0x3C,
|
||||
0x3C, 0x00, 0x79, 0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x1F, 0xF7,
|
||||
0xF0, 0x1F, 0xC0, 0xFC, 0x1F, 0xEF, 0xE1, 0xFF, 0xFE, 0x1F, 0xFF, 0xF1,
|
||||
0xFF, 0x3F, 0x83, 0xC3, 0xF8, 0x3C, 0x3F, 0xC3, 0xC3, 0xFC, 0x3C, 0x3D,
|
||||
0xE3, 0xC3, 0xDE, 0x3C, 0x3C, 0xF3, 0xC3, 0xC7, 0xBC, 0x3C, 0x7B, 0xC3,
|
||||
0xC3, 0xFC, 0x3C, 0x3F, 0xC3, 0xC1, 0xFC, 0x3C, 0x1F, 0xCF, 0xF8, 0xFC,
|
||||
0xFF, 0x87, 0xCF, 0xF8, 0x7C, 0x7F, 0x03, 0xC0, 0x01, 0xF8, 0x00, 0x7F,
|
||||
0xE0, 0x0F, 0xFF, 0x81, 0xFF, 0xFC, 0x3F, 0x0F, 0xC7, 0xC0, 0x3E, 0x78,
|
||||
0x01, 0xEF, 0x80, 0x1F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF,
|
||||
0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x1F, 0x78, 0x01, 0xE7, 0xC0, 0x3E,
|
||||
0x3F, 0x0F, 0xC1, 0xFF, 0xF8, 0x1F, 0xFF, 0x00, 0x7F, 0xE0, 0x01, 0xF8,
|
||||
0x00, 0x7F, 0xF8, 0x3F, 0xFF, 0x8F, 0xFF, 0xF3, 0xFF, 0xFE, 0x3C, 0x0F,
|
||||
0xCF, 0x00, 0xF3, 0xC0, 0x3C, 0xF0, 0x0F, 0x3C, 0x03, 0xCF, 0x03, 0xF3,
|
||||
0xFF, 0xF8, 0xFF, 0xFC, 0x3F, 0xFE, 0x0F, 0xFE, 0x03, 0xC0, 0x00, 0xF0,
|
||||
0x00, 0x3C, 0x00, 0x3F, 0xF8, 0x0F, 0xFE, 0x03, 0xFF, 0x80, 0x7F, 0xC0,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x7F, 0xE0, 0x0F, 0xFF, 0x01, 0xFF, 0xF8, 0x3F,
|
||||
0x0F, 0xC7, 0xC0, 0x3E, 0x78, 0x01, 0xEF, 0x80, 0x1F, 0xF0, 0x00, 0xFF,
|
||||
0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0x00, 0xFF, 0x80, 0x1F,
|
||||
0x78, 0x01, 0xE7, 0xC0, 0x3E, 0x3F, 0x0F, 0xC1, 0xFF, 0xF8, 0x0F, 0xFF,
|
||||
0x00, 0x7F, 0xE0, 0x03, 0xF8, 0x00, 0x3F, 0x8E, 0x07, 0xFF, 0xF0, 0xFF,
|
||||
0xFF, 0x0F, 0xFF, 0xE0, 0x60, 0x78, 0x7F, 0xF8, 0x07, 0xFF, 0xF0, 0x3F,
|
||||
0xFF, 0xE0, 0xFF, 0xFF, 0x01, 0xE0, 0x7C, 0x0F, 0x01, 0xE0, 0x78, 0x0F,
|
||||
0x03, 0xC0, 0x78, 0x1E, 0x0F, 0xC0, 0xFF, 0xFC, 0x07, 0xFF, 0xC0, 0x3F,
|
||||
0xF8, 0x01, 0xFF, 0xE0, 0x0F, 0x0F, 0x80, 0x78, 0x3C, 0x03, 0xC0, 0xF0,
|
||||
0x1E, 0x07, 0xC3, 0xFE, 0x1F, 0xBF, 0xF0, 0x7F, 0xFF, 0x83, 0xF7, 0xF8,
|
||||
0x0F, 0x00, 0x07, 0xE7, 0x07, 0xFF, 0x8F, 0xFF, 0xC7, 0xFF, 0xE7, 0xC1,
|
||||
0xF3, 0xC0, 0x79, 0xE0, 0x3C, 0xF8, 0x00, 0x7F, 0x80, 0x1F, 0xFC, 0x07,
|
||||
0xFF, 0x81, 0xFF, 0xE0, 0x0F, 0xFB, 0x00, 0x7F, 0xC0, 0x1F, 0xE0, 0x0F,
|
||||
0xFC, 0x1F, 0xFF, 0xFF, 0xBF, 0xFF, 0x8D, 0xFF, 0x80, 0x3F, 0x00, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x1F, 0xE1,
|
||||
0xE3, 0xFC, 0x3C, 0x7F, 0x87, 0x8F, 0x60, 0xF0, 0xC0, 0x1E, 0x00, 0x03,
|
||||
0xC0, 0x00, 0x78, 0x00, 0x0F, 0x00, 0x01, 0xE0, 0x00, 0x3C, 0x00, 0x07,
|
||||
0x80, 0x00, 0xF0, 0x01, 0xFF, 0xE0, 0x3F, 0xFC, 0x07, 0xFF, 0x80, 0x7F,
|
||||
0xE0, 0xFF, 0x0F, 0xF7, 0xFC, 0x7F, 0xFF, 0xE3, 0xFE, 0xFF, 0x1F, 0xF3,
|
||||
0xC0, 0x1E, 0x1E, 0x00, 0xF0, 0xF0, 0x07, 0x87, 0x80, 0x3C, 0x3C, 0x01,
|
||||
0xE1, 0xE0, 0x0F, 0x0F, 0x00, 0x78, 0x78, 0x03, 0xC3, 0xC0, 0x1E, 0x1E,
|
||||
0x00, 0xF0, 0xF0, 0x07, 0x87, 0xC0, 0x7C, 0x1F, 0x07, 0xC0, 0xFF, 0xFE,
|
||||
0x03, 0xFF, 0xE0, 0x0F, 0xFE, 0x00, 0x1F, 0xC0, 0x00, 0xFF, 0x03, 0xFD,
|
||||
0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFB, 0xF8, 0x1F, 0xE1, 0xC0, 0x07, 0x03,
|
||||
0xC0, 0x1E, 0x07, 0x80, 0x3C, 0x07, 0x80, 0xF0, 0x0F, 0x01, 0xE0, 0x0F,
|
||||
0x03, 0x80, 0x1E, 0x0F, 0x00, 0x3E, 0x1E, 0x00, 0x3C, 0x78, 0x00, 0x78,
|
||||
0xF0, 0x00, 0x7B, 0xC0, 0x00, 0xF7, 0x80, 0x01, 0xFF, 0x00, 0x01, 0xFC,
|
||||
0x00, 0x03, 0xF8, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0xFF, 0x0F,
|
||||
0xF7, 0xFC, 0x7F, 0xFF, 0xE3, 0xFF, 0xFE, 0x0F, 0xF7, 0x80, 0x0F, 0x3C,
|
||||
0x38, 0x78, 0xE3, 0xE3, 0x87, 0x1F, 0x1C, 0x38, 0xF8, 0xE1, 0xEF, 0xE7,
|
||||
0x0F, 0x7F, 0x78, 0x7B, 0xBB, 0xC3, 0xFD, 0xFE, 0x0F, 0xEF, 0xF0, 0x7E,
|
||||
0x3F, 0x03, 0xF1, 0xF8, 0x1F, 0x8F, 0xC0, 0xFC, 0x3E, 0x07, 0xC1, 0xF0,
|
||||
0x3E, 0x0F, 0x81, 0xF0, 0x7C, 0x00, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF, 0xFC,
|
||||
0x7F, 0xBF, 0x07, 0xE1, 0xE0, 0xF8, 0x3E, 0x3E, 0x03, 0xEF, 0x80, 0x3D,
|
||||
0xE0, 0x03, 0xF8, 0x00, 0x3E, 0x00, 0x03, 0xC0, 0x00, 0xF8, 0x00, 0x3F,
|
||||
0x80, 0x0F, 0x78, 0x03, 0xC7, 0x80, 0xF8, 0x78, 0x3E, 0x0F, 0x8F, 0xE3,
|
||||
0xFF, 0xFC, 0x7F, 0xFF, 0x8F, 0xF7, 0xE0, 0xFC, 0x7E, 0x07, 0xEF, 0xF0,
|
||||
0xFF, 0xFF, 0x0F, 0xF7, 0xE0, 0x7E, 0x1E, 0x07, 0x81, 0xF0, 0xF8, 0x0F,
|
||||
0x0F, 0x00, 0x79, 0xE0, 0x07, 0xFE, 0x00, 0x3F, 0xC0, 0x01, 0xF8, 0x00,
|
||||
0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00,
|
||||
0x00, 0xF0, 0x00, 0xFF, 0xE0, 0x0F, 0xFF, 0x00, 0xFF, 0xF0, 0x07, 0xFE,
|
||||
0x00, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xF0, 0x3C, 0xF0,
|
||||
0x78, 0xF0, 0xF0, 0x70, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0x80, 0x07,
|
||||
0x00, 0x0F, 0x00, 0x1E, 0x0E, 0x1C, 0x0F, 0x38, 0x0F, 0x78, 0x0F, 0x7F,
|
||||
0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xF0,
|
||||
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
|
||||
0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFE, 0xFF, 0xFF, 0xFE, 0xE0, 0x01,
|
||||
0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0x80, 0x07, 0x00, 0x0F, 0x00, 0x0E,
|
||||
0x00, 0x1E, 0x00, 0x1C, 0x00, 0x3C, 0x00, 0x78, 0x00, 0x78, 0x00, 0xF0,
|
||||
0x00, 0xF0, 0x01, 0xE0, 0x01, 0xE0, 0x03, 0xC0, 0x03, 0xC0, 0x07, 0x80,
|
||||
0x07, 0x80, 0x0F, 0x00, 0x0F, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x3C, 0x00,
|
||||
0x38, 0x00, 0x70, 0x7F, 0xFF, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
|
||||
0x0F, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x07, 0x00, 0x1F, 0x00,
|
||||
0x7F, 0x00, 0xFE, 0x03, 0xDE, 0x0F, 0x1E, 0x3E, 0x3E, 0xF8, 0x3F, 0xE0,
|
||||
0x3F, 0x80, 0x38, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xF0, 0xC3, 0x87, 0x0E, 0x1C, 0x30, 0x01, 0xFC, 0x01, 0xFF, 0xC0,
|
||||
0x3F, 0xFC, 0x07, 0xFF, 0xC0, 0x00, 0x78, 0x0F, 0xFF, 0x07, 0xFF, 0xE1,
|
||||
0xFF, 0xFC, 0x7F, 0xFF, 0x9F, 0x80, 0xF3, 0xC0, 0x1E, 0x78, 0x0F, 0xCF,
|
||||
0xFF, 0xFE, 0xFF, 0xFF, 0xCF, 0xFF, 0xF8, 0x7F, 0x3E, 0x7C, 0x00, 0x1F,
|
||||
0x80, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x03, 0xC0, 0x00, 0x78, 0x00, 0x0F,
|
||||
0x3F, 0x01, 0xFF, 0xF8, 0x3F, 0xFF, 0x87, 0xFF, 0xF0, 0xFC, 0x1F, 0x1F,
|
||||
0x01, 0xF3, 0xC0, 0x1E, 0x78, 0x03, 0xCF, 0x00, 0x79, 0xE0, 0x0F, 0x3E,
|
||||
0x03, 0xE7, 0xE0, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xCF, 0xFF, 0xF0, 0xF9,
|
||||
0xF8, 0x00, 0x03, 0xF3, 0x87, 0xFF, 0xCF, 0xFF, 0xEF, 0xFF, 0xF7, 0xE0,
|
||||
0xFF, 0xC0, 0x3F, 0xC0, 0x0F, 0xE0, 0x00, 0xF0, 0x00, 0x78, 0x00, 0x3E,
|
||||
0x00, 0x4F, 0x80, 0xF7, 0xFF, 0xF9, 0xFF, 0xF8, 0x7F, 0xF8, 0x0F, 0xF0,
|
||||
0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x03,
|
||||
0xC0, 0x00, 0x3C, 0x03, 0xF3, 0xC0, 0xFF, 0xBC, 0x1F, 0xFF, 0xC3, 0xFF,
|
||||
0xFC, 0x7E, 0x0F, 0xC7, 0x80, 0x7C, 0xF0, 0x03, 0xCF, 0x00, 0x3C, 0xF0,
|
||||
0x03, 0xCF, 0x00, 0x3C, 0xF8, 0x07, 0xC7, 0xE0, 0xFC, 0x7F, 0xFF, 0xF3,
|
||||
0xFF, 0xFF, 0x0F, 0xFF, 0xF0, 0x3F, 0x3E, 0x03, 0xF0, 0x03, 0xFF, 0x01,
|
||||
0xFF, 0xE0, 0xFF, 0xFC, 0x7E, 0x0F, 0x9E, 0x01, 0xEF, 0x00, 0x3F, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xE0, 0x00, 0x7F, 0xFF,
|
||||
0xCF, 0xFF, 0xF1, 0xFF, 0xF8, 0x0F, 0xF0, 0x03, 0xFC, 0x07, 0xFF, 0x0F,
|
||||
0xFF, 0x1F, 0xFF, 0x1E, 0x00, 0x1E, 0x00, 0xFF, 0xF8, 0xFF, 0xFC, 0xFF,
|
||||
0xFC, 0xFF, 0xF8, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E,
|
||||
0x00, 0x1E, 0x00, 0x1E, 0x00, 0x1E, 0x00, 0xFF, 0xF8, 0xFF, 0xF8, 0xFF,
|
||||
0xF8, 0xFF, 0xF8, 0x07, 0xE7, 0xC3, 0xFF, 0xFC, 0xFF, 0xFF, 0xBF, 0xFF,
|
||||
0xF7, 0xC1, 0xF9, 0xF0, 0x1F, 0x3C, 0x01, 0xE7, 0x80, 0x3C, 0xF0, 0x07,
|
||||
0x9E, 0x00, 0xF3, 0xE0, 0x3E, 0x3E, 0x0F, 0xC7, 0xFF, 0xF8, 0x7F, 0xFF,
|
||||
0x07, 0xFD, 0xE0, 0x3F, 0x3C, 0x00, 0x07, 0x80, 0x00, 0xF0, 0x00, 0x3E,
|
||||
0x03, 0xFF, 0x80, 0x7F, 0xF0, 0x0F, 0xFC, 0x00, 0xFE, 0x00, 0x3E, 0x00,
|
||||
0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x01, 0xE0, 0x00, 0x0F,
|
||||
0x00, 0x00, 0x78, 0xF8, 0x03, 0xDF, 0xE0, 0x1F, 0xFF, 0x80, 0xFF, 0xFE,
|
||||
0x07, 0xE1, 0xF0, 0x3E, 0x07, 0x81, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x78,
|
||||
0x0F, 0x03, 0xC0, 0x78, 0x1E, 0x03, 0xC0, 0xF0, 0x1E, 0x1F, 0xC1, 0xFD,
|
||||
0xFE, 0x0F, 0xFF, 0xF0, 0x7F, 0xBF, 0x01, 0xF8, 0x03, 0xC0, 0x03, 0xC0,
|
||||
0x03, 0xC0, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0,
|
||||
0x3F, 0xC0, 0x3F, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
|
||||
0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0xFF, 0xFE, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7F, 0xFE, 0x03, 0xC0, 0x3C, 0x03, 0xC0, 0x3C, 0x00, 0x00,
|
||||
0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x00, 0xF0, 0x0F, 0x00, 0xF0,
|
||||
0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0, 0x0F, 0x00, 0xF0,
|
||||
0x0F, 0x00, 0xF0, 0x0F, 0x01, 0xFF, 0xFE, 0xFF, 0xEF, 0xFC, 0x7F, 0x00,
|
||||
0x7C, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0x3C, 0x00, 0x0F,
|
||||
0x00, 0x03, 0xC7, 0xF0, 0xF3, 0xFC, 0x3C, 0xFF, 0x0F, 0x3F, 0x83, 0xDF,
|
||||
0x00, 0xFF, 0x80, 0x3F, 0xC0, 0x0F, 0xE0, 0x03, 0xFC, 0x00, 0xF7, 0x80,
|
||||
0x3C, 0xF0, 0x0F, 0x1F, 0x0F, 0xC3, 0xFB, 0xF1, 0xFF, 0xFC, 0x7F, 0xDF,
|
||||
0x0F, 0xE0, 0x3F, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x03, 0xC0,
|
||||
0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
|
||||
0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0,
|
||||
0x03, 0xC0, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0x3D, 0xE3,
|
||||
0xC1, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE, 0x3E, 0x3C, 0x78,
|
||||
0xF0, 0xF1, 0xE3, 0xC3, 0xC7, 0x8F, 0x0F, 0x1E, 0x3C, 0x3C, 0x78, 0xF0,
|
||||
0xF1, 0xE3, 0xC3, 0xC7, 0x8F, 0x0F, 0x1E, 0xFE, 0x3E, 0x7F, 0xF8, 0xF9,
|
||||
0xFF, 0xE3, 0xE7, 0xDF, 0x0F, 0x1E, 0x1E, 0x7C, 0x03, 0xEF, 0xF0, 0x3F,
|
||||
0xFF, 0x83, 0xFF, 0xFC, 0x1F, 0x87, 0xC1, 0xE0, 0x3C, 0x1E, 0x03, 0xC1,
|
||||
0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x3C, 0x1E, 0x03, 0xC1, 0xE0, 0x3C,
|
||||
0x7F, 0x0F, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xF7, 0xE0, 0x7E, 0x03, 0xF8,
|
||||
0x01, 0xFF, 0xC0, 0x7F, 0xFC, 0x1F, 0xFF, 0xC7, 0xE0, 0xFD, 0xF0, 0x07,
|
||||
0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3F, 0xE0, 0x0F,
|
||||
0xBF, 0x07, 0xE3, 0xFF, 0xF8, 0x3F, 0xFE, 0x03, 0xFF, 0x80, 0x1F, 0xC0,
|
||||
0x3E, 0x7E, 0x03, 0xF7, 0xFC, 0x1F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC1, 0xF8,
|
||||
0x3F, 0x0F, 0x80, 0x7C, 0x78, 0x01, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x78,
|
||||
0xF0, 0x03, 0xC7, 0xC0, 0x3E, 0x3F, 0x07, 0xE1, 0xFF, 0xFE, 0x0F, 0xFF,
|
||||
0xE0, 0x7B, 0xFE, 0x03, 0xCF, 0xC0, 0x1E, 0x00, 0x00, 0xF0, 0x00, 0x07,
|
||||
0x80, 0x00, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x01, 0xFE, 0x00,
|
||||
0x00, 0x03, 0xF3, 0xE0, 0x7F, 0xDF, 0x87, 0xFF, 0xFC, 0x7F, 0xFF, 0xE7,
|
||||
0xE0, 0xFC, 0x7C, 0x03, 0xE3, 0xC0, 0x0F, 0x1E, 0x00, 0x78, 0xF0, 0x03,
|
||||
0xC7, 0x80, 0x1E, 0x3E, 0x01, 0xF0, 0xFC, 0x1F, 0x83, 0xFF, 0xFC, 0x1F,
|
||||
0xFF, 0xE0, 0x3F, 0xEF, 0x00, 0x7E, 0x78, 0x00, 0x03, 0xC0, 0x00, 0x1E,
|
||||
0x00, 0x00, 0xF0, 0x00, 0x3F, 0xE0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00,
|
||||
0x3F, 0xC0, 0x7E, 0x1E, 0x7F, 0x3F, 0xFF, 0xBF, 0xFF, 0xFF, 0xF1, 0xFE,
|
||||
0x00, 0xFC, 0x00, 0x7C, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x0F, 0x00, 0x07,
|
||||
0x80, 0x03, 0xC0, 0x0F, 0xFF, 0x87, 0xFF, 0xC3, 0xFF, 0xE1, 0xFF, 0xE0,
|
||||
0x07, 0xE6, 0x1F, 0xFE, 0x7F, 0xFE, 0x7F, 0xFE, 0x78, 0x1E, 0x78, 0x0E,
|
||||
0x7F, 0xE0, 0x3F, 0xFC, 0x03, 0xFE, 0x60, 0x1F, 0xE0, 0x0F, 0xF8, 0x1F,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFC, 0x07, 0xE0, 0x0C, 0x00, 0x0F, 0x00,
|
||||
0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x07, 0xFF, 0xF3, 0xFF, 0xF9, 0xFF,
|
||||
0xFC, 0xFF, 0xFC, 0x0F, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x01, 0xE0, 0x00,
|
||||
0xF0, 0x00, 0x78, 0x00, 0x3C, 0x00, 0x1E, 0x07, 0x8F, 0xFF, 0xC3, 0xFF,
|
||||
0xC1, 0xFF, 0xC0, 0x3F, 0x80, 0xFC, 0x1F, 0xBF, 0x0F, 0xEF, 0xC3, 0xFB,
|
||||
0xF0, 0xFE, 0x3C, 0x07, 0x8F, 0x01, 0xE3, 0xC0, 0x78, 0xF0, 0x1E, 0x3C,
|
||||
0x07, 0x8F, 0x01, 0xE3, 0xC0, 0x78, 0xF8, 0x7E, 0x3F, 0xFF, 0xC7, 0xFF,
|
||||
0xF0, 0xFF, 0x7C, 0x0F, 0x9E, 0x7F, 0x07, 0xF7, 0xFC, 0x7F, 0xFF, 0xE3,
|
||||
0xFE, 0xFE, 0x0F, 0xE1, 0xE0, 0x3C, 0x0F, 0x01, 0xE0, 0x3C, 0x1E, 0x01,
|
||||
0xE0, 0xF0, 0x07, 0x8F, 0x00, 0x3E, 0x78, 0x00, 0xF7, 0x80, 0x07, 0xFC,
|
||||
0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x7E,
|
||||
0x03, 0xF7, 0xF8, 0x3F, 0xFF, 0xC1, 0xFE, 0xFC, 0x07, 0xF3, 0xC7, 0x0F,
|
||||
0x1E, 0x7C, 0xF0, 0x73, 0xE7, 0x83, 0x9F, 0x7C, 0x1F, 0xFF, 0xC0, 0xFF,
|
||||
0xFE, 0x03, 0xF7, 0xF0, 0x1F, 0xBF, 0x80, 0xFC, 0xF8, 0x07, 0xC7, 0xC0,
|
||||
0x1E, 0x3E, 0x00, 0xE0, 0xE0, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF, 0xFC, 0x7F,
|
||||
0xBF, 0x07, 0xE1, 0xF1, 0xF0, 0x1F, 0xFC, 0x01, 0xFF, 0x00, 0x1F, 0xC0,
|
||||
0x07, 0xF8, 0x01, 0xFF, 0xC0, 0x7E, 0xFC, 0x1F, 0x8F, 0xC7, 0xE0, 0xFD,
|
||||
0xFE, 0x3F, 0xFF, 0xC7, 0xFF, 0xF0, 0x7F, 0x7E, 0x0F, 0xDF, 0xE3, 0xFF,
|
||||
0xFC, 0x7F, 0xBF, 0x07, 0xE3, 0xC0, 0x78, 0x3C, 0x0E, 0x07, 0x83, 0xC0,
|
||||
0x78, 0x70, 0x0F, 0x1E, 0x00, 0xE3, 0x80, 0x1E, 0xF0, 0x01, 0xDC, 0x00,
|
||||
0x3F, 0x80, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0x00, 0x01, 0xE0, 0x00,
|
||||
0x38, 0x00, 0x0F, 0x00, 0x3F, 0xF0, 0x0F, 0xFF, 0x01, 0xFF, 0xE0, 0x1F,
|
||||
0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF9, 0xC7,
|
||||
0xC0, 0x3E, 0x01, 0xF0, 0x0F, 0x80, 0x78, 0x03, 0xC0, 0x1E, 0x07, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x81, 0xF0, 0xFC, 0x7E, 0x1F,
|
||||
0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0xF8, 0xFC, 0x3E, 0x0F,
|
||||
0x83, 0xF0, 0x3E, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xF0, 0x7E,
|
||||
0x0F, 0xC3, 0xF0, 0x38, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x70, 0x3E, 0x0F, 0xC1, 0xF8, 0x3E,
|
||||
0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x81, 0xE0, 0x7C, 0x0F, 0xC1, 0xF0,
|
||||
0x7C, 0x3F, 0x1F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x07, 0x83, 0xE1, 0xF8,
|
||||
0xFC, 0x3F, 0x07, 0x00, 0x1E, 0x00, 0x1F, 0xC0, 0x1F, 0xF0, 0xDF, 0xFC,
|
||||
0xFF, 0x3F, 0xFB, 0x0F, 0xF8, 0x03, 0xF8, 0x00, 0x78};
|
||||
|
||||
const GFXglyph FreeMonoBold18pt7bGlyphs[] PROGMEM = {
|
||||
{0, 0, 0, 21, 0, 1}, // 0x20 ' '
|
||||
{0, 5, 22, 21, 8, -21}, // 0x21 '!'
|
||||
{14, 11, 10, 21, 5, -20}, // 0x22 '"'
|
||||
{28, 16, 25, 21, 3, -22}, // 0x23 '#'
|
||||
{78, 14, 28, 21, 4, -23}, // 0x24 '$'
|
||||
{127, 15, 21, 21, 3, -20}, // 0x25 '%'
|
||||
{167, 15, 20, 21, 3, -19}, // 0x26 '&'
|
||||
{205, 4, 10, 21, 8, -20}, // 0x27 '''
|
||||
{210, 8, 27, 21, 9, -21}, // 0x28 '('
|
||||
{237, 8, 27, 21, 4, -21}, // 0x29 ')'
|
||||
{264, 16, 15, 21, 3, -21}, // 0x2A '*'
|
||||
{294, 16, 19, 21, 3, -18}, // 0x2B '+'
|
||||
{332, 7, 10, 21, 5, -3}, // 0x2C ','
|
||||
{341, 19, 4, 21, 1, -11}, // 0x2D '-'
|
||||
{351, 5, 5, 21, 8, -4}, // 0x2E '.'
|
||||
{355, 15, 28, 21, 3, -23}, // 0x2F '/'
|
||||
{408, 16, 23, 21, 3, -22}, // 0x30 '0'
|
||||
{454, 15, 22, 21, 3, -21}, // 0x31 '1'
|
||||
{496, 15, 23, 21, 3, -22}, // 0x32 '2'
|
||||
{540, 16, 23, 21, 3, -22}, // 0x33 '3'
|
||||
{586, 15, 21, 21, 3, -20}, // 0x34 '4'
|
||||
{626, 17, 22, 21, 2, -21}, // 0x35 '5'
|
||||
{673, 15, 23, 21, 4, -22}, // 0x36 '6'
|
||||
{717, 15, 22, 21, 3, -21}, // 0x37 '7'
|
||||
{759, 15, 23, 21, 3, -22}, // 0x38 '8'
|
||||
{803, 15, 23, 21, 4, -22}, // 0x39 '9'
|
||||
{847, 5, 16, 21, 8, -15}, // 0x3A ':'
|
||||
{857, 7, 22, 21, 5, -15}, // 0x3B ';'
|
||||
{877, 18, 16, 21, 1, -17}, // 0x3C '<'
|
||||
{913, 19, 10, 21, 1, -14}, // 0x3D '='
|
||||
{937, 18, 16, 21, 2, -17}, // 0x3E '>'
|
||||
{973, 15, 21, 21, 4, -20}, // 0x3F '?'
|
||||
{1013, 15, 27, 21, 3, -21}, // 0x40 '@'
|
||||
{1064, 22, 21, 21, -1, -20}, // 0x41 'A'
|
||||
{1122, 20, 21, 21, 1, -20}, // 0x42 'B'
|
||||
{1175, 19, 21, 21, 1, -20}, // 0x43 'C'
|
||||
{1225, 18, 21, 21, 2, -20}, // 0x44 'D'
|
||||
{1273, 19, 21, 21, 1, -20}, // 0x45 'E'
|
||||
{1323, 19, 21, 21, 1, -20}, // 0x46 'F'
|
||||
{1373, 20, 21, 21, 1, -20}, // 0x47 'G'
|
||||
{1426, 21, 21, 21, 0, -20}, // 0x48 'H'
|
||||
{1482, 14, 21, 21, 4, -20}, // 0x49 'I'
|
||||
{1519, 19, 21, 21, 2, -20}, // 0x4A 'J'
|
||||
{1569, 20, 21, 21, 1, -20}, // 0x4B 'K'
|
||||
{1622, 18, 21, 21, 2, -20}, // 0x4C 'L'
|
||||
{1670, 23, 21, 21, -1, -20}, // 0x4D 'M'
|
||||
{1731, 20, 21, 21, 1, -20}, // 0x4E 'N'
|
||||
{1784, 20, 21, 21, 1, -20}, // 0x4F 'O'
|
||||
{1837, 18, 21, 21, 1, -20}, // 0x50 'P'
|
||||
{1885, 20, 26, 21, 1, -20}, // 0x51 'Q'
|
||||
{1950, 21, 21, 21, 0, -20}, // 0x52 'R'
|
||||
{2006, 17, 21, 21, 2, -20}, // 0x53 'S'
|
||||
{2051, 19, 21, 21, 1, -20}, // 0x54 'T'
|
||||
{2101, 21, 21, 21, 0, -20}, // 0x55 'U'
|
||||
{2157, 23, 21, 21, -1, -20}, // 0x56 'V'
|
||||
{2218, 21, 21, 21, 0, -20}, // 0x57 'W'
|
||||
{2274, 19, 21, 21, 1, -20}, // 0x58 'X'
|
||||
{2324, 20, 21, 21, 1, -20}, // 0x59 'Y'
|
||||
{2377, 16, 21, 21, 3, -20}, // 0x5A 'Z'
|
||||
{2419, 8, 27, 21, 9, -21}, // 0x5B '['
|
||||
{2446, 15, 28, 21, 3, -23}, // 0x5C '\'
|
||||
{2499, 8, 27, 21, 4, -21}, // 0x5D ']'
|
||||
{2526, 15, 11, 21, 3, -21}, // 0x5E '^'
|
||||
{2547, 21, 4, 21, 0, 4}, // 0x5F '_'
|
||||
{2558, 6, 6, 21, 6, -22}, // 0x60 '`'
|
||||
{2563, 19, 16, 21, 1, -15}, // 0x61 'a'
|
||||
{2601, 19, 22, 21, 1, -21}, // 0x62 'b'
|
||||
{2654, 17, 16, 21, 2, -15}, // 0x63 'c'
|
||||
{2688, 20, 22, 21, 1, -21}, // 0x64 'd'
|
||||
{2743, 18, 16, 21, 1, -15}, // 0x65 'e'
|
||||
{2779, 16, 22, 21, 4, -21}, // 0x66 'f'
|
||||
{2823, 19, 23, 21, 1, -15}, // 0x67 'g'
|
||||
{2878, 21, 22, 21, 0, -21}, // 0x68 'h'
|
||||
{2936, 16, 22, 21, 3, -21}, // 0x69 'i'
|
||||
{2980, 12, 29, 21, 5, -21}, // 0x6A 'j'
|
||||
{3024, 18, 22, 21, 2, -21}, // 0x6B 'k'
|
||||
{3074, 16, 22, 21, 3, -21}, // 0x6C 'l'
|
||||
{3118, 22, 16, 21, -1, -15}, // 0x6D 'm'
|
||||
{3162, 20, 16, 21, 0, -15}, // 0x6E 'n'
|
||||
{3202, 19, 16, 21, 1, -15}, // 0x6F 'o'
|
||||
{3240, 21, 23, 21, 0, -15}, // 0x70 'p'
|
||||
{3301, 21, 23, 22, 1, -15}, // 0x71 'q'
|
||||
{3362, 17, 16, 21, 3, -15}, // 0x72 'r'
|
||||
{3396, 16, 16, 21, 3, -15}, // 0x73 's'
|
||||
{3428, 17, 21, 21, 1, -20}, // 0x74 't'
|
||||
{3473, 18, 16, 21, 1, -15}, // 0x75 'u'
|
||||
{3509, 21, 16, 21, 0, -15}, // 0x76 'v'
|
||||
{3551, 21, 16, 21, 0, -15}, // 0x77 'w'
|
||||
{3593, 19, 16, 21, 1, -15}, // 0x78 'x'
|
||||
{3631, 19, 23, 21, 1, -15}, // 0x79 'y'
|
||||
{3686, 14, 16, 21, 3, -15}, // 0x7A 'z'
|
||||
{3714, 10, 27, 21, 6, -21}, // 0x7B '{'
|
||||
{3748, 4, 27, 21, 9, -21}, // 0x7C '|'
|
||||
{3762, 10, 27, 21, 6, -21}, // 0x7D '}'
|
||||
{3796, 17, 8, 21, 2, -13}}; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeMonoBold18pt7b PROGMEM = {
|
||||
(uint8_t *)FreeMonoBold18pt7bBitmaps, (GFXglyph *)FreeMonoBold18pt7bGlyphs,
|
||||
0x20, 0x7E, 35};
|
||||
|
||||
// Approx. 4485 bytes
|
@@ -1,674 +0,0 @@
|
||||
#pragma once
|
||||
#include <Adafruit_GFX.h>
|
||||
|
||||
const uint8_t FreeMonoBold24pt7bBitmaps[] PROGMEM = {
|
||||
0x38, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF3, 0xE7, 0xCF,
|
||||
0x9F, 0x3E, 0x7C, 0xF9, 0xF3, 0xE3, 0x82, 0x00, 0x00, 0x00, 0x71, 0xF7,
|
||||
0xFF, 0xEF, 0x9E, 0x00, 0xFC, 0x7E, 0xF8, 0x7D, 0xF0, 0xFB, 0xE1, 0xF7,
|
||||
0xC3, 0xEF, 0x87, 0xDF, 0x0F, 0xBE, 0x1F, 0x38, 0x1C, 0x70, 0x38, 0xE0,
|
||||
0x71, 0xC0, 0xE3, 0x81, 0xC7, 0x03, 0x80, 0x01, 0xC1, 0xC0, 0x0F, 0x8F,
|
||||
0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0, 0x0F, 0x8F, 0x80,
|
||||
0x7E, 0x3E, 0x01, 0xF0, 0xF8, 0x07, 0xC7, 0xC0, 0x1F, 0x1F, 0x03, 0xFF,
|
||||
0xFF, 0x9F, 0xFF, 0xFF, 0x7F, 0xFF, 0xFD, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF,
|
||||
0x81, 0xF1, 0xF0, 0x07, 0xC7, 0xC0, 0x1F, 0x1F, 0x00, 0x7C, 0x7C, 0x1F,
|
||||
0xFF, 0xFC, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0x9F, 0xFF,
|
||||
0xFC, 0x0F, 0x8F, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0,
|
||||
0x0F, 0x8F, 0x80, 0x3E, 0x3E, 0x00, 0xF8, 0xF8, 0x03, 0xE3, 0xE0, 0x0F,
|
||||
0x8F, 0x80, 0x3C, 0x3C, 0x00, 0x00, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
|
||||
0x00, 0xF8, 0x00, 0x1F, 0x00, 0x1F, 0xFF, 0x07, 0xFF, 0xF1, 0xFF, 0xFE,
|
||||
0x7F, 0xFF, 0xDF, 0xC1, 0xFB, 0xF0, 0x1F, 0x7C, 0x01, 0xEF, 0x80, 0x39,
|
||||
0xF8, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x03, 0xFF, 0xF0,
|
||||
0x0F, 0xFF, 0x00, 0x1F, 0xE0, 0x00, 0x7F, 0xC0, 0x07, 0xF8, 0x00, 0xFF,
|
||||
0x80, 0x1F, 0xF8, 0x07, 0xFF, 0x81, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0xCF,
|
||||
0xFF, 0xF1, 0xDF, 0xFC, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00,
|
||||
0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00, 0x01, 0xC0, 0x00,
|
||||
0x0F, 0x80, 0x00, 0xFF, 0x00, 0x1F, 0xFC, 0x00, 0xF0, 0xE0, 0x0F, 0x07,
|
||||
0x80, 0x70, 0x1C, 0x03, 0x80, 0xE0, 0x1C, 0x07, 0x00, 0xF0, 0x78, 0x03,
|
||||
0xC3, 0x80, 0x1F, 0xFC, 0x00, 0x7F, 0xC1, 0xF0, 0xF8, 0x7F, 0x00, 0x3F,
|
||||
0xF0, 0x0F, 0xFC, 0x03, 0xFF, 0x00, 0xFF, 0xC0, 0x07, 0xE0, 0xF8, 0x38,
|
||||
0x1F, 0xE0, 0x01, 0xFF, 0x80, 0x0F, 0x1E, 0x00, 0xF0, 0x78, 0x07, 0x01,
|
||||
0xC0, 0x38, 0x0E, 0x01, 0xC0, 0x70, 0x0F, 0x07, 0x80, 0x38, 0x78, 0x01,
|
||||
0xFF, 0xC0, 0x07, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0xFC,
|
||||
0x01, 0xFF, 0xE0, 0x1F, 0xFF, 0x00, 0xFF, 0xF8, 0x0F, 0xC7, 0x00, 0x7C,
|
||||
0x10, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00,
|
||||
0x1F, 0x80, 0x00, 0xFE, 0x00, 0x0F, 0xF8, 0x00, 0xFF, 0xC7, 0xCF, 0xFF,
|
||||
0x3F, 0x7E, 0xFF, 0xFF, 0xE7, 0xFF, 0xBE, 0x1F, 0xF9, 0xF0, 0x7F, 0x8F,
|
||||
0x83, 0xFC, 0x7C, 0x0F, 0xE3, 0xF0, 0x7F, 0xCF, 0xFF, 0xFF, 0x7F, 0xFF,
|
||||
0xF9, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x0F, 0xE0, 0x00, 0xFD, 0xF7, 0xDF,
|
||||
0x7D, 0xF7, 0xDF, 0x38, 0xE3, 0x8E, 0x38, 0xE0, 0x01, 0x80, 0xF0, 0x7C,
|
||||
0x3F, 0x0F, 0xC7, 0xE1, 0xF8, 0xFC, 0x3E, 0x0F, 0x87, 0xC1, 0xF0, 0x7C,
|
||||
0x1F, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F,
|
||||
0x81, 0xF0, 0x7C, 0x1F, 0x07, 0xC0, 0xF8, 0x3E, 0x0F, 0xC1, 0xF0, 0x7E,
|
||||
0x0F, 0x83, 0xF0, 0x7C, 0x1F, 0x03, 0xC0, 0x60, 0x3C, 0x0F, 0x83, 0xF0,
|
||||
0xFC, 0x1F, 0x83, 0xE0, 0xFC, 0x1F, 0x07, 0xC1, 0xF8, 0x3E, 0x0F, 0x83,
|
||||
0xE0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C,
|
||||
0x1E, 0x0F, 0x83, 0xE0, 0xF8, 0x7C, 0x1F, 0x0F, 0xC3, 0xE1, 0xF8, 0x7C,
|
||||
0x3F, 0x0F, 0x83, 0xE0, 0xF0, 0x00, 0x00, 0x70, 0x00, 0x07, 0xC0, 0x00,
|
||||
0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x10, 0x7C, 0x11, 0xF3, 0xE7,
|
||||
0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0x87, 0xFF, 0xF0, 0x07,
|
||||
0xFC, 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0x80, 0x3F, 0x7E, 0x01, 0xFB, 0xF0,
|
||||
0x1F, 0x8F, 0xC0, 0xF8, 0x3E, 0x03, 0x80, 0xE0, 0x00, 0x38, 0x00, 0x00,
|
||||
0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F,
|
||||
0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8,
|
||||
0x01, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xDF, 0xFF, 0xFF, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00,
|
||||
0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00,
|
||||
0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x70, 0x00, 0x1F,
|
||||
0x8F, 0x87, 0xC7, 0xC3, 0xE1, 0xE1, 0xF0, 0xF0, 0x78, 0x38, 0x3C, 0x1C,
|
||||
0x0E, 0x06, 0x00, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0x7D, 0xFF, 0xFF, 0xFF, 0xEF, 0x80,
|
||||
0x00, 0x00, 0x60, 0x00, 0x0F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x01,
|
||||
0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00,
|
||||
0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00,
|
||||
0x3E, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0xC0, 0x00, 0xF8, 0x00,
|
||||
0x1F, 0x80, 0x01, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00,
|
||||
0x07, 0xC0, 0x00, 0x7C, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x1F, 0x00,
|
||||
0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0,
|
||||
0x00, 0xFC, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x00, 0x00, 0x01,
|
||||
0xFC, 0x00, 0x3F, 0xF8, 0x03, 0xFF, 0xE0, 0x3F, 0xFF, 0x83, 0xFF, 0xFE,
|
||||
0x1F, 0x83, 0xF1, 0xF8, 0x0F, 0xCF, 0x80, 0x3E, 0x7C, 0x01, 0xF7, 0xC0,
|
||||
0x07, 0xFE, 0x00, 0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F,
|
||||
0xE0, 0x03, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0xC0, 0x07, 0xFE, 0x00,
|
||||
0x3F, 0xF0, 0x01, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7D, 0xF0, 0x07, 0xCF,
|
||||
0x80, 0x3E, 0x7E, 0x03, 0xF1, 0xF8, 0x3F, 0x0F, 0xFF, 0xF8, 0x3F, 0xFF,
|
||||
0x80, 0xFF, 0xF8, 0x03, 0xFF, 0x80, 0x07, 0xF0, 0x00, 0x01, 0xF8, 0x00,
|
||||
0x3F, 0x80, 0x0F, 0xF8, 0x01, 0xFF, 0x80, 0x7F, 0xF8, 0x0F, 0xEF, 0x80,
|
||||
0xFC, 0xF8, 0x07, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8,
|
||||
0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F,
|
||||
0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00,
|
||||
0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x3F, 0xFF, 0xE7,
|
||||
0xFF, 0xFF, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0x3F, 0xFF, 0xE0, 0x01, 0xFC,
|
||||
0x00, 0x3F, 0xF8, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0xC7, 0xFF, 0xFF, 0x3F,
|
||||
0x03, 0xFB, 0xF0, 0x07, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFB, 0x80, 0x07,
|
||||
0xC0, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xF8, 0x00,
|
||||
0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x3F, 0x00,
|
||||
0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xE0,
|
||||
0x0E, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x03, 0xF8, 0x00, 0xFF, 0xF8, 0x0F, 0xFF,
|
||||
0xE0, 0xFF, 0xFF, 0x8F, 0xFF, 0xFE, 0x7E, 0x03, 0xF1, 0xC0, 0x0F, 0xC0,
|
||||
0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xFC, 0x00, 0x0F,
|
||||
0xC0, 0x0F, 0xFC, 0x00, 0xFF, 0xC0, 0x07, 0xFC, 0x00, 0x3F, 0xF0, 0x00,
|
||||
0xFF, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F,
|
||||
0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x01, 0xFF, 0xC0,
|
||||
0x3F, 0xBF, 0xFF, 0xFD, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x1F, 0xFF, 0xC0,
|
||||
0x1F, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00, 0x7F, 0x80, 0x07,
|
||||
0xF8, 0x00, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xEF, 0x80, 0x3E, 0xF8, 0x03,
|
||||
0xCF, 0x80, 0x7C, 0xF8, 0x0F, 0x8F, 0x80, 0xF0, 0xF8, 0x1F, 0x0F, 0x81,
|
||||
0xE0, 0xF8, 0x3E, 0x0F, 0x87, 0xC0, 0xF8, 0x78, 0x0F, 0x8F, 0xFF, 0xFE,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x0F,
|
||||
0x80, 0x07, 0xFE, 0x00, 0xFF, 0xF0, 0x0F, 0xFF, 0x00, 0xFF, 0xF0, 0x07,
|
||||
0xFE, 0x3F, 0xFF, 0xC1, 0xFF, 0xFF, 0x0F, 0xFF, 0xF8, 0x7F, 0xFF, 0xC3,
|
||||
0xFF, 0xFC, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00,
|
||||
0x01, 0xF0, 0x00, 0x0F, 0xBF, 0x00, 0x7F, 0xFF, 0x03, 0xFF, 0xFC, 0x1F,
|
||||
0xFF, 0xF0, 0xFF, 0xFF, 0x83, 0xC0, 0xFE, 0x00, 0x01, 0xF0, 0x00, 0x0F,
|
||||
0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00,
|
||||
0x03, 0xE0, 0x00, 0x3F, 0xF0, 0x03, 0xF7, 0xE0, 0x3F, 0xBF, 0xFF, 0xF9,
|
||||
0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x1F, 0xFF, 0x80, 0x1F, 0xF0, 0x00, 0x00,
|
||||
0x1F, 0xC0, 0x0F, 0xFF, 0x01, 0xFF, 0xF0, 0x7F, 0xFF, 0x0F, 0xFF, 0xE1,
|
||||
0xFF, 0x00, 0x1F, 0xC0, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x07, 0xE0, 0x00,
|
||||
0x7C, 0x00, 0x0F, 0x8F, 0xC0, 0xF9, 0xFF, 0x0F, 0xFF, 0xF8, 0xFF, 0xFF,
|
||||
0xCF, 0xFF, 0xFC, 0xFF, 0x0F, 0xEF, 0xE0, 0x3E, 0xFC, 0x03, 0xFF, 0x80,
|
||||
0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xF7, 0xC0, 0x3F, 0x7E,
|
||||
0x03, 0xF3, 0xF0, 0x7E, 0x3F, 0xFF, 0xE1, 0xFF, 0xFC, 0x0F, 0xFF, 0x80,
|
||||
0x7F, 0xF0, 0x01, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0xF0, 0x03, 0xE0, 0x00,
|
||||
0x3E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7C, 0x00,
|
||||
0x0F, 0x80, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x1F, 0x00,
|
||||
0x01, 0xF0, 0x00, 0x3E, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
|
||||
0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8,
|
||||
0x00, 0x0F, 0x00, 0x00, 0xF0, 0x00, 0x06, 0x00, 0x01, 0xF8, 0x00, 0xFF,
|
||||
0xF0, 0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x7F, 0xFF, 0xE7, 0xE0, 0x7E, 0xFC,
|
||||
0x03, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xF7,
|
||||
0xC0, 0x3E, 0x7E, 0x07, 0xE3, 0xFF, 0xFC, 0x0F, 0xFF, 0x00, 0xFF, 0xF0,
|
||||
0x1F, 0xFF, 0x83, 0xFF, 0xFC, 0x7F, 0x0F, 0xE7, 0xC0, 0x3E, 0xF8, 0x01,
|
||||
0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x1F, 0xFC, 0x03, 0xF7, 0xE0,
|
||||
0x7E, 0x7F, 0xFF, 0xE3, 0xFF, 0xFC, 0x1F, 0xFF, 0x80, 0xFF, 0xF0, 0x03,
|
||||
0xFC, 0x00, 0x03, 0xF8, 0x00, 0xFF, 0xE0, 0x1F, 0xFF, 0x83, 0xFF, 0xF8,
|
||||
0x7F, 0xFF, 0xC7, 0xE0, 0xFE, 0xFC, 0x03, 0xEF, 0x80, 0x3E, 0xF8, 0x01,
|
||||
0xFF, 0x80, 0x1F, 0xF8, 0x01, 0xFF, 0x80, 0x3F, 0xFC, 0x07, 0xF7, 0xE0,
|
||||
0xFF, 0x7F, 0xFF, 0xF3, 0xFF, 0xFF, 0x1F, 0xFF, 0xF0, 0xFF, 0x9F, 0x03,
|
||||
0xF1, 0xF0, 0x00, 0x3F, 0x00, 0x03, 0xE0, 0x00, 0x7E, 0x00, 0x0F, 0xC0,
|
||||
0x01, 0xFC, 0x00, 0x3F, 0x80, 0x0F, 0xF0, 0x7F, 0xFE, 0x0F, 0xFF, 0xC0,
|
||||
0xFF, 0xF8, 0x0F, 0xFF, 0x00, 0x3F, 0x80, 0x00, 0x7D, 0xFF, 0xFF, 0xFF,
|
||||
0xEF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xFF,
|
||||
0xFF, 0xFF, 0xEF, 0x80, 0x0F, 0x87, 0xF1, 0xFC, 0x7F, 0x1F, 0xC3, 0xE0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
|
||||
0x1F, 0x87, 0xE1, 0xF0, 0xFC, 0x3E, 0x0F, 0x03, 0xC1, 0xE0, 0x78, 0x1C,
|
||||
0x07, 0x01, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x7F,
|
||||
0x00, 0x01, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x7F, 0xC0,
|
||||
0x01, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x00,
|
||||
0xFF, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xFE, 0x00, 0x01, 0xFF, 0x80,
|
||||
0x00, 0x7F, 0xE0, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xFC, 0x00, 0x01, 0xFE,
|
||||
0x00, 0x00, 0x7F, 0x00, 0x00, 0x1E, 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFE,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFE,
|
||||
0x00, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x07,
|
||||
0xFC, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00,
|
||||
0x7F, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xF0, 0x01,
|
||||
0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x7F, 0xC0, 0x03, 0xFE, 0x00, 0x1F, 0xF0,
|
||||
0x00, 0xFF, 0x80, 0x03, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x01, 0xFF, 0xF0, 0xFF, 0xFF, 0x8F,
|
||||
0xFF, 0xFC, 0xFF, 0xFF, 0xEF, 0xC0, 0x7E, 0xF8, 0x03, 0xFF, 0x80, 0x1F,
|
||||
0x70, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x03, 0xF0, 0x00, 0x7E, 0x00, 0x3F,
|
||||
0xE0, 0x0F, 0xFC, 0x01, 0xFF, 0x00, 0x0F, 0xC0, 0x00, 0xF0, 0x00, 0x0F,
|
||||
0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1F, 0x00, 0x03, 0xF8, 0x00, 0x3F, 0x80, 0x03, 0xF8, 0x00,
|
||||
0x3F, 0x80, 0x01, 0xF0, 0x00, 0x01, 0xF0, 0x00, 0xFF, 0x80, 0x3F, 0xF8,
|
||||
0x0F, 0xFF, 0x83, 0xE0, 0xF8, 0x78, 0x07, 0x1E, 0x00, 0xF3, 0x80, 0x0E,
|
||||
0x70, 0x01, 0xDE, 0x00, 0x3B, 0x80, 0x3F, 0x70, 0x1F, 0xEE, 0x07, 0xFD,
|
||||
0xC1, 0xFF, 0xB8, 0x7E, 0x77, 0x0F, 0x0E, 0xE3, 0xC1, 0xDC, 0x70, 0x3B,
|
||||
0x8E, 0x07, 0x71, 0xC0, 0xEE, 0x3C, 0x1D, 0xC3, 0xC3, 0xB8, 0x7F, 0xF7,
|
||||
0x07, 0xFF, 0xE0, 0x7F, 0xFC, 0x03, 0xFB, 0xC0, 0x00, 0x38, 0x00, 0x07,
|
||||
0x00, 0x00, 0xF0, 0x00, 0x0F, 0x00, 0x61, 0xF0, 0x3E, 0x1F, 0xFF, 0xC3,
|
||||
0xFF, 0xF0, 0x1F, 0xFC, 0x01, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x7F,
|
||||
0xFE, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0xC0, 0x00, 0x7F, 0xFE,
|
||||
0x00, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xF7, 0xC0, 0x00, 0x0F, 0xBE, 0x00,
|
||||
0x00, 0x7D, 0xF8, 0x00, 0x07, 0xC7, 0xC0, 0x00, 0x3E, 0x3E, 0x00, 0x03,
|
||||
0xE0, 0xF8, 0x00, 0x1F, 0x07, 0xC0, 0x00, 0xF0, 0x3F, 0x00, 0x0F, 0x80,
|
||||
0xF8, 0x00, 0x7F, 0xFF, 0xC0, 0x07, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xF8,
|
||||
0x03, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFF, 0x00, 0xF8, 0x00, 0xF8, 0x0F,
|
||||
0x80, 0x03, 0xE1, 0xFF, 0x80, 0xFF, 0xDF, 0xFE, 0x0F, 0xFF, 0xFF, 0xF0,
|
||||
0x7F, 0xFF, 0xFF, 0x83, 0xFF, 0xDF, 0xF8, 0x0F, 0xFC, 0x7F, 0xFF, 0xC0,
|
||||
0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF,
|
||||
0xFE, 0x07, 0xC0, 0x1F, 0xC1, 0xF0, 0x01, 0xF0, 0x7C, 0x00, 0x7C, 0x1F,
|
||||
0x00, 0x1F, 0x07, 0xC0, 0x0F, 0xC1, 0xF0, 0x07, 0xE0, 0x7F, 0xFF, 0xF0,
|
||||
0x1F, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF,
|
||||
0xFC, 0x1F, 0x00, 0x3F, 0x87, 0xC0, 0x03, 0xF1, 0xF0, 0x00, 0x7C, 0x7C,
|
||||
0x00, 0x1F, 0x1F, 0x00, 0x07, 0xC7, 0xC0, 0x03, 0xF7, 0xFF, 0xFF, 0xFB,
|
||||
0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF,
|
||||
0x00, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xE7, 0x01, 0xFF, 0xFF, 0xC1, 0xFF,
|
||||
0xFF, 0xE1, 0xFF, 0xFF, 0xF1, 0xFE, 0x07, 0xF8, 0xFC, 0x01, 0xFC, 0xFC,
|
||||
0x00, 0x7E, 0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x0F, 0xBE, 0x00, 0x03, 0x9F,
|
||||
0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01,
|
||||
0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00,
|
||||
0x1F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x39, 0xFC, 0x00,
|
||||
0x7C, 0x7F, 0x80, 0xFF, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x81, 0xFF,
|
||||
0xFF, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x7F,
|
||||
0xFF, 0xF0, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xC1,
|
||||
0xF0, 0x0F, 0xF0, 0xF8, 0x01, 0xF8, 0x7C, 0x00, 0x7E, 0x3E, 0x00, 0x1F,
|
||||
0x1F, 0x00, 0x0F, 0xCF, 0x80, 0x03, 0xE7, 0xC0, 0x01, 0xF3, 0xE0, 0x00,
|
||||
0xF9, 0xF0, 0x00, 0x7C, 0xF8, 0x00, 0x3E, 0x7C, 0x00, 0x1F, 0x3E, 0x00,
|
||||
0x0F, 0x9F, 0x00, 0x07, 0xCF, 0x80, 0x07, 0xE7, 0xC0, 0x03, 0xE3, 0xE0,
|
||||
0x03, 0xF1, 0xF0, 0x07, 0xF1, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF8, 0xFF,
|
||||
0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFF,
|
||||
0x7F, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF,
|
||||
0xF0, 0xF8, 0x00, 0xF8, 0x7C, 0x00, 0x7C, 0x3E, 0x0E, 0x3E, 0x1F, 0x0F,
|
||||
0x9F, 0x0F, 0x87, 0xC7, 0x07, 0xC3, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF,
|
||||
0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x00, 0x1F,
|
||||
0x0F, 0x80, 0x0F, 0x87, 0xC3, 0x87, 0xC1, 0xC3, 0xE3, 0xE0, 0x01, 0xF1,
|
||||
0xF0, 0x00, 0xF8, 0xF8, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF,
|
||||
0xFF, 0xF8, 0xF8, 0x00, 0x7C, 0x7C, 0x00, 0x3E, 0x3E, 0x00, 0x1F, 0x1F,
|
||||
0x07, 0x0F, 0x8F, 0x87, 0xC3, 0x87, 0xC3, 0xE0, 0x03, 0xFF, 0xF0, 0x01,
|
||||
0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x3F, 0xFF, 0x00,
|
||||
0x1F, 0x0F, 0x80, 0x0F, 0x87, 0xC0, 0x07, 0xC3, 0xE0, 0x03, 0xE0, 0xE0,
|
||||
0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xFF, 0xF0, 0x01, 0xFF, 0xFC,
|
||||
0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x7F, 0x8E, 0x00, 0xFF, 0xF7, 0x81, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE1,
|
||||
0xFF, 0xFF, 0xF1, 0xFE, 0x03, 0xF8, 0xFC, 0x00, 0xFC, 0xFC, 0x00, 0x3E,
|
||||
0x7C, 0x00, 0x1F, 0x7E, 0x00, 0x07, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00,
|
||||
0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x0F,
|
||||
0xFE, 0xF8, 0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x00,
|
||||
0xFF, 0xFF, 0xC0, 0x01, 0xF3, 0xF0, 0x00, 0xF9, 0xFC, 0x00, 0x7C, 0x7F,
|
||||
0x80, 0xFE, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x80,
|
||||
0x7F, 0xFF, 0x00, 0x07, 0xFC, 0x00, 0x3F, 0xE1, 0xFF, 0x1F, 0xFC, 0xFF,
|
||||
0xE7, 0xFF, 0x3F, 0xF9, 0xFF, 0xCF, 0xFE, 0x3F, 0xE1, 0xFF, 0x07, 0xC0,
|
||||
0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07,
|
||||
0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFE,
|
||||
0x07, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xF8, 0x1F, 0x00,
|
||||
0x3E, 0x07, 0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F,
|
||||
0x00, 0x3E, 0x07, 0xC0, 0x0F, 0x87, 0xFE, 0x1F, 0xFB, 0xFF, 0xCF, 0xFF,
|
||||
0xFF, 0xF3, 0xFF, 0xFF, 0xFC, 0xFF, 0xF7, 0xFE, 0x1F, 0xF8, 0x7F, 0xFF,
|
||||
0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFC, 0x03, 0xE0,
|
||||
0x00, 0x7C, 0x00, 0x0F, 0x80, 0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0,
|
||||
0x00, 0xF8, 0x00, 0x1F, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x00, 0x0F, 0x80,
|
||||
0x01, 0xF0, 0x00, 0x3E, 0x00, 0x07, 0xC0, 0x00, 0xF8, 0x00, 0x1F, 0x00,
|
||||
0x03, 0xE0, 0x1F, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF,
|
||||
0xE0, 0x3F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x07,
|
||||
0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00,
|
||||
0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F, 0x80, 0x00,
|
||||
0x07, 0xC0, 0xE0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E,
|
||||
0x00, 0x7C, 0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x1F, 0x83,
|
||||
0xF8, 0x3F, 0x81, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xC0,
|
||||
0x07, 0xFF, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0xE0, 0xFF, 0x9F, 0xFE,
|
||||
0x3F, 0xFB, 0xFF, 0xC7, 0xFF, 0x7F, 0xF8, 0xFF, 0xE7, 0xFE, 0x0F, 0xF8,
|
||||
0x3E, 0x01, 0xF8, 0x07, 0xC0, 0xFE, 0x00, 0xF8, 0x3F, 0x80, 0x1F, 0x0F,
|
||||
0xE0, 0x03, 0xE3, 0xF8, 0x00, 0x7D, 0xFC, 0x00, 0x0F, 0xFF, 0x00, 0x01,
|
||||
0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x07, 0xFF, 0xF0, 0x00, 0xFE, 0x7F,
|
||||
0x00, 0x1F, 0x87, 0xF0, 0x03, 0xE0, 0x7E, 0x00, 0x7C, 0x07, 0xE0, 0x0F,
|
||||
0x80, 0x7E, 0x01, 0xF0, 0x0F, 0xC0, 0x3E, 0x00, 0xF8, 0x1F, 0xF8, 0x1F,
|
||||
0xF7, 0xFF, 0x81, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFE, 0x07, 0xFD, 0xFF,
|
||||
0x80, 0x7F, 0x00, 0x7F, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0x80,
|
||||
0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00,
|
||||
0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01, 0xF0,
|
||||
0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F,
|
||||
0x00, 0x00, 0x0F, 0x80, 0x0E, 0x07, 0xC0, 0x0F, 0x83, 0xE0, 0x07, 0xC1,
|
||||
0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E, 0x00, 0x7D,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xDF, 0xFF, 0xFF, 0xE0, 0x3F, 0x80, 0x03, 0xF8, 0xFF, 0x80, 0x0F, 0xF9,
|
||||
0xFF, 0x00, 0x1F, 0xF3, 0xFF, 0x00, 0x7F, 0xE3, 0xFE, 0x00, 0xFF, 0x83,
|
||||
0xFE, 0x03, 0xFE, 0x07, 0xFC, 0x07, 0xFC, 0x0F, 0xFC, 0x1F, 0xF8, 0x1F,
|
||||
0xF8, 0x3F, 0xF0, 0x3F, 0xF0, 0x7F, 0xE0, 0x7D, 0xF1, 0xF7, 0xC0, 0xFB,
|
||||
0xE3, 0xEF, 0x81, 0xF7, 0xEF, 0xDF, 0x03, 0xE7, 0xDF, 0x3E, 0x07, 0xCF,
|
||||
0xFE, 0x7C, 0x0F, 0x8F, 0xF8, 0xF8, 0x1F, 0x1F, 0xF1, 0xF0, 0x3E, 0x1F,
|
||||
0xE3, 0xE0, 0x7C, 0x3F, 0x87, 0xC0, 0xF8, 0x3F, 0x0F, 0x81, 0xF0, 0x00,
|
||||
0x1F, 0x03, 0xE0, 0x00, 0x3E, 0x1F, 0xF8, 0x03, 0xFF, 0x7F, 0xF8, 0x0F,
|
||||
0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xE0, 0x3F, 0xFD, 0xFF, 0x80, 0x3F,
|
||||
0xF0, 0x7F, 0x00, 0x7F, 0xEF, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF,
|
||||
0xFC, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE1, 0xFF, 0x00, 0xF8, 0x1F, 0xF0,
|
||||
0x0F, 0x81, 0xFF, 0x80, 0xF8, 0x1F, 0xFC, 0x0F, 0x81, 0xFF, 0xC0, 0xF8,
|
||||
0x1F, 0x7E, 0x0F, 0x81, 0xF3, 0xF0, 0xF8, 0x1F, 0x3F, 0x0F, 0x81, 0xF1,
|
||||
0xF8, 0xF8, 0x1F, 0x0F, 0xCF, 0x81, 0xF0, 0xFC, 0xF8, 0x1F, 0x07, 0xEF,
|
||||
0x81, 0xF0, 0x3F, 0xF8, 0x1F, 0x03, 0xFF, 0x81, 0xF0, 0x1F, 0xF8, 0x1F,
|
||||
0x00, 0xFF, 0x81, 0xF0, 0x0F, 0xF8, 0x7F, 0xE0, 0x7F, 0x8F, 0xFF, 0x03,
|
||||
0xF8, 0xFF, 0xF0, 0x3F, 0x8F, 0xFF, 0x01, 0xF8, 0x7F, 0xE0, 0x0F, 0x80,
|
||||
0x00, 0x3F, 0x80, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0xE0, 0x03, 0xFF,
|
||||
0xFE, 0x00, 0xFF, 0xFF, 0xE0, 0x3F, 0xC1, 0xFE, 0x0F, 0xE0, 0x0F, 0xE1,
|
||||
0xF8, 0x00, 0xFC, 0x7E, 0x00, 0x0F, 0xCF, 0x80, 0x00, 0xFB, 0xF0, 0x00,
|
||||
0x1F, 0xFC, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE,
|
||||
0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x00,
|
||||
0x7F, 0xF0, 0x00, 0x1F, 0xBE, 0x00, 0x03, 0xE7, 0xE0, 0x00, 0xFC, 0x7E,
|
||||
0x00, 0x3F, 0x0F, 0xE0, 0x0F, 0xE0, 0xFF, 0x07, 0xF8, 0x0F, 0xFF, 0xFE,
|
||||
0x00, 0xFF, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x00, 0xFF, 0xF8, 0x00, 0x03,
|
||||
0xF8, 0x00, 0x7F, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0xFF,
|
||||
0xFF, 0xFC, 0x7F, 0xFF, 0xFE, 0x1F, 0x00, 0xFE, 0x1F, 0x00, 0x3F, 0x1F,
|
||||
0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x00, 0x1F, 0x1F,
|
||||
0x00, 0x3F, 0x1F, 0x00, 0x7E, 0x1F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFC, 0x1F,
|
||||
0xFF, 0xF8, 0x1F, 0xFF, 0xF0, 0x1F, 0xFF, 0x80, 0x1F, 0x00, 0x00, 0x1F,
|
||||
0x00, 0x00, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0xFF,
|
||||
0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0x00,
|
||||
0x3F, 0x80, 0x00, 0x3F, 0xFC, 0x00, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xFE,
|
||||
0x00, 0xFF, 0xFF, 0xE0, 0x3F, 0xC1, 0xFE, 0x0F, 0xE0, 0x0F, 0xE1, 0xF8,
|
||||
0x00, 0xFC, 0x7E, 0x00, 0x0F, 0xCF, 0x80, 0x00, 0xFB, 0xF0, 0x00, 0x1F,
|
||||
0xFC, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE, 0x00,
|
||||
0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFF, 0x80, 0x00, 0xFD,
|
||||
0xF0, 0x00, 0x1F, 0x3F, 0x00, 0x07, 0xE7, 0xF0, 0x01, 0xF8, 0x7F, 0x00,
|
||||
0x7F, 0x07, 0xF8, 0x3F, 0xC0, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFC, 0x00,
|
||||
0x7F, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x00, 0x7F, 0xC0, 0x00, 0x0F, 0x00,
|
||||
0x00, 0x03, 0xFF, 0x87, 0x80, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0x07,
|
||||
0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF0, 0x0F, 0x01, 0xF8, 0x00, 0x7F, 0xFF,
|
||||
0x80, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0xC0,
|
||||
0x7F, 0xFF, 0xFE, 0x00, 0xF8, 0x07, 0xE0, 0x0F, 0x80, 0x3F, 0x00, 0xF8,
|
||||
0x01, 0xF0, 0x0F, 0x80, 0x1F, 0x00, 0xF8, 0x01, 0xF0, 0x0F, 0x80, 0x3F,
|
||||
0x00, 0xF8, 0x0F, 0xE0, 0x0F, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0xC0, 0x0F,
|
||||
0xFF, 0xF0, 0x00, 0xFF, 0xFE, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0xF8, 0x3F,
|
||||
0x80, 0x0F, 0x81, 0xFC, 0x00, 0xF8, 0x0F, 0xE0, 0x0F, 0x80, 0x7E, 0x00,
|
||||
0xF8, 0x03, 0xF0, 0x7F, 0xF0, 0x1F, 0xEF, 0xFF, 0x81, 0xFF, 0xFF, 0xF8,
|
||||
0x0F, 0xFF, 0xFF, 0x80, 0x7F, 0x7F, 0xF0, 0x07, 0xE0, 0x01, 0xFC, 0x70,
|
||||
0x1F, 0xFD, 0xE0, 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0xFC,
|
||||
0x0F, 0xE7, 0xE0, 0x1F, 0x9F, 0x00, 0x3E, 0x7C, 0x00, 0xF9, 0xF0, 0x01,
|
||||
0xC7, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x3F, 0xFF, 0x00, 0x7F, 0xFF, 0x00,
|
||||
0xFF, 0xFF, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x07, 0xE0, 0x00,
|
||||
0x0F, 0xDC, 0x00, 0x1F, 0xF8, 0x00, 0x7F, 0xE0, 0x01, 0xFF, 0xC0, 0x0F,
|
||||
0xFF, 0xC0, 0xFE, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xCF, 0xFF, 0xFE, 0x1C,
|
||||
0xFF, 0xF0, 0x00, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xF0, 0x7F,
|
||||
0xE0, 0xF8, 0x3F, 0xF0, 0x7C, 0x1F, 0xF8, 0x3E, 0x0F, 0xFC, 0x1F, 0x07,
|
||||
0xFE, 0x0F, 0x83, 0xEE, 0x07, 0xC0, 0xE0, 0x03, 0xE0, 0x00, 0x01, 0xF0,
|
||||
0x00, 0x00, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F,
|
||||
0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x01,
|
||||
0xF0, 0x00, 0x0F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, 0x03,
|
||||
0xFF, 0xF8, 0x00, 0xFF, 0xF8, 0x00, 0x7F, 0xE0, 0x7F, 0xEF, 0xFF, 0x0F,
|
||||
0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE1,
|
||||
0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00,
|
||||
0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8,
|
||||
0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0,
|
||||
0x00, 0xF8, 0x1F, 0x00, 0x0F, 0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x00, 0x0F,
|
||||
0x81, 0xF0, 0x00, 0xF8, 0x1F, 0x80, 0x1F, 0x80, 0xF8, 0x01, 0xF0, 0x0F,
|
||||
0xE0, 0x7F, 0x00, 0x7F, 0xFF, 0xE0, 0x03, 0xFF, 0xFE, 0x00, 0x1F, 0xFF,
|
||||
0x80, 0x00, 0xFF, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x7F, 0xE0, 0x1F, 0xFB,
|
||||
0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0x7F,
|
||||
0xE0, 0x1F, 0xF8, 0x7C, 0x00, 0x0F, 0x80, 0xF8, 0x00, 0x7C, 0x03, 0xE0,
|
||||
0x01, 0xF0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7E, 0x00,
|
||||
0xF8, 0x00, 0xF8, 0x07, 0xC0, 0x03, 0xF0, 0x1F, 0x00, 0x07, 0xC0, 0xF8,
|
||||
0x00, 0x1F, 0x03, 0xE0, 0x00, 0x7E, 0x1F, 0x00, 0x00, 0xF8, 0x7C, 0x00,
|
||||
0x03, 0xF3, 0xF0, 0x00, 0x07, 0xCF, 0x80, 0x00, 0x1F, 0xBE, 0x00, 0x00,
|
||||
0x3F, 0xF0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x07,
|
||||
0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xFC,
|
||||
0x00, 0x00, 0x7F, 0xE0, 0x7F, 0xEF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF,
|
||||
0xFF, 0xFF, 0x0F, 0xFF, 0x7F, 0xE0, 0x7F, 0xE3, 0xE0, 0x00, 0x3C, 0x3E,
|
||||
0x0F, 0x83, 0xC3, 0xE1, 0xF8, 0x3C, 0x3E, 0x1F, 0x87, 0xC3, 0xE1, 0xFC,
|
||||
0x7C, 0x3E, 0x3F, 0xC7, 0xC1, 0xE3, 0xFC, 0x7C, 0x1F, 0x3F, 0xE7, 0xC1,
|
||||
0xF7, 0xFE, 0x78, 0x1F, 0x7F, 0xE7, 0x81, 0xF7, 0x9F, 0xF8, 0x1F, 0xF9,
|
||||
0xFF, 0x81, 0xFF, 0x9F, 0xF8, 0x0F, 0xF9, 0xFF, 0x80, 0xFF, 0x0F, 0xF8,
|
||||
0x0F, 0xF0, 0xFF, 0x80, 0xFF, 0x0F, 0xF0, 0x0F, 0xE0, 0x7F, 0x00, 0xFE,
|
||||
0x07, 0xF0, 0x0F, 0xE0, 0x7F, 0x00, 0xFC, 0x03, 0xF0, 0x07, 0xC0, 0x3F,
|
||||
0x00, 0x7F, 0x80, 0xFF, 0x3F, 0xF0, 0x7F, 0xEF, 0xFC, 0x1F, 0xFB, 0xFF,
|
||||
0x07, 0xFE, 0x7F, 0x80, 0xFF, 0x07, 0xE0, 0x3F, 0x00, 0xFC, 0x0F, 0x80,
|
||||
0x1F, 0x87, 0xC0, 0x03, 0xF3, 0xE0, 0x00, 0xFF, 0xF8, 0x00, 0x1F, 0xFC,
|
||||
0x00, 0x03, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07,
|
||||
0xF0, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0xFC, 0xF8, 0x00,
|
||||
0x7E, 0x3F, 0x00, 0x3F, 0x07, 0xE0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x1F,
|
||||
0x07, 0xFC, 0x0F, 0xFB, 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF8,
|
||||
0x7F, 0xF7, 0xFC, 0x0F, 0xF8, 0x7F, 0x80, 0x7F, 0xBF, 0xF0, 0x3F, 0xFF,
|
||||
0xFC, 0x0F, 0xFF, 0xFF, 0x03, 0xFF, 0x7F, 0x80, 0x7F, 0x87, 0xE0, 0x1F,
|
||||
0x80, 0xFC, 0x07, 0xC0, 0x1F, 0x03, 0xE0, 0x03, 0xE1, 0xF8, 0x00, 0xFC,
|
||||
0x7C, 0x00, 0x1F, 0xBE, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x7F, 0xC0, 0x00,
|
||||
0x1F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00,
|
||||
0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F,
|
||||
0x00, 0x00, 0x07, 0xC0, 0x00, 0x1F, 0xFF, 0x00, 0x0F, 0xFF, 0xE0, 0x03,
|
||||
0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x1F, 0xFF, 0x00, 0x7F, 0xFF, 0xF3,
|
||||
0xFF, 0xFF, 0x9F, 0xFF, 0xFC, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x3E, 0x03,
|
||||
0xF1, 0xF0, 0x1F, 0x8F, 0x81, 0xF8, 0x7C, 0x1F, 0x83, 0xE1, 0xF8, 0x0E,
|
||||
0x1F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xC0,
|
||||
0x00, 0xFC, 0x00, 0x0F, 0xE0, 0x70, 0x7E, 0x07, 0xC7, 0xE0, 0x3E, 0x7E,
|
||||
0x01, 0xF7, 0xE0, 0x0F, 0xFF, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xBF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xBE, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8,
|
||||
0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F,
|
||||
0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0, 0xF8, 0x3E, 0x0F, 0x83, 0xE0,
|
||||
0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x60, 0x00, 0x0F, 0x00, 0x00,
|
||||
0xF8, 0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x7E, 0x00,
|
||||
0x03, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0x00, 0x00, 0xF8,
|
||||
0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x03,
|
||||
0xE0, 0x00, 0x1F, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00,
|
||||
0x07, 0xC0, 0x00, 0x7C, 0x00, 0x07, 0xE0, 0x00, 0x3E, 0x00, 0x03, 0xF0,
|
||||
0x00, 0x1F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0xF8, 0x00, 0x07,
|
||||
0xC0, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00,
|
||||
0x1F, 0x00, 0x00, 0xF0, 0x00, 0x0F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
|
||||
0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0,
|
||||
0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F,
|
||||
0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x7F, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x7F, 0xC0, 0x00, 0x40, 0x00, 0x06, 0x00, 0x00, 0xF0,
|
||||
0x00, 0x1F, 0x80, 0x03, 0xFC, 0x00, 0x7F, 0xE0, 0x0F, 0xFF, 0x00, 0xFF,
|
||||
0xF8, 0x1F, 0x9F, 0x83, 0xF0, 0xFC, 0x7E, 0x07, 0xEF, 0xC0, 0x3F, 0xF8,
|
||||
0x01, 0xFF, 0x80, 0x0F, 0x70, 0x00, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF0, 0xE0, 0x78, 0x3E, 0x0F, 0xC3, 0xF0, 0x7C, 0x1E, 0x06, 0x01, 0xFF,
|
||||
0x00, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x0F, 0xFF,
|
||||
0xF8, 0x00, 0x01, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x01, 0xFF,
|
||||
0xF8, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x7F, 0xFF,
|
||||
0xF8, 0x7F, 0x00, 0xF8, 0xFC, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x03,
|
||||
0xF8, 0xFC, 0x0F, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF,
|
||||
0xFF, 0x1F, 0xFE, 0xFE, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xE0,
|
||||
0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xF0, 0x00, 0x00,
|
||||
0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x0F,
|
||||
0xE0, 0x03, 0xEF, 0xFF, 0x00, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFF, 0x81,
|
||||
0xFF, 0xFF, 0xF8, 0x3F, 0xE0, 0x7F, 0x07, 0xF0, 0x03, 0xF0, 0xFC, 0x00,
|
||||
0x3E, 0x1F, 0x80, 0x07, 0xE3, 0xE0, 0x00, 0x7C, 0x7C, 0x00, 0x0F, 0x8F,
|
||||
0x80, 0x01, 0xF1, 0xF0, 0x00, 0x3E, 0x3E, 0x00, 0x07, 0xC7, 0xE0, 0x01,
|
||||
0xF8, 0xFC, 0x00, 0x3E, 0x1F, 0xC0, 0x0F, 0xCF, 0xFE, 0x07, 0xF3, 0xFF,
|
||||
0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xE0, 0xFE, 0x7F, 0xF0,
|
||||
0x00, 0x03, 0xF8, 0x00, 0x00, 0xFF, 0x18, 0x03, 0xFF, 0xFC, 0x0F, 0xFF,
|
||||
0xFC, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0x81, 0xFC, 0x7E, 0x00,
|
||||
0x7C, 0x7C, 0x00, 0x7C, 0xFC, 0x00, 0x3C, 0xF8, 0x00, 0x38, 0xF8, 0x00,
|
||||
0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00,
|
||||
0x00, 0x7C, 0x00, 0x06, 0x7E, 0x00, 0x1F, 0x7F, 0x80, 0x7F, 0x3F, 0xFF,
|
||||
0xFF, 0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x00, 0xFF,
|
||||
0xC0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x00,
|
||||
0x07, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0,
|
||||
0x00, 0x00, 0xF8, 0x00, 0xFE, 0x3E, 0x00, 0xFF, 0xEF, 0x80, 0xFF, 0xFF,
|
||||
0xE0, 0x7F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFE, 0x1F, 0xE0, 0xFF, 0x87, 0xE0,
|
||||
0x0F, 0xE1, 0xF0, 0x01, 0xF8, 0xFC, 0x00, 0x7E, 0x3E, 0x00, 0x0F, 0x8F,
|
||||
0x80, 0x03, 0xE3, 0xE0, 0x00, 0xF8, 0xF8, 0x00, 0x3E, 0x3E, 0x00, 0x0F,
|
||||
0x8F, 0xC0, 0x07, 0xE1, 0xF0, 0x01, 0xF8, 0x7E, 0x00, 0xFE, 0x0F, 0xE0,
|
||||
0x7F, 0xE3, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC0,
|
||||
0xFF, 0xEF, 0xE0, 0x0F, 0xC0, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xFF, 0xC0,
|
||||
0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x7F, 0x81, 0xFC,
|
||||
0x7E, 0x00, 0x7E, 0xFC, 0x00, 0x3E, 0xF8, 0x00, 0x3E, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7F, 0x80, 0x7E,
|
||||
0x3F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x07, 0xFF, 0xF8,
|
||||
0x00, 0xFF, 0x80, 0x00, 0x3F, 0xE0, 0x03, 0xFF, 0xE0, 0x1F, 0xFF, 0xC0,
|
||||
0xFF, 0xFF, 0x07, 0xFF, 0xF8, 0x1F, 0x80, 0x00, 0x7C, 0x00, 0x01, 0xF0,
|
||||
0x00, 0x07, 0xC0, 0x01, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8,
|
||||
0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07,
|
||||
0xC0, 0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0,
|
||||
0x00, 0x1F, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xF0, 0x00, 0x07, 0xC0, 0x01,
|
||||
0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xE1, 0xFF,
|
||||
0xFF, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xFF, 0xBF, 0x83, 0xFF, 0xFF, 0xE3,
|
||||
0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFB, 0xFC, 0x3F, 0xF9, 0xF8, 0x07, 0xF0,
|
||||
0xF8, 0x01, 0xF8, 0xFC, 0x00, 0xFC, 0x7C, 0x00, 0x3E, 0x3E, 0x00, 0x1F,
|
||||
0x1F, 0x00, 0x0F, 0x8F, 0x80, 0x07, 0xC7, 0xC0, 0x03, 0xE3, 0xF0, 0x03,
|
||||
0xF0, 0xF8, 0x01, 0xF8, 0x7E, 0x01, 0xFC, 0x3F, 0xC3, 0xFE, 0x0F, 0xFF,
|
||||
0xFF, 0x03, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xC0, 0x3F, 0xFB, 0xE0, 0x07,
|
||||
0xF1, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0x00,
|
||||
0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFE, 0x00,
|
||||
0x0F, 0xFC, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00,
|
||||
0x03, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0,
|
||||
0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x0F, 0xC0, 0x07, 0xCF, 0xFC, 0x01,
|
||||
0xF7, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFC, 0x07, 0xFC, 0x1F,
|
||||
0x81, 0xFC, 0x03, 0xE0, 0x7E, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07, 0xC0,
|
||||
0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E, 0x07,
|
||||
0xC0, 0x0F, 0x81, 0xF0, 0x03, 0xE0, 0x7C, 0x00, 0xF8, 0x1F, 0x00, 0x3E,
|
||||
0x1F, 0xF0, 0x3F, 0xEF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xE1,
|
||||
0xFF, 0xDF, 0xF0, 0x3F, 0xE0, 0x01, 0xF0, 0x00, 0x0F, 0x80, 0x00, 0x7C,
|
||||
0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x0F, 0xFE, 0x00, 0x7F, 0xF0,
|
||||
0x01, 0xFF, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00,
|
||||
0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80,
|
||||
0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x7F, 0xFF, 0xF7, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x00, 0x00, 0x7C,
|
||||
0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7,
|
||||
0xFF, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07,
|
||||
0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00,
|
||||
0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8,
|
||||
0x00, 0x7C, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x3F, 0xBF, 0xFF, 0xBF, 0xFF,
|
||||
0x9F, 0xFF, 0xCF, 0xFF, 0x83, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x80,
|
||||
0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xF8,
|
||||
0x00, 0x00, 0x7C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x0F,
|
||||
0x87, 0xFC, 0x07, 0xC7, 0xFF, 0x03, 0xE3, 0xFF, 0x81, 0xF1, 0xFF, 0xC0,
|
||||
0xF8, 0x7F, 0xC0, 0x7C, 0xFE, 0x00, 0x3E, 0xFE, 0x00, 0x1F, 0xFE, 0x00,
|
||||
0x0F, 0xFE, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0xE0,
|
||||
0x00, 0xFF, 0xF8, 0x00, 0x7C, 0xFE, 0x00, 0x3E, 0x3F, 0x80, 0x1F, 0x0F,
|
||||
0xE0, 0x3F, 0x81, 0xFF, 0xBF, 0xC1, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF0,
|
||||
0x7F, 0xFB, 0xF8, 0x1F, 0xF8, 0x1F, 0xF8, 0x01, 0xFF, 0xC0, 0x0F, 0xFE,
|
||||
0x00, 0x7F, 0xF0, 0x01, 0xFF, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00,
|
||||
0x1F, 0x00, 0x00, 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0,
|
||||
0x00, 0x0F, 0x80, 0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00,
|
||||
0xF8, 0x00, 0x07, 0xC0, 0x00, 0x3E, 0x00, 0x01, 0xF0, 0x00, 0x0F, 0x80,
|
||||
0x00, 0x7C, 0x00, 0x03, 0xE0, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x03, 0xFF,
|
||||
0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xF8,
|
||||
0x00, 0x3C, 0x1F, 0x00, 0xFD, 0xFC, 0xFF, 0x07, 0xFF, 0xFF, 0xFE, 0x1F,
|
||||
0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0xF0, 0xFF, 0x1F, 0x87, 0xC1, 0xF8,
|
||||
0x7E, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F,
|
||||
0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1,
|
||||
0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C,
|
||||
0x1F, 0x07, 0xC1, 0xF1, 0xFE, 0x1F, 0x87, 0xEF, 0xFC, 0x7F, 0x1F, 0xFF,
|
||||
0xF1, 0xFC, 0x7F, 0xFF, 0xC7, 0xF1, 0xFD, 0xFE, 0x1F, 0x87, 0xE0, 0x00,
|
||||
0x1F, 0x80, 0x1F, 0x9F, 0xF8, 0x1F, 0xDF, 0xFE, 0x0F, 0xFF, 0xFF, 0x87,
|
||||
0xFF, 0xFF, 0xC1, 0xFF, 0x07, 0xF0, 0x7F, 0x01, 0xF8, 0x3F, 0x00, 0x7C,
|
||||
0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x0F, 0x83, 0xE0, 0x07,
|
||||
0xC1, 0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8, 0x3E, 0x00,
|
||||
0x7C, 0x1F, 0x00, 0x3E, 0x3F, 0xE0, 0x7F, 0xBF, 0xF8, 0x7F, 0xFF, 0xFC,
|
||||
0x3F, 0xFF, 0xFE, 0x1F, 0xFB, 0xFE, 0x07, 0xF8, 0x00, 0x7F, 0x00, 0x01,
|
||||
0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xC1,
|
||||
0xFE, 0x0F, 0xF1, 0xFC, 0x01, 0xFC, 0xFC, 0x00, 0x7E, 0xFC, 0x00, 0x1F,
|
||||
0xFC, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00,
|
||||
0xFF, 0xC0, 0x00, 0x7F, 0xF0, 0x00, 0x7E, 0xF8, 0x00, 0x7E, 0x7F, 0x00,
|
||||
0x7F, 0x1F, 0xC0, 0xFF, 0x07, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x80, 0x7F,
|
||||
0xFF, 0x00, 0x1F, 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x07, 0xE0, 0x03,
|
||||
0xF9, 0xFF, 0xC0, 0x7F, 0xBF, 0xFE, 0x07, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF,
|
||||
0xFF, 0xC3, 0xFF, 0x83, 0xFC, 0x0F, 0xE0, 0x0F, 0xE0, 0xFC, 0x00, 0x7E,
|
||||
0x0F, 0xC0, 0x03, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0xF8,
|
||||
0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x3F, 0x0F, 0xC0, 0x03,
|
||||
0xF0, 0xFE, 0x00, 0x7E, 0x0F, 0xF8, 0x1F, 0xE0, 0xFF, 0xFF, 0xFC, 0x0F,
|
||||
0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xF0, 0x0F, 0x9F, 0xFC, 0x00, 0xF8, 0x7F,
|
||||
0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00,
|
||||
0xF8, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0xFF, 0xFC,
|
||||
0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x7E, 0x00,
|
||||
0x00, 0x3F, 0xF9, 0xFC, 0x0F, 0xFF, 0xDF, 0xE1, 0xFF, 0xFF, 0xFE, 0x3F,
|
||||
0xFF, 0xFF, 0xE3, 0xF8, 0x1F, 0xFC, 0x7F, 0x00, 0x7F, 0x07, 0xC0, 0x03,
|
||||
0xF0, 0xFC, 0x00, 0x3F, 0x0F, 0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F,
|
||||
0x80, 0x01, 0xF0, 0xF8, 0x00, 0x1F, 0x0F, 0xC0, 0x01, 0xF0, 0xFC, 0x00,
|
||||
0x3F, 0x07, 0xE0, 0x07, 0xF0, 0x7F, 0x81, 0xFF, 0x03, 0xFF, 0xFF, 0xF0,
|
||||
0x1F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0x9F, 0x00, 0x0F,
|
||||
0xE1, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F,
|
||||
0x00, 0x00, 0x01, 0xF0, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x3F, 0xFF, 0x00,
|
||||
0x03, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x01,
|
||||
0xF0, 0x3F, 0xC7, 0xFC, 0x7F, 0xCF, 0xFE, 0x7F, 0xDF, 0xFF, 0x7F, 0xFF,
|
||||
0xFF, 0x3F, 0xFF, 0x0E, 0x07, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF0,
|
||||
0x00, 0x07, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0,
|
||||
0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0, 0x00, 0x07, 0xC0,
|
||||
0x00, 0x7F, 0xFF, 0xC0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF,
|
||||
0xE0, 0x7F, 0xFF, 0xC0, 0x03, 0xFC, 0x60, 0x7F, 0xFF, 0x87, 0xFF, 0xFC,
|
||||
0x7F, 0xFF, 0xE7, 0xFF, 0xFF, 0x3F, 0x01, 0xF9, 0xF0, 0x07, 0xCF, 0xC0,
|
||||
0x1C, 0x7F, 0xF0, 0x03, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF, 0xC0,
|
||||
0x3F, 0xFF, 0x00, 0x0F, 0xFD, 0xC0, 0x07, 0xFE, 0x00, 0x1F, 0xF8, 0x00,
|
||||
0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xEF, 0xFF, 0xFE, 0x3F,
|
||||
0xFF, 0xC0, 0x07, 0xF8, 0x00, 0x07, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x3E,
|
||||
0x00, 0x00, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x1F, 0xFF,
|
||||
0xF8, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF,
|
||||
0x80, 0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00,
|
||||
0x07, 0xC0, 0x00, 0x0F, 0x80, 0x00, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00,
|
||||
0x7C, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x03, 0x83, 0xF0, 0x1F, 0x87,
|
||||
0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x0F, 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x03,
|
||||
0xFC, 0x00, 0x7F, 0x01, 0xFE, 0x7F, 0x81, 0xFF, 0x3F, 0xC0, 0xFF, 0x9F,
|
||||
0xE0, 0x7F, 0xC7, 0xF0, 0x1F, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x00, 0xF8,
|
||||
0x3E, 0x00, 0x7C, 0x1F, 0x00, 0x3E, 0x0F, 0x80, 0x1F, 0x07, 0xC0, 0x0F,
|
||||
0x83, 0xE0, 0x07, 0xC1, 0xF0, 0x03, 0xE0, 0xF8, 0x01, 0xF0, 0x7C, 0x01,
|
||||
0xF8, 0x3F, 0x01, 0xFC, 0x1F, 0xC1, 0xFF, 0x07, 0xFF, 0xFF, 0xC3, 0xFF,
|
||||
0xFF, 0xE0, 0xFF, 0xF7, 0xF0, 0x3F, 0xF3, 0xF0, 0x03, 0xF0, 0x00, 0x7F,
|
||||
0xE0, 0x7F, 0xEF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F,
|
||||
0xFF, 0x7F, 0xE0, 0x7F, 0xE0, 0xF8, 0x01, 0xF0, 0x0F, 0xC0, 0x1F, 0x00,
|
||||
0x7C, 0x03, 0xE0, 0x07, 0xE0, 0x3E, 0x00, 0x3E, 0x07, 0xC0, 0x03, 0xF0,
|
||||
0x7C, 0x00, 0x1F, 0x0F, 0x80, 0x01, 0xF8, 0xF8, 0x00, 0x0F, 0x9F, 0x00,
|
||||
0x00, 0xFD, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x03,
|
||||
0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x1F, 0x80,
|
||||
0x00, 0x7F, 0x80, 0x1F, 0xEF, 0xFC, 0x03, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF,
|
||||
0xFC, 0x03, 0xFF, 0x7F, 0x80, 0x1F, 0xE1, 0xF0, 0xF8, 0x7C, 0x1F, 0x1F,
|
||||
0x87, 0xC1, 0xF1, 0xF8, 0xFC, 0x1F, 0x1F, 0xCF, 0x80, 0xFB, 0xFC, 0xF8,
|
||||
0x0F, 0xBF, 0xDF, 0x80, 0xFB, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0x00, 0x7F,
|
||||
0xDF, 0xF0, 0x07, 0xF9, 0xFF, 0x00, 0x7F, 0x9F, 0xE0, 0x07, 0xF0, 0xFE,
|
||||
0x00, 0x3F, 0x0F, 0xE0, 0x03, 0xF0, 0x7E, 0x00, 0x3E, 0x07, 0xC0, 0x03,
|
||||
0xE0, 0x3C, 0x00, 0x3F, 0xC0, 0xFF, 0x1F, 0xF8, 0x7F, 0xE7, 0xFE, 0x1F,
|
||||
0xF9, 0xFF, 0x87, 0xFE, 0x3F, 0xC0, 0xFF, 0x03, 0xF8, 0x7F, 0x00, 0x7F,
|
||||
0x3F, 0x80, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00, 0x3F, 0xE0, 0x00,
|
||||
0x07, 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x03, 0xFF, 0xE0, 0x01, 0xFF, 0xFE,
|
||||
0x00, 0xFE, 0x1F, 0xC0, 0x7F, 0x03, 0xF8, 0x7F, 0xC0, 0xFF, 0xBF, 0xF8,
|
||||
0x7F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0x7F, 0xC0, 0xFF, 0x80,
|
||||
0x7F, 0x80, 0x7F, 0xBF, 0xF0, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x03,
|
||||
0xFF, 0x7F, 0x80, 0x7F, 0x8F, 0xC0, 0x07, 0x81, 0xF0, 0x03, 0xE0, 0x7E,
|
||||
0x01, 0xF0, 0x0F, 0x80, 0x7C, 0x03, 0xF0, 0x3E, 0x00, 0x7C, 0x0F, 0x80,
|
||||
0x0F, 0x87, 0xC0, 0x03, 0xE1, 0xF0, 0x00, 0x7C, 0xF8, 0x00, 0x1F, 0xFE,
|
||||
0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x07,
|
||||
0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0x80, 0x00,
|
||||
0x07, 0xC0, 0x00, 0x03, 0xF0, 0x00, 0x00, 0xF8, 0x00, 0x1F, 0xFF, 0x80,
|
||||
0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF,
|
||||
0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xF0, 0x3F, 0xBE, 0x0F, 0xC3, 0x83, 0xF0, 0x00, 0xFC, 0x00,
|
||||
0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F,
|
||||
0xC0, 0x3B, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x78, 0x03, 0xF0, 0x1F, 0xC0, 0xFF, 0x07,
|
||||
0xF8, 0x1F, 0x80, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01,
|
||||
0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x0F, 0x81, 0xFE, 0x0F,
|
||||
0xF0, 0x3F, 0x80, 0xFF, 0x01, 0xFE, 0x00, 0xFC, 0x01, 0xF0, 0x07, 0xC0,
|
||||
0x1F, 0x00, 0x7C, 0x01, 0xF0, 0x07, 0xC0, 0x1F, 0x00, 0x7C, 0x01, 0xF8,
|
||||
0x07, 0xF8, 0x0F, 0xF0, 0x3F, 0xC0, 0x7F, 0x00, 0x78, 0x77, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xE0, 0x78, 0x03, 0xF0, 0x0F,
|
||||
0xE0, 0x3F, 0xC0, 0x7F, 0x00, 0x7E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80,
|
||||
0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0,
|
||||
0x07, 0xC0, 0x1F, 0xE0, 0x3F, 0xC0, 0x7F, 0x03, 0xFC, 0x1F, 0xE0, 0xFC,
|
||||
0x03, 0xE0, 0x0F, 0x80, 0x3E, 0x00, 0xF8, 0x03, 0xE0, 0x0F, 0x80, 0x3E,
|
||||
0x00, 0xF8, 0x07, 0xE0, 0x7F, 0x83, 0xFC, 0x0F, 0xF0, 0x3F, 0x80, 0x78,
|
||||
0x00, 0x07, 0x80, 0x00, 0x7F, 0x80, 0x03, 0xFF, 0x03, 0x9F, 0xFE, 0x1F,
|
||||
0xFF, 0xFC, 0xFF, 0xF3, 0xFF, 0xFF, 0x87, 0xFF, 0x9C, 0x0F, 0xFC, 0x00,
|
||||
0x0F, 0xE0, 0x00, 0x1F, 0x00};
|
||||
|
||||
const GFXglyph FreeMonoBold24pt7bGlyphs[] PROGMEM = {
|
||||
{0, 0, 0, 28, 0, 1}, // 0x20 ' '
|
||||
{0, 7, 31, 28, 10, -29}, // 0x21 '!'
|
||||
{28, 15, 14, 28, 6, -28}, // 0x22 '"'
|
||||
{55, 22, 34, 28, 3, -30}, // 0x23 '#'
|
||||
{149, 19, 38, 28, 5, -31}, // 0x24 '$'
|
||||
{240, 21, 30, 28, 4, -28}, // 0x25 '%'
|
||||
{319, 21, 28, 28, 4, -26}, // 0x26 '&'
|
||||
{393, 6, 14, 28, 11, -28}, // 0x27 '''
|
||||
{404, 10, 37, 28, 12, -29}, // 0x28 '('
|
||||
{451, 10, 37, 28, 6, -29}, // 0x29 ')'
|
||||
{498, 21, 19, 28, 4, -28}, // 0x2A '*'
|
||||
{548, 23, 26, 28, 3, -25}, // 0x2B '+'
|
||||
{623, 9, 14, 28, 7, -6}, // 0x2C ','
|
||||
{639, 24, 5, 28, 2, -15}, // 0x2D '-'
|
||||
{654, 7, 6, 28, 11, -4}, // 0x2E '.'
|
||||
{660, 20, 38, 28, 4, -32}, // 0x2F '/'
|
||||
{755, 21, 31, 28, 4, -29}, // 0x30 '0'
|
||||
{837, 20, 29, 28, 4, -28}, // 0x31 '1'
|
||||
{910, 21, 30, 28, 3, -29}, // 0x32 '2'
|
||||
{989, 21, 31, 28, 4, -29}, // 0x33 '3'
|
||||
{1071, 20, 28, 28, 4, -27}, // 0x34 '4'
|
||||
{1141, 21, 31, 28, 4, -29}, // 0x35 '5'
|
||||
{1223, 20, 31, 28, 5, -29}, // 0x36 '6'
|
||||
{1301, 20, 30, 28, 4, -29}, // 0x37 '7'
|
||||
{1376, 20, 31, 28, 4, -29}, // 0x38 '8'
|
||||
{1454, 20, 31, 28, 5, -29}, // 0x39 '9'
|
||||
{1532, 7, 22, 28, 11, -20}, // 0x3A ':'
|
||||
{1552, 10, 28, 28, 6, -20}, // 0x3B ';'
|
||||
{1587, 24, 21, 28, 2, -23}, // 0x3C '<'
|
||||
{1650, 24, 14, 28, 2, -19}, // 0x3D '='
|
||||
{1692, 23, 22, 28, 3, -23}, // 0x3E '>'
|
||||
{1756, 20, 29, 28, 5, -27}, // 0x3F '?'
|
||||
{1829, 19, 36, 28, 4, -28}, // 0x40 '@'
|
||||
{1915, 29, 27, 28, -1, -26}, // 0x41 'A'
|
||||
{2013, 26, 27, 28, 1, -26}, // 0x42 'B'
|
||||
{2101, 25, 29, 28, 2, -27}, // 0x43 'C'
|
||||
{2192, 25, 27, 28, 1, -26}, // 0x44 'D'
|
||||
{2277, 25, 27, 28, 1, -26}, // 0x45 'E'
|
||||
{2362, 25, 27, 28, 1, -26}, // 0x46 'F'
|
||||
{2447, 25, 29, 28, 2, -27}, // 0x47 'G'
|
||||
{2538, 26, 27, 28, 1, -26}, // 0x48 'H'
|
||||
{2626, 19, 27, 28, 5, -26}, // 0x49 'I'
|
||||
{2691, 25, 28, 28, 3, -26}, // 0x4A 'J'
|
||||
{2779, 27, 27, 28, 1, -26}, // 0x4B 'K'
|
||||
{2871, 25, 27, 28, 2, -26}, // 0x4C 'L'
|
||||
{2956, 31, 27, 28, -1, -26}, // 0x4D 'M'
|
||||
{3061, 28, 27, 28, 0, -26}, // 0x4E 'N'
|
||||
{3156, 27, 29, 28, 1, -27}, // 0x4F 'O'
|
||||
{3254, 24, 27, 28, 1, -26}, // 0x50 'P'
|
||||
{3335, 27, 35, 28, 1, -27}, // 0x51 'Q'
|
||||
{3454, 28, 27, 28, 0, -26}, // 0x52 'R'
|
||||
{3549, 22, 29, 28, 3, -27}, // 0x53 'S'
|
||||
{3629, 25, 27, 28, 2, -26}, // 0x54 'T'
|
||||
{3714, 28, 28, 28, 0, -26}, // 0x55 'U'
|
||||
{3812, 30, 27, 28, -1, -26}, // 0x56 'V'
|
||||
{3914, 28, 27, 28, 0, -26}, // 0x57 'W'
|
||||
{4009, 26, 27, 28, 1, -26}, // 0x58 'X'
|
||||
{4097, 26, 27, 28, 1, -26}, // 0x59 'Y'
|
||||
{4185, 21, 27, 28, 4, -26}, // 0x5A 'Z'
|
||||
{4256, 10, 37, 28, 12, -29}, // 0x5B '['
|
||||
{4303, 20, 38, 28, 4, -32}, // 0x5C '\'
|
||||
{4398, 10, 37, 28, 6, -29}, // 0x5D ']'
|
||||
{4445, 20, 15, 28, 4, -29}, // 0x5E '^'
|
||||
{4483, 28, 5, 28, 0, 5}, // 0x5F '_'
|
||||
{4501, 9, 8, 28, 8, -30}, // 0x60 '`'
|
||||
{4510, 24, 23, 28, 2, -21}, // 0x61 'a'
|
||||
{4579, 27, 31, 28, 0, -29}, // 0x62 'b'
|
||||
{4684, 24, 23, 28, 3, -21}, // 0x63 'c'
|
||||
{4753, 26, 31, 28, 2, -29}, // 0x64 'd'
|
||||
{4854, 24, 23, 28, 2, -21}, // 0x65 'e'
|
||||
{4923, 22, 30, 28, 4, -29}, // 0x66 'f'
|
||||
{5006, 25, 31, 28, 2, -21}, // 0x67 'g'
|
||||
{5103, 26, 30, 28, 1, -29}, // 0x68 'h'
|
||||
{5201, 21, 29, 28, 4, -28}, // 0x69 'i'
|
||||
{5278, 17, 38, 28, 5, -28}, // 0x6A 'j'
|
||||
{5359, 25, 30, 28, 2, -29}, // 0x6B 'k'
|
||||
{5453, 21, 30, 28, 4, -29}, // 0x6C 'l'
|
||||
{5532, 30, 22, 28, -1, -21}, // 0x6D 'm'
|
||||
{5615, 25, 22, 28, 1, -21}, // 0x6E 'n'
|
||||
{5684, 25, 23, 28, 2, -21}, // 0x6F 'o'
|
||||
{5756, 28, 31, 28, 0, -21}, // 0x70 'p'
|
||||
{5865, 28, 31, 28, 1, -21}, // 0x71 'q'
|
||||
{5974, 24, 22, 28, 3, -21}, // 0x72 'r'
|
||||
{6040, 21, 23, 28, 4, -21}, // 0x73 's'
|
||||
{6101, 23, 28, 28, 1, -26}, // 0x74 't'
|
||||
{6182, 25, 22, 28, 1, -20}, // 0x75 'u'
|
||||
{6251, 28, 21, 28, 0, -20}, // 0x76 'v'
|
||||
{6325, 28, 21, 28, 0, -20}, // 0x77 'w'
|
||||
{6399, 26, 21, 28, 1, -20}, // 0x78 'x'
|
||||
{6468, 26, 30, 28, 1, -20}, // 0x79 'y'
|
||||
{6566, 19, 21, 28, 5, -20}, // 0x7A 'z'
|
||||
{6616, 14, 37, 28, 7, -29}, // 0x7B '{'
|
||||
{6681, 5, 36, 28, 12, -28}, // 0x7C '|'
|
||||
{6704, 14, 37, 28, 8, -29}, // 0x7D '}'
|
||||
{6769, 22, 10, 28, 3, -17}}; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeMonoBold24pt7b PROGMEM = {
|
||||
(uint8_t *)FreeMonoBold24pt7bBitmaps, (GFXglyph *)FreeMonoBold24pt7bGlyphs,
|
||||
0x20, 0x7E, 47};
|
||||
|
||||
// Approx. 7469 bytes
|
@@ -1,191 +0,0 @@
|
||||
#pragma once
|
||||
#include <Adafruit_GFX.h>
|
||||
|
||||
const uint8_t FreeMonoBold9pt7bBitmaps[] PROGMEM = {
|
||||
0xFF, 0xFF, 0xD2, 0x1F, 0x80, 0xEC, 0x89, 0x12, 0x24, 0x40, 0x36, 0x36,
|
||||
0x36, 0x7F, 0x7F, 0x36, 0xFF, 0xFF, 0x3C, 0x3C, 0x3C, 0x00, 0x18, 0xFF,
|
||||
0xFE, 0x3C, 0x1F, 0x1F, 0x83, 0x46, 0x8D, 0xF0, 0xC1, 0x83, 0x00, 0x61,
|
||||
0x22, 0x44, 0x86, 0x67, 0x37, 0x11, 0x22, 0x4C, 0x70, 0x3C, 0x7E, 0x60,
|
||||
0x60, 0x30, 0x7B, 0xDF, 0xCE, 0xFF, 0x7F, 0xC9, 0x24, 0x37, 0x66, 0xCC,
|
||||
0xCC, 0xCC, 0x66, 0x31, 0xCE, 0x66, 0x33, 0x33, 0x33, 0x66, 0xC8, 0x18,
|
||||
0x18, 0xFF, 0xFF, 0x3C, 0x3C, 0x66, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18,
|
||||
0x18, 0x18, 0x18, 0x6B, 0x48, 0xFF, 0xFF, 0xC0, 0xF0, 0x02, 0x0C, 0x18,
|
||||
0x60, 0xC3, 0x06, 0x0C, 0x30, 0x61, 0x83, 0x0C, 0x18, 0x20, 0x00, 0x38,
|
||||
0xFB, 0xBE, 0x3C, 0x78, 0xF1, 0xE3, 0xC7, 0xDD, 0xF1, 0xC0, 0x38, 0xF3,
|
||||
0x60, 0xC1, 0x83, 0x06, 0x0C, 0x18, 0xFD, 0xF8, 0x3C, 0xFE, 0xC7, 0x03,
|
||||
0x03, 0x06, 0x0C, 0x18, 0x70, 0xE3, 0xFF, 0xFF, 0x7C, 0xFE, 0x03, 0x03,
|
||||
0x03, 0x1E, 0x1E, 0x07, 0x03, 0x03, 0xFE, 0x7C, 0x1C, 0x38, 0xB1, 0x64,
|
||||
0xD9, 0xBF, 0xFF, 0x3E, 0x7C, 0x7E, 0x3F, 0x18, 0x0F, 0xC7, 0xF3, 0x1C,
|
||||
0x06, 0x03, 0xC3, 0xFF, 0x9F, 0x80, 0x0F, 0x3F, 0x30, 0x60, 0x60, 0xDC,
|
||||
0xFE, 0xE3, 0xC3, 0x63, 0x7E, 0x3C, 0xFF, 0xFF, 0xC3, 0x03, 0x06, 0x06,
|
||||
0x06, 0x0C, 0x0C, 0x0C, 0x18, 0x38, 0xFB, 0x1E, 0x3C, 0x6F, 0x9F, 0x63,
|
||||
0xC7, 0x8F, 0xF1, 0xC0, 0x3C, 0x7E, 0xE6, 0xC3, 0xC3, 0xE7, 0x7F, 0x3B,
|
||||
0x06, 0x0E, 0xFC, 0xF0, 0xF0, 0x0F, 0x6C, 0x00, 0x1A, 0xD2, 0x00, 0x01,
|
||||
0x83, 0x87, 0x0E, 0x0F, 0x80, 0xE0, 0x1C, 0x03, 0xFF, 0xFF, 0xC0, 0x00,
|
||||
0x0F, 0xFF, 0xFC, 0xC0, 0x78, 0x0F, 0x01, 0xE0, 0xF9, 0xE3, 0xC1, 0x80,
|
||||
0x7C, 0xFE, 0xC7, 0x03, 0x0E, 0x1C, 0x00, 0x00, 0x00, 0x30, 0x30, 0x1E,
|
||||
0x1F, 0x1C, 0xDC, 0x6C, 0x76, 0x7B, 0x6D, 0xB6, 0xDB, 0x6F, 0xF3, 0xFC,
|
||||
0x06, 0x33, 0xF8, 0x78, 0x3C, 0x07, 0xC0, 0x38, 0x05, 0x81, 0xB0, 0x36,
|
||||
0x0F, 0xE1, 0xFC, 0x71, 0xDF, 0x7F, 0xEF, 0x80, 0xFF, 0x3F, 0xE6, 0x19,
|
||||
0x86, 0x7F, 0x1F, 0xE6, 0x1D, 0x83, 0x60, 0xFF, 0xFF, 0xF0, 0x1F, 0xBF,
|
||||
0xD8, 0xF8, 0x3C, 0x06, 0x03, 0x01, 0x80, 0x61, 0xBF, 0xC7, 0xC0, 0xFE,
|
||||
0x3F, 0xE6, 0x19, 0x83, 0x60, 0xD8, 0x36, 0x0D, 0x83, 0x61, 0xBF, 0xEF,
|
||||
0xE0, 0xFF, 0xFF, 0xD8, 0x6D, 0xB7, 0xC3, 0xE1, 0xB0, 0xC3, 0x61, 0xFF,
|
||||
0xFF, 0xE0, 0xFF, 0xFF, 0xD8, 0x6D, 0xB7, 0xC3, 0xE1, 0xB0, 0xC0, 0x60,
|
||||
0x7C, 0x3E, 0x00, 0x1F, 0x9F, 0xE6, 0x1B, 0x06, 0xC0, 0x30, 0x0C, 0x7F,
|
||||
0x1F, 0xE1, 0x9F, 0xE3, 0xF0, 0xF7, 0xFB, 0xD8, 0xCC, 0x66, 0x33, 0xF9,
|
||||
0xFC, 0xC6, 0x63, 0x7B, 0xFD, 0xE0, 0xFF, 0xF3, 0x0C, 0x30, 0xC3, 0x0C,
|
||||
0x33, 0xFF, 0xC0, 0x1F, 0xC7, 0xF0, 0x30, 0x0C, 0x03, 0x00, 0xCC, 0x33,
|
||||
0x0C, 0xC7, 0x3F, 0x87, 0xC0, 0xF7, 0xBD, 0xE6, 0x61, 0xB0, 0x78, 0x1F,
|
||||
0x06, 0xE1, 0x98, 0x63, 0x3C, 0xFF, 0x3C, 0xFC, 0x7E, 0x0C, 0x06, 0x03,
|
||||
0x01, 0x80, 0xC6, 0x63, 0x31, 0xFF, 0xFF, 0xE0, 0xE0, 0xFE, 0x3D, 0xC7,
|
||||
0x3D, 0xE7, 0xBC, 0xD7, 0x9B, 0xB3, 0x76, 0x60, 0xDE, 0x3F, 0xC7, 0x80,
|
||||
0xE1, 0xFE, 0x3D, 0xE3, 0x3C, 0x66, 0xCC, 0xDD, 0x99, 0xB3, 0x1E, 0x63,
|
||||
0xDE, 0x3B, 0xC3, 0x00, 0x1F, 0x07, 0xF1, 0xC7, 0x70, 0x7C, 0x07, 0x80,
|
||||
0xF0, 0x1F, 0x07, 0x71, 0xC7, 0xF0, 0x7C, 0x00, 0xFE, 0x7F, 0x98, 0x6C,
|
||||
0x36, 0x1B, 0xF9, 0xF8, 0xC0, 0x60, 0x7C, 0x3E, 0x00, 0x1F, 0x07, 0xF1,
|
||||
0xC7, 0x70, 0x7C, 0x07, 0x80, 0xF0, 0x1F, 0x07, 0x71, 0xC7, 0xF0, 0x7C,
|
||||
0x0C, 0x33, 0xFE, 0x7F, 0x80, 0xFC, 0x7F, 0x18, 0xCC, 0x66, 0x73, 0xF1,
|
||||
0xF0, 0xCC, 0x63, 0x7D, 0xFE, 0x60, 0x3F, 0xBF, 0xF0, 0x78, 0x0F, 0x03,
|
||||
0xF8, 0x3F, 0x83, 0xC3, 0xFF, 0xBF, 0x80, 0xFF, 0xFF, 0xF6, 0x7B, 0x3D,
|
||||
0x98, 0xC0, 0x60, 0x30, 0x18, 0x3F, 0x1F, 0x80, 0xF1, 0xFE, 0x3D, 0x83,
|
||||
0x30, 0x66, 0x0C, 0xC1, 0x98, 0x33, 0x06, 0x60, 0xC7, 0xF0, 0x7C, 0x00,
|
||||
0xFB, 0xFF, 0x7D, 0xC3, 0x18, 0xC3, 0x18, 0x36, 0x06, 0xC0, 0x50, 0x0E,
|
||||
0x01, 0xC0, 0x10, 0x00, 0xFB, 0xFE, 0xF6, 0x0D, 0x93, 0x6E, 0xDB, 0xB7,
|
||||
0xAD, 0xEE, 0x7B, 0x8E, 0xE3, 0x18, 0xF3, 0xFC, 0xF7, 0x38, 0xFC, 0x1E,
|
||||
0x03, 0x01, 0xE0, 0xCC, 0x73, 0xBC, 0xFF, 0x3C, 0xF3, 0xFC, 0xF7, 0x38,
|
||||
0xCC, 0x1E, 0x07, 0x80, 0xC0, 0x30, 0x0C, 0x0F, 0xC3, 0xF0, 0xFE, 0xFE,
|
||||
0xC6, 0xCC, 0x18, 0x18, 0x30, 0x63, 0xC3, 0xFF, 0xFF, 0xFF, 0xCC, 0xCC,
|
||||
0xCC, 0xCC, 0xCC, 0xFF, 0x01, 0x03, 0x06, 0x06, 0x0C, 0x0C, 0x18, 0x18,
|
||||
0x30, 0x30, 0x60, 0x60, 0xC0, 0x80, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33,
|
||||
0xFF, 0x10, 0x71, 0xE3, 0x6C, 0x70, 0x40, 0xFF, 0xFF, 0xFC, 0x88, 0x80,
|
||||
0x7E, 0x3F, 0x8F, 0xCF, 0xEE, 0x36, 0x1B, 0xFE, 0xFF, 0xE0, 0x38, 0x06,
|
||||
0x01, 0xBC, 0x7F, 0x9C, 0x76, 0x0D, 0x83, 0x71, 0xFF, 0xEE, 0xF0, 0x3F,
|
||||
0xBF, 0xF8, 0x78, 0x3C, 0x07, 0x05, 0xFE, 0x7E, 0x03, 0x80, 0xE0, 0x18,
|
||||
0xF6, 0x7F, 0xB8, 0xEC, 0x1B, 0x06, 0xE3, 0x9F, 0xF3, 0xFC, 0x3E, 0x3F,
|
||||
0xB0, 0xFF, 0xFF, 0xFE, 0x01, 0xFE, 0x7E, 0x1F, 0x3F, 0x30, 0x7E, 0x7E,
|
||||
0x30, 0x30, 0x30, 0x30, 0xFE, 0xFE, 0x3F, 0xBF, 0xF9, 0xD8, 0x6C, 0x37,
|
||||
0x39, 0xFC, 0x76, 0x03, 0x01, 0x8F, 0xC7, 0xC0, 0xE0, 0x70, 0x18, 0x0D,
|
||||
0xC7, 0xF3, 0x99, 0x8C, 0xC6, 0x63, 0x7B, 0xFD, 0xE0, 0x18, 0x18, 0x00,
|
||||
0x78, 0x78, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x60, 0x3F, 0xFC,
|
||||
0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0F, 0xFF, 0x80, 0xE0, 0x70, 0x18, 0x0D,
|
||||
0xE6, 0xF3, 0xE1, 0xE0, 0xF8, 0x6E, 0x73, 0xF9, 0xE0, 0x78, 0x78, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0xFF, 0xFD, 0x9F, 0xF9, 0x9B,
|
||||
0x33, 0x66, 0x6C, 0xCD, 0xBD, 0xFF, 0xBF, 0xEE, 0x7F, 0x98, 0xCC, 0x66,
|
||||
0x33, 0x1B, 0xDF, 0xEF, 0x3E, 0x3F, 0xB8, 0xF8, 0x3C, 0x1F, 0x1D, 0xFC,
|
||||
0x7C, 0xEF, 0x1F, 0xF9, 0xC3, 0xB0, 0x36, 0x06, 0xE1, 0xDF, 0xF3, 0x78,
|
||||
0x60, 0x0C, 0x03, 0xE0, 0x7C, 0x00, 0x1E, 0xEF, 0xFF, 0x87, 0x60, 0x6C,
|
||||
0x0D, 0xC3, 0x9F, 0xF0, 0xF6, 0x00, 0xC0, 0x18, 0x0F, 0x81, 0xF0, 0x77,
|
||||
0xBF, 0xCF, 0x06, 0x03, 0x01, 0x83, 0xF9, 0xFC, 0x3F, 0xFF, 0xC3, 0xFC,
|
||||
0x3F, 0xC3, 0xFF, 0xFC, 0x60, 0x60, 0x60, 0xFE, 0xFE, 0x60, 0x60, 0x60,
|
||||
0x61, 0x7F, 0x3E, 0xE7, 0x73, 0x98, 0xCC, 0x66, 0x33, 0x19, 0xFE, 0x7F,
|
||||
0xFB, 0xFF, 0x7C, 0xC6, 0x18, 0xC1, 0xB0, 0x36, 0x03, 0x80, 0x70, 0xF1,
|
||||
0xFE, 0x3D, 0xBB, 0x37, 0x63, 0xF8, 0x77, 0x0E, 0xE1, 0x8C, 0xF7, 0xFB,
|
||||
0xCD, 0x83, 0x83, 0xC3, 0xBB, 0xDF, 0xEF, 0xF3, 0xFC, 0xF6, 0x18, 0xCC,
|
||||
0x33, 0x07, 0x81, 0xE0, 0x30, 0x0C, 0x06, 0x0F, 0xC3, 0xF0, 0xFF, 0xFF,
|
||||
0x30, 0xC3, 0x0C, 0x7F, 0xFF, 0x37, 0x66, 0x66, 0xCC, 0x66, 0x66, 0x73,
|
||||
0xFF, 0xFF, 0xFF, 0xF0, 0xCE, 0x66, 0x66, 0x33, 0x66, 0x66, 0xEC, 0x70,
|
||||
0x7C, 0xF3, 0xC0, 0xC0};
|
||||
|
||||
const GFXglyph FreeMonoBold9pt7bGlyphs[] PROGMEM = {
|
||||
{0, 0, 0, 11, 0, 1}, // 0x20 ' '
|
||||
{0, 3, 11, 11, 4, -10}, // 0x21 '!'
|
||||
{5, 7, 5, 11, 2, -10}, // 0x22 '"'
|
||||
{10, 8, 12, 11, 1, -10}, // 0x23 '#'
|
||||
{22, 7, 14, 11, 2, -11}, // 0x24 '$'
|
||||
{35, 7, 11, 11, 2, -10}, // 0x25 '%'
|
||||
{45, 8, 10, 11, 1, -9}, // 0x26 '&'
|
||||
{55, 3, 5, 11, 4, -10}, // 0x27 '''
|
||||
{57, 4, 14, 11, 5, -10}, // 0x28 '('
|
||||
{64, 4, 14, 11, 2, -10}, // 0x29 ')'
|
||||
{71, 8, 7, 11, 2, -10}, // 0x2A '*'
|
||||
{78, 8, 9, 11, 2, -8}, // 0x2B '+'
|
||||
{87, 3, 5, 11, 3, -1}, // 0x2C ','
|
||||
{89, 9, 2, 11, 1, -5}, // 0x2D '-'
|
||||
{92, 2, 2, 11, 4, -1}, // 0x2E '.'
|
||||
{93, 7, 15, 11, 2, -12}, // 0x2F '/'
|
||||
{107, 7, 12, 11, 2, -11}, // 0x30 '0'
|
||||
{118, 7, 11, 11, 2, -10}, // 0x31 '1'
|
||||
{128, 8, 12, 11, 1, -11}, // 0x32 '2'
|
||||
{140, 8, 12, 11, 2, -11}, // 0x33 '3'
|
||||
{152, 7, 10, 11, 2, -9}, // 0x34 '4'
|
||||
{161, 9, 11, 11, 1, -10}, // 0x35 '5'
|
||||
{174, 8, 12, 11, 2, -11}, // 0x36 '6'
|
||||
{186, 8, 11, 11, 1, -10}, // 0x37 '7'
|
||||
{197, 7, 12, 11, 2, -11}, // 0x38 '8'
|
||||
{208, 8, 12, 11, 2, -11}, // 0x39 '9'
|
||||
{220, 2, 8, 11, 4, -7}, // 0x3A ':'
|
||||
{222, 3, 11, 11, 3, -7}, // 0x3B ';'
|
||||
{227, 9, 8, 11, 1, -8}, // 0x3C '<'
|
||||
{236, 9, 6, 11, 1, -7}, // 0x3D '='
|
||||
{243, 9, 8, 11, 1, -8}, // 0x3E '>'
|
||||
{252, 8, 11, 11, 2, -10}, // 0x3F '?'
|
||||
{263, 9, 15, 11, 1, -11}, // 0x40 '@'
|
||||
{280, 11, 11, 11, 0, -10}, // 0x41 'A'
|
||||
{296, 10, 11, 11, 1, -10}, // 0x42 'B'
|
||||
{310, 9, 11, 11, 1, -10}, // 0x43 'C'
|
||||
{323, 10, 11, 11, 0, -10}, // 0x44 'D'
|
||||
{337, 9, 11, 11, 1, -10}, // 0x45 'E'
|
||||
{350, 9, 11, 11, 1, -10}, // 0x46 'F'
|
||||
{363, 10, 11, 11, 1, -10}, // 0x47 'G'
|
||||
{377, 9, 11, 11, 1, -10}, // 0x48 'H'
|
||||
{390, 6, 11, 11, 3, -10}, // 0x49 'I'
|
||||
{399, 10, 11, 11, 1, -10}, // 0x4A 'J'
|
||||
{413, 10, 11, 11, 1, -10}, // 0x4B 'K'
|
||||
{427, 9, 11, 11, 1, -10}, // 0x4C 'L'
|
||||
{440, 11, 11, 11, 0, -10}, // 0x4D 'M'
|
||||
{456, 11, 11, 11, 0, -10}, // 0x4E 'N'
|
||||
{472, 11, 11, 11, 0, -10}, // 0x4F 'O'
|
||||
{488, 9, 11, 11, 1, -10}, // 0x50 'P'
|
||||
{501, 11, 14, 11, 0, -10}, // 0x51 'Q'
|
||||
{521, 9, 11, 11, 1, -10}, // 0x52 'R'
|
||||
{534, 9, 11, 11, 1, -10}, // 0x53 'S'
|
||||
{547, 9, 11, 11, 1, -10}, // 0x54 'T'
|
||||
{560, 11, 11, 11, 0, -10}, // 0x55 'U'
|
||||
{576, 11, 11, 11, 0, -10}, // 0x56 'V'
|
||||
{592, 10, 11, 11, 0, -10}, // 0x57 'W'
|
||||
{606, 10, 11, 11, 0, -10}, // 0x58 'X'
|
||||
{620, 10, 11, 11, 0, -10}, // 0x59 'Y'
|
||||
{634, 8, 11, 11, 2, -10}, // 0x5A 'Z'
|
||||
{645, 4, 14, 11, 5, -10}, // 0x5B '['
|
||||
{652, 7, 15, 11, 2, -12}, // 0x5C '\'
|
||||
{666, 4, 14, 11, 2, -10}, // 0x5D ']'
|
||||
{673, 7, 6, 11, 2, -11}, // 0x5E '^'
|
||||
{679, 11, 2, 11, 0, 3}, // 0x5F '_'
|
||||
{682, 3, 3, 11, 3, -11}, // 0x60 '`'
|
||||
{684, 9, 8, 11, 1, -7}, // 0x61 'a'
|
||||
{693, 10, 11, 11, 0, -10}, // 0x62 'b'
|
||||
{707, 9, 8, 11, 1, -7}, // 0x63 'c'
|
||||
{716, 10, 11, 11, 1, -10}, // 0x64 'd'
|
||||
{730, 9, 8, 11, 1, -7}, // 0x65 'e'
|
||||
{739, 8, 11, 11, 2, -10}, // 0x66 'f'
|
||||
{750, 9, 12, 11, 1, -7}, // 0x67 'g'
|
||||
{764, 9, 11, 11, 1, -10}, // 0x68 'h'
|
||||
{777, 8, 11, 11, 2, -10}, // 0x69 'i'
|
||||
{788, 6, 15, 11, 2, -10}, // 0x6A 'j'
|
||||
{800, 9, 11, 11, 1, -10}, // 0x6B 'k'
|
||||
{813, 8, 11, 11, 2, -10}, // 0x6C 'l'
|
||||
{824, 11, 8, 11, 0, -7}, // 0x6D 'm'
|
||||
{835, 9, 8, 11, 1, -7}, // 0x6E 'n'
|
||||
{844, 9, 8, 11, 1, -7}, // 0x6F 'o'
|
||||
{853, 11, 12, 11, 0, -7}, // 0x70 'p'
|
||||
{870, 11, 12, 11, 0, -7}, // 0x71 'q'
|
||||
{887, 9, 8, 11, 1, -7}, // 0x72 'r'
|
||||
{896, 8, 8, 11, 2, -7}, // 0x73 's'
|
||||
{904, 8, 11, 11, 1, -10}, // 0x74 't'
|
||||
{915, 9, 8, 11, 1, -7}, // 0x75 'u'
|
||||
{924, 11, 8, 11, 0, -7}, // 0x76 'v'
|
||||
{935, 11, 8, 11, 0, -7}, // 0x77 'w'
|
||||
{946, 9, 8, 11, 1, -7}, // 0x78 'x'
|
||||
{955, 10, 12, 11, 0, -7}, // 0x79 'y'
|
||||
{970, 7, 8, 11, 2, -7}, // 0x7A 'z'
|
||||
{977, 4, 14, 11, 3, -10}, // 0x7B '{'
|
||||
{984, 2, 14, 11, 5, -10}, // 0x7C '|'
|
||||
{988, 4, 14, 11, 4, -10}, // 0x7D '}'
|
||||
{995, 9, 4, 11, 1, -6}}; // 0x7E '~'
|
||||
|
||||
const GFXfont FreeMonoBold9pt7b PROGMEM = {(uint8_t *)FreeMonoBold9pt7bBitmaps,
|
||||
(GFXglyph *)FreeMonoBold9pt7bGlyphs,
|
||||
0x20, 0x7E, 18};
|
||||
|
||||
// Approx. 1672 bytes
|
@@ -1,123 +0,0 @@
|
||||
#pragma once
|
||||
#include <Adafruit_GFX.h>
|
||||
|
||||
// Picopixel by Sebastian Weber. A tiny font
|
||||
// with all characters within a 6 pixel height.
|
||||
|
||||
const uint8_t PicopixelBitmaps[] PROGMEM = {
|
||||
0xE8, 0xB4, 0x57, 0xD5, 0xF5, 0x00, 0x4E, 0x3E, 0x80, 0xA5, 0x4A, 0x4A,
|
||||
0x5A, 0x50, 0xC0, 0x6A, 0x40, 0x95, 0x80, 0xAA, 0x80, 0x5D, 0x00, 0x60,
|
||||
0xE0, 0x80, 0x25, 0x48, 0x56, 0xD4, 0x75, 0x40, 0xC5, 0x4E, 0xC5, 0x1C,
|
||||
0x97, 0x92, 0xF3, 0x1C, 0x53, 0x54, 0xE5, 0x48, 0x55, 0x54, 0x55, 0x94,
|
||||
0xA0, 0x46, 0x64, 0xE3, 0x80, 0x98, 0xC5, 0x04, 0x56, 0xC6, 0x57, 0xDA,
|
||||
0xD7, 0x5C, 0x72, 0x46, 0xD6, 0xDC, 0xF3, 0xCE, 0xF3, 0x48, 0x72, 0xD4,
|
||||
0xB7, 0xDA, 0xF8, 0x24, 0xD4, 0xBB, 0x5A, 0x92, 0x4E, 0x8E, 0xEB, 0x58,
|
||||
0x80, 0x9D, 0xB9, 0x90, 0x56, 0xD4, 0xD7, 0x48, 0x56, 0xD4, 0x40, 0xD7,
|
||||
0x5A, 0x71, 0x1C, 0xE9, 0x24, 0xB6, 0xD4, 0xB6, 0xA4, 0x8C, 0x6B, 0x55,
|
||||
0x00, 0xB5, 0x5A, 0xB5, 0x24, 0xE5, 0x4E, 0xEA, 0xC0, 0x91, 0x12, 0xD5,
|
||||
0xC0, 0x54, 0xF0, 0x90, 0xC7, 0xF0, 0x93, 0x5E, 0x71, 0x80, 0x25, 0xDE,
|
||||
0x5E, 0x30, 0x6E, 0x80, 0x77, 0x9C, 0x93, 0x5A, 0xB8, 0x45, 0x60, 0x92,
|
||||
0xEA, 0xAA, 0x40, 0xD5, 0x6A, 0xD6, 0x80, 0x55, 0x00, 0xD7, 0x40, 0x75,
|
||||
0x90, 0xE8, 0x71, 0xE0, 0xBA, 0x40, 0xB5, 0x80, 0xB5, 0x00, 0x8D, 0x54,
|
||||
0xAA, 0x80, 0xAC, 0xE0, 0xE5, 0x70, 0x6A, 0x26, 0xFC, 0xC8, 0xAC, 0x5A};
|
||||
|
||||
const GFXglyph PicopixelGlyphs[] PROGMEM = {{0, 0, 0, 2, 0, 1}, // 0x20 ' '
|
||||
{0, 1, 5, 2, 0, -4}, // 0x21 '!'
|
||||
{1, 3, 2, 4, 0, -4}, // 0x22 '"'
|
||||
{2, 5, 5, 6, 0, -4}, // 0x23 '#'
|
||||
{6, 3, 6, 4, 0, -4}, // 0x24 '$'
|
||||
{9, 3, 5, 4, 0, -4}, // 0x25 '%'
|
||||
{11, 4, 5, 5, 0, -4}, // 0x26 '&'
|
||||
{14, 1, 2, 2, 0, -4}, // 0x27 '''
|
||||
{15, 2, 5, 3, 0, -4}, // 0x28 '('
|
||||
{17, 2, 5, 3, 0, -4}, // 0x29 ')'
|
||||
{19, 3, 3, 4, 0, -3}, // 0x2A '*'
|
||||
{21, 3, 3, 4, 0, -3}, // 0x2B '+'
|
||||
{23, 2, 2, 3, 0, 0}, // 0x2C ','
|
||||
{24, 3, 1, 4, 0, -2}, // 0x2D '-'
|
||||
{25, 1, 1, 2, 0, 0}, // 0x2E '.'
|
||||
{26, 3, 5, 4, 0, -4}, // 0x2F '/'
|
||||
{28, 3, 5, 4, 0, -4}, // 0x30 '0'
|
||||
{30, 2, 5, 3, 0, -4}, // 0x31 '1'
|
||||
{32, 3, 5, 4, 0, -4}, // 0x32 '2'
|
||||
{34, 3, 5, 4, 0, -4}, // 0x33 '3'
|
||||
{36, 3, 5, 4, 0, -4}, // 0x34 '4'
|
||||
{38, 3, 5, 4, 0, -4}, // 0x35 '5'
|
||||
{40, 3, 5, 4, 0, -4}, // 0x36 '6'
|
||||
{42, 3, 5, 4, 0, -4}, // 0x37 '7'
|
||||
{44, 3, 5, 4, 0, -4}, // 0x38 '8'
|
||||
{46, 3, 5, 4, 0, -4}, // 0x39 '9'
|
||||
{48, 1, 3, 2, 0, -3}, // 0x3A ':'
|
||||
{49, 2, 4, 3, 0, -3}, // 0x3B ';'
|
||||
{50, 2, 3, 3, 0, -3}, // 0x3C '<'
|
||||
{51, 3, 3, 4, 0, -3}, // 0x3D '='
|
||||
{53, 2, 3, 3, 0, -3}, // 0x3E '>'
|
||||
{54, 3, 5, 4, 0, -4}, // 0x3F '?'
|
||||
{56, 3, 5, 4, 0, -4}, // 0x40 '@'
|
||||
{58, 3, 5, 4, 0, -4}, // 0x41 'A'
|
||||
{60, 3, 5, 4, 0, -4}, // 0x42 'B'
|
||||
{62, 3, 5, 4, 0, -4}, // 0x43 'C'
|
||||
{64, 3, 5, 4, 0, -4}, // 0x44 'D'
|
||||
{66, 3, 5, 4, 0, -4}, // 0x45 'E'
|
||||
{68, 3, 5, 4, 0, -4}, // 0x46 'F'
|
||||
{70, 3, 5, 4, 0, -4}, // 0x47 'G'
|
||||
{72, 3, 5, 4, 0, -4}, // 0x48 'H'
|
||||
{74, 1, 5, 2, 0, -4}, // 0x49 'I'
|
||||
{75, 3, 5, 4, 0, -4}, // 0x4A 'J'
|
||||
{77, 3, 5, 4, 0, -4}, // 0x4B 'K'
|
||||
{79, 3, 5, 4, 0, -4}, // 0x4C 'L'
|
||||
{81, 5, 5, 6, 0, -4}, // 0x4D 'M'
|
||||
{85, 4, 5, 5, 0, -4}, // 0x4E 'N'
|
||||
{88, 3, 5, 4, 0, -4}, // 0x4F 'O'
|
||||
{90, 3, 5, 4, 0, -4}, // 0x50 'P'
|
||||
{92, 3, 6, 4, 0, -4}, // 0x51 'Q'
|
||||
{95, 3, 5, 4, 0, -4}, // 0x52 'R'
|
||||
{97, 3, 5, 4, 0, -4}, // 0x53 'S'
|
||||
{99, 3, 5, 4, 0, -4}, // 0x54 'T'
|
||||
{101, 3, 5, 4, 0, -4}, // 0x55 'U'
|
||||
{103, 3, 5, 4, 0, -4}, // 0x56 'V'
|
||||
{105, 5, 5, 6, 0, -4}, // 0x57 'W'
|
||||
{109, 3, 5, 4, 0, -4}, // 0x58 'X'
|
||||
{111, 3, 5, 4, 0, -4}, // 0x59 'Y'
|
||||
{113, 3, 5, 4, 0, -4}, // 0x5A 'Z'
|
||||
{115, 2, 5, 3, 0, -4}, // 0x5B '['
|
||||
{117, 3, 5, 4, 0, -4}, // 0x5C '\'
|
||||
{119, 2, 5, 3, 0, -4}, // 0x5D ']'
|
||||
{121, 3, 2, 4, 0, -4}, // 0x5E '^'
|
||||
{122, 4, 1, 4, 0, 1}, // 0x5F '_'
|
||||
{123, 2, 2, 3, 0, -4}, // 0x60 '`'
|
||||
{124, 3, 4, 4, 0, -3}, // 0x61 'a'
|
||||
{126, 3, 5, 4, 0, -4}, // 0x62 'b'
|
||||
{128, 3, 3, 4, 0, -2}, // 0x63 'c'
|
||||
{130, 3, 5, 4, 0, -4}, // 0x64 'd'
|
||||
{132, 3, 4, 4, 0, -3}, // 0x65 'e'
|
||||
{134, 2, 5, 3, 0, -4}, // 0x66 'f'
|
||||
{136, 3, 5, 4, 0, -3}, // 0x67 'g'
|
||||
{138, 3, 5, 4, 0, -4}, // 0x68 'h'
|
||||
{140, 1, 5, 2, 0, -4}, // 0x69 'i'
|
||||
{141, 2, 6, 3, 0, -4}, // 0x6A 'j'
|
||||
{143, 3, 5, 4, 0, -4}, // 0x6B 'k'
|
||||
{145, 2, 5, 3, 0, -4}, // 0x6C 'l'
|
||||
{147, 5, 3, 6, 0, -2}, // 0x6D 'm'
|
||||
{149, 3, 3, 4, 0, -2}, // 0x6E 'n'
|
||||
{151, 3, 3, 4, 0, -2}, // 0x6F 'o'
|
||||
{153, 3, 4, 4, 0, -2}, // 0x70 'p'
|
||||
{155, 3, 4, 4, 0, -2}, // 0x71 'q'
|
||||
{157, 2, 3, 3, 0, -2}, // 0x72 'r'
|
||||
{158, 3, 4, 4, 0, -3}, // 0x73 's'
|
||||
{160, 2, 5, 3, 0, -4}, // 0x74 't'
|
||||
{162, 3, 3, 4, 0, -2}, // 0x75 'u'
|
||||
{164, 3, 3, 4, 0, -2}, // 0x76 'v'
|
||||
{166, 5, 3, 6, 0, -2}, // 0x77 'w'
|
||||
{168, 3, 3, 4, 0, -2}, // 0x78 'x'
|
||||
{170, 3, 4, 4, 0, -2}, // 0x79 'y'
|
||||
{172, 3, 4, 4, 0, -3}, // 0x7A 'z'
|
||||
{174, 3, 5, 4, 0, -4}, // 0x7B '{'
|
||||
{176, 1, 6, 2, 0, -4}, // 0x7C '|'
|
||||
{177, 3, 5, 4, 0, -4}, // 0x7D '}'
|
||||
{179, 4, 2, 5, 0, -3}}; // 0x7E '~'
|
||||
|
||||
const GFXfont Picopixel PROGMEM = {(uint8_t *)PicopixelBitmaps,
|
||||
(GFXglyph *)PicopixelGlyphs, 0x20, 0x7E, 7};
|
||||
|
||||
// Approx. 852 bytes
|
@@ -1,477 +0,0 @@
|
||||
#pragma once
|
||||
#include <Adafruit_GFX.h>
|
||||
|
||||
/**
|
||||
** The original 3x5 font is licensed under the 3-clause BSD license:
|
||||
**
|
||||
** Copyright 1999 Brian J. Swetland
|
||||
** Copyright 1999 Vassilii Khachaturov
|
||||
** Portions (of vt100.c/vt100.h) copyright Dan Marks
|
||||
**
|
||||
** All rights reserved.
|
||||
**
|
||||
** Redistribution and use in source and binary forms, with or without
|
||||
** modification, are permitted provided that the following conditions
|
||||
** are met:
|
||||
** 1. Redistributions of source code must retain the above copyright
|
||||
** notice, this list of conditions, and the following disclaimer.
|
||||
** 2. Redistributions in binary form must reproduce the above copyright
|
||||
** notice, this list of conditions, and the following disclaimer in the
|
||||
** documentation and/or other materials provided with the distribution.
|
||||
** 3. The name of the authors may not be used to endorse or promote products
|
||||
** derived from this software without specific prior written permission.
|
||||
**
|
||||
** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
**
|
||||
** Modifications to Tom Thumb for improved readability are from Robey Pointer,
|
||||
** see:
|
||||
** http://robey.lag.net/2010/01/23/tiny-monospace-font.html
|
||||
**
|
||||
** The original author does not have any objection to relicensing of Robey
|
||||
** Pointer's modifications (in this file) in a more permissive license. See
|
||||
** the discussion at the above blog, and also here:
|
||||
** http://opengameart.org/forumtopic/how-to-submit-art-using-the-3-clause-bsd-license
|
||||
**
|
||||
** Feb 21, 2016: Conversion from Linux BDF --> Adafruit GFX font,
|
||||
** with the help of this Python script:
|
||||
** https://gist.github.com/skelliam/322d421f028545f16f6d
|
||||
** William Skellenger (williamj@skellenger.net)
|
||||
** Twitter: @skelliam
|
||||
**
|
||||
** Jan 09, 2020: Bitmaps now compressed, to fix the bounding box problem,
|
||||
** because non-compressed the calculated text width were wrong.
|
||||
** Andreas Merkle (web@blue-andi.de)
|
||||
*/
|
||||
|
||||
#define TOMTHUMB_USE_EXTENDED 0
|
||||
|
||||
const uint8_t TomThumbBitmaps[] PROGMEM = {
|
||||
0x00, /* 0x20 space */
|
||||
0xE8, /* 0x21 exclam */
|
||||
0xB4, /* 0x22 quotedbl */
|
||||
0xBE, 0xFA, /* 0x23 numbersign */
|
||||
0x79, 0xE4, /* 0x24 dollar */
|
||||
0x85, 0x42, /* 0x25 percent */
|
||||
0xDB, 0xD6, /* 0x26 ampersand */
|
||||
0xC0, /* 0x27 quotesingle */
|
||||
0x6A, 0x40, /* 0x28 parenleft */
|
||||
0x95, 0x80, /* 0x29 parenright */
|
||||
0xAA, 0x80, /* 0x2A asterisk */
|
||||
0x5D, 0x00, /* 0x2B plus */
|
||||
0x60, /* 0x2C comma */
|
||||
0xE0, /* 0x2D hyphen */
|
||||
0x80, /* 0x2E period */
|
||||
0x25, 0x48, /* 0x2F slash */
|
||||
0x76, 0xDC, /* 0x30 zero */
|
||||
0x75, 0x40, /* 0x31 one */
|
||||
0xC5, 0x4E, /* 0x32 two */
|
||||
0xC5, 0x1C, /* 0x33 three */
|
||||
0xB7, 0x92, /* 0x34 four */
|
||||
0xF3, 0x1C, /* 0x35 five */
|
||||
0x73, 0xDE, /* 0x36 six */
|
||||
0xE5, 0x48, /* 0x37 seven */
|
||||
0xF7, 0xDE, /* 0x38 eight */
|
||||
0xF7, 0x9C, /* 0x39 nine */
|
||||
0xA0, /* 0x3A colon */
|
||||
0x46, /* 0x3B semicolon */
|
||||
0x2A, 0x22, /* 0x3C less */
|
||||
0xE3, 0x80, /* 0x3D equal */
|
||||
0x88, 0xA8, /* 0x3E greater */
|
||||
0xE5, 0x04, /* 0x3F question */
|
||||
0x57, 0xC6, /* 0x40 at */
|
||||
0x57, 0xDA, /* 0x41 A */
|
||||
0xD7, 0x5C, /* 0x42 B */
|
||||
0x72, 0x46, /* 0x43 C */
|
||||
0xD6, 0xDC, /* 0x44 D */
|
||||
0xF3, 0xCE, /* 0x45 E */
|
||||
0xF3, 0xC8, /* 0x46 F */
|
||||
0x73, 0xD6, /* 0x47 G */
|
||||
0xB7, 0xDA, /* 0x48 H */
|
||||
0xE9, 0x2E, /* 0x49 I */
|
||||
0x24, 0xD4, /* 0x4A J */
|
||||
0xB7, 0x5A, /* 0x4B K */
|
||||
0x92, 0x4E, /* 0x4C L */
|
||||
0xBF, 0xDA, /* 0x4D M */
|
||||
0xBF, 0xFA, /* 0x4E N */
|
||||
0x56, 0xD4, /* 0x4F O */
|
||||
0xD7, 0x48, /* 0x50 P */
|
||||
0x56, 0xF6, /* 0x51 Q */
|
||||
0xD7, 0xEA, /* 0x52 R */
|
||||
0x71, 0x1C, /* 0x53 S */
|
||||
0xE9, 0x24, /* 0x54 T */
|
||||
0xB6, 0xD6, /* 0x55 U */
|
||||
0xB6, 0xA4, /* 0x56 V */
|
||||
0xB7, 0xFA, /* 0x57 W */
|
||||
0xB5, 0x5A, /* 0x58 X */
|
||||
0xB5, 0x24, /* 0x59 Y */
|
||||
0xE5, 0x4E, /* 0x5A Z */
|
||||
0xF2, 0x4E, /* 0x5B bracketleft */
|
||||
0x88, 0x80, /* 0x5C backslash */
|
||||
0xE4, 0x9E, /* 0x5D bracketright */
|
||||
0x54, /* 0x5E asciicircum */
|
||||
0xE0, /* 0x5F underscore */
|
||||
0x90, /* 0x60 grave */
|
||||
0xCE, 0xF0, /* 0x61 a */
|
||||
0x9A, 0xDC, /* 0x62 b */
|
||||
0x72, 0x30, /* 0x63 c */
|
||||
0x2E, 0xD6, /* 0x64 d */
|
||||
0x77, 0x30, /* 0x65 e */
|
||||
0x2B, 0xA4, /* 0x66 f */
|
||||
0x77, 0x94, /* 0x67 g */
|
||||
0x9A, 0xDA, /* 0x68 h */
|
||||
0xB8, /* 0x69 i */
|
||||
0x20, 0x9A, 0x80, /* 0x6A j */
|
||||
0x97, 0x6A, /* 0x6B k */
|
||||
0xC9, 0x2E, /* 0x6C l */
|
||||
0xFF, 0xD0, /* 0x6D m */
|
||||
0xD6, 0xD0, /* 0x6E n */
|
||||
0x56, 0xA0, /* 0x6F o */
|
||||
0xD6, 0xE8, /* 0x70 p */
|
||||
0x76, 0xB2, /* 0x71 q */
|
||||
0x72, 0x40, /* 0x72 r */
|
||||
0x79, 0xE0, /* 0x73 s */
|
||||
0x5D, 0x26, /* 0x74 t */
|
||||
0xB6, 0xB0, /* 0x75 u */
|
||||
0xB7, 0xA0, /* 0x76 v */
|
||||
0xBF, 0xF0, /* 0x77 w */
|
||||
0xA9, 0x50, /* 0x78 x */
|
||||
0xB5, 0x94, /* 0x79 y */
|
||||
0xEF, 0x70, /* 0x7A z */
|
||||
0x6A, 0x26, /* 0x7B braceleft */
|
||||
0xD8, /* 0x7C bar */
|
||||
0xC8, 0xAC, /* 0x7D braceright */
|
||||
0x78, /* 0x7E asciitilde */
|
||||
#if (TOMTHUMB_USE_EXTENDED)
|
||||
0xB8, /* 0xA1 exclamdown */
|
||||
0x5E, 0x74, /* 0xA2 cent */
|
||||
0x6B, 0xAE, /* 0xA3 sterling */
|
||||
0xAB, 0xAA, /* 0xA4 currency */
|
||||
0xB5, 0x74, /* 0xA5 yen */
|
||||
0xD8, /* 0xA6 brokenbar */
|
||||
0x6A, 0xAC, /* 0xA7 section */
|
||||
0xA0, /* 0xA8 dieresis */
|
||||
0x71, 0x80, /* 0xA9 copyright */
|
||||
0x77, 0x8E, /* 0xAA ordfeminine */
|
||||
0x64, /* 0xAB guillemotleft */
|
||||
0xE4, /* 0xAC logicalnot */
|
||||
0xC0, /* 0xAD softhyphen */
|
||||
0xDA, 0x80, /* 0xAE registered */
|
||||
0xE0, /* 0xAF macron */
|
||||
0x55, 0x00, /* 0xB0 degree */
|
||||
0x5D, 0x0E, /* 0xB1 plusminus */
|
||||
0xC9, 0x80, /* 0xB2 twosuperior */
|
||||
0xEF, 0x80, /* 0xB3 threesuperior */
|
||||
0x60, /* 0xB4 acute */
|
||||
0xB6, 0xE8, /* 0xB5 mu */
|
||||
0x75, 0xB6, /* 0xB6 paragraph */
|
||||
0xFF, 0x80, /* 0xB7 periodcentered */
|
||||
0x47, 0x00, /* 0xB8 cedilla */
|
||||
0xE0, /* 0xB9 onesuperior */
|
||||
0x55, 0x0E, /* 0xBA ordmasculine */
|
||||
0x98, /* 0xBB guillemotright */
|
||||
0x90, 0x32, /* 0xBC onequarter */
|
||||
0x90, 0x66, /* 0xBD onehalf */
|
||||
0xD8, 0x32, /* 0xBE threequarters */
|
||||
0x41, 0x4E, /* 0xBF questiondown */
|
||||
0x45, 0x7A, /* 0xC0 Agrave */
|
||||
0x51, 0x7A, /* 0xC1 Aacute */
|
||||
0xE1, 0x7A, /* 0xC2 Acircumflex */
|
||||
0x79, 0x7A, /* 0xC3 Atilde */
|
||||
0xAA, 0xFA, /* 0xC4 Adieresis */
|
||||
0xDA, 0xFA, /* 0xC5 Aring */
|
||||
0x7B, 0xEE, /* 0xC6 AE */
|
||||
0x72, 0x32, 0x80, /* 0xC7 Ccedilla */
|
||||
0x47, 0xEE, /* 0xC8 Egrave */
|
||||
0x53, 0xEE, /* 0xC9 Eacute */
|
||||
0xE3, 0xEE, /* 0xCA Ecircumflex */
|
||||
0xA3, 0xEE, /* 0xCB Edieresis */
|
||||
0x47, 0xAE, /* 0xCC Igrave */
|
||||
0x53, 0xAE, /* 0xCD Iacute */
|
||||
0xE3, 0xAE, /* 0xCE Icircumflex */
|
||||
0xA3, 0xAE, /* 0xCF Idieresis */
|
||||
0xD7, 0xDC, /* 0xD0 Eth */
|
||||
0xCE, 0xFA, /* 0xD1 Ntilde */
|
||||
0x47, 0xDE, /* 0xD2 Ograve */
|
||||
0x53, 0xDE, /* 0xD3 Oacute */
|
||||
0xE3, 0xDE, /* 0xD4 Ocircumflex */
|
||||
0xCF, 0xDE, /* 0xD5 Otilde */
|
||||
0xA3, 0xDE, /* 0xD6 Odieresis */
|
||||
0xAA, 0x80, /* 0xD7 multiply */
|
||||
0x77, 0xDC, /* 0xD8 Oslash */
|
||||
0x8A, 0xDE, /* 0xD9 Ugrave */
|
||||
0x2A, 0xDE, /* 0xDA Uacute */
|
||||
0xE2, 0xDE, /* 0xDB Ucircumflex */
|
||||
0xA2, 0xDE, /* 0xDC Udieresis */
|
||||
0x2A, 0xF4, /* 0xDD Yacute */
|
||||
0x9E, 0xF8, /* 0xDE Thorn */
|
||||
0x77, 0x5D, 0x00, /* 0xDF germandbls */
|
||||
0x45, 0xDE, /* 0xE0 agrave */
|
||||
0x51, 0xDE, /* 0xE1 aacute */
|
||||
0xE1, 0xDE, /* 0xE2 acircumflex */
|
||||
0x79, 0xDE, /* 0xE3 atilde */
|
||||
0xA1, 0xDE, /* 0xE4 adieresis */
|
||||
0x6D, 0xDE, /* 0xE5 aring */
|
||||
0x7F, 0xE0, /* 0xE6 ae */
|
||||
0x71, 0x94, /* 0xE7 ccedilla */
|
||||
0x45, 0xF6, /* 0xE8 egrave */
|
||||
0x51, 0xF6, /* 0xE9 eacute */
|
||||
0xE1, 0xF6, /* 0xEA ecircumflex */
|
||||
0xA1, 0xF6, /* 0xEB edieresis */
|
||||
0x9A, 0x80, /* 0xEC igrave */
|
||||
0x65, 0x40, /* 0xED iacute */
|
||||
0xE1, 0x24, /* 0xEE icircumflex */
|
||||
0xA1, 0x24, /* 0xEF idieresis */
|
||||
0x79, 0xD6, /* 0xF0 eth */
|
||||
0xCF, 0x5A, /* 0xF1 ntilde */
|
||||
0x45, 0x54, /* 0xF2 ograve */
|
||||
0x51, 0x54, /* 0xF3 oacute */
|
||||
0xE1, 0x54, /* 0xF4 ocircumflex */
|
||||
0xCD, 0x54, /* 0xF5 otilde */
|
||||
0xA1, 0x54, /* 0xF6 odieresis */
|
||||
0x43, 0x84, /* 0xF7 divide */
|
||||
0x7E, 0xE0, /* 0xF8 oslash */
|
||||
0x8A, 0xD6, /* 0xF9 ugrave */
|
||||
0x2A, 0xD6, /* 0xFA uacute */
|
||||
0xE2, 0xD6, /* 0xFB ucircumflex */
|
||||
0xA2, 0xD6, /* 0xFC udieresis */
|
||||
0x2A, 0xB2, 0x80, /* 0xFD yacute */
|
||||
0x9A, 0xE8, /* 0xFE thorn */
|
||||
0xA2, 0xB2, 0x80, /* 0xFF ydieresis */
|
||||
0x00, /* 0x11D gcircumflex */
|
||||
0x7B, 0xE6, /* 0x152 OE */
|
||||
0x7F, 0x70, /* 0x153 oe */
|
||||
0xAF, 0x3C, /* 0x160 Scaron */
|
||||
0xAF, 0x3C, /* 0x161 scaron */
|
||||
0xA2, 0xA4, /* 0x178 Ydieresis */
|
||||
0xBD, 0xEE, /* 0x17D Zcaron */
|
||||
0xBD, 0xEE, /* 0x17E zcaron */
|
||||
0x00, /* 0xEA4 uni0EA4 */
|
||||
0x00, /* 0x13A0 uni13A0 */
|
||||
0x80, /* 0x2022 bullet */
|
||||
0xA0, /* 0x2026 ellipsis */
|
||||
0x7F, 0xE6, /* 0x20AC Euro */
|
||||
0xEA, 0xAA, 0xE0, /* 0xFFFD uniFFFD */
|
||||
#endif /* (TOMTHUMB_USE_EXTENDED) */
|
||||
};
|
||||
|
||||
/* {offset, width, height, advance cursor, x offset, y offset} */
|
||||
const GFXglyph TomThumbGlyphs[] PROGMEM = {
|
||||
{0, 1, 1, 2, 0, -5}, /* 0x20 space */
|
||||
{1, 1, 5, 2, 0, -5}, /* 0x21 exclam */
|
||||
{2, 3, 2, 4, 0, -5}, /* 0x22 quotedbl */
|
||||
{3, 3, 5, 4, 0, -5}, /* 0x23 numbersign */
|
||||
{5, 3, 5, 4, 0, -5}, /* 0x24 dollar */
|
||||
{7, 3, 5, 4, 0, -5}, /* 0x25 percent */
|
||||
{9, 3, 5, 4, 0, -5}, /* 0x26 ampersand */
|
||||
{11, 1, 2, 2, 0, -5}, /* 0x27 quotesingle */
|
||||
{12, 2, 5, 3, 0, -5}, /* 0x28 parenleft */
|
||||
{14, 2, 5, 3, 0, -5}, /* 0x29 parenright */
|
||||
{16, 3, 3, 4, 0, -5}, /* 0x2A asterisk */
|
||||
{18, 3, 3, 4, 0, -4}, /* 0x2B plus */
|
||||
{20, 2, 2, 3, 0, -2}, /* 0x2C comma */
|
||||
{21, 3, 1, 4, 0, -3}, /* 0x2D hyphen */
|
||||
{22, 1, 1, 2, 0, -1}, /* 0x2E period */
|
||||
{23, 3, 5, 4, 0, -5}, /* 0x2F slash */
|
||||
{25, 3, 5, 4, 0, -5}, /* 0x30 zero */
|
||||
{27, 2, 5, 3, 0, -5}, /* 0x31 one */
|
||||
{29, 3, 5, 4, 0, -5}, /* 0x32 two */
|
||||
{31, 3, 5, 4, 0, -5}, /* 0x33 three */
|
||||
{33, 3, 5, 4, 0, -5}, /* 0x34 four */
|
||||
{35, 3, 5, 4, 0, -5}, /* 0x35 five */
|
||||
{37, 3, 5, 4, 0, -5}, /* 0x36 six */
|
||||
{39, 3, 5, 4, 0, -5}, /* 0x37 seven */
|
||||
{41, 3, 5, 4, 0, -5}, /* 0x38 eight */
|
||||
{43, 3, 5, 4, 0, -5}, /* 0x39 nine */
|
||||
{45, 1, 3, 2, 0, -4}, /* 0x3A colon */
|
||||
{46, 2, 4, 3, 0, -4}, /* 0x3B semicolon */
|
||||
{47, 3, 5, 4, 0, -5}, /* 0x3C less */
|
||||
{49, 3, 3, 4, 0, -4}, /* 0x3D equal */
|
||||
{51, 3, 5, 4, 0, -5}, /* 0x3E greater */
|
||||
{53, 3, 5, 4, 0, -5}, /* 0x3F question */
|
||||
{55, 3, 5, 4, 0, -5}, /* 0x40 at */
|
||||
{57, 3, 5, 4, 0, -5}, /* 0x41 A */
|
||||
{59, 3, 5, 4, 0, -5}, /* 0x42 B */
|
||||
{61, 3, 5, 4, 0, -5}, /* 0x43 C */
|
||||
{63, 3, 5, 4, 0, -5}, /* 0x44 D */
|
||||
{65, 3, 5, 4, 0, -5}, /* 0x45 E */
|
||||
{67, 3, 5, 4, 0, -5}, /* 0x46 F */
|
||||
{69, 3, 5, 4, 0, -5}, /* 0x47 G */
|
||||
{71, 3, 5, 4, 0, -5}, /* 0x48 H */
|
||||
{73, 3, 5, 4, 0, -5}, /* 0x49 I */
|
||||
{75, 3, 5, 4, 0, -5}, /* 0x4A J */
|
||||
{77, 3, 5, 4, 0, -5}, /* 0x4B K */
|
||||
{79, 3, 5, 4, 0, -5}, /* 0x4C L */
|
||||
{81, 3, 5, 4, 0, -5}, /* 0x4D M */
|
||||
{83, 3, 5, 4, 0, -5}, /* 0x4E N */
|
||||
{85, 3, 5, 4, 0, -5}, /* 0x4F O */
|
||||
{87, 3, 5, 4, 0, -5}, /* 0x50 P */
|
||||
{89, 3, 5, 4, 0, -5}, /* 0x51 Q */
|
||||
{91, 3, 5, 4, 0, -5}, /* 0x52 R */
|
||||
{93, 3, 5, 4, 0, -5}, /* 0x53 S */
|
||||
{95, 3, 5, 4, 0, -5}, /* 0x54 T */
|
||||
{97, 3, 5, 4, 0, -5}, /* 0x55 U */
|
||||
{99, 3, 5, 4, 0, -5}, /* 0x56 V */
|
||||
{101, 3, 5, 4, 0, -5}, /* 0x57 W */
|
||||
{103, 3, 5, 4, 0, -5}, /* 0x58 X */
|
||||
{105, 3, 5, 4, 0, -5}, /* 0x59 Y */
|
||||
{107, 3, 5, 4, 0, -5}, /* 0x5A Z */
|
||||
{109, 3, 5, 4, 0, -5}, /* 0x5B bracketleft */
|
||||
{111, 3, 3, 4, 0, -4}, /* 0x5C backslash */
|
||||
{113, 3, 5, 4, 0, -5}, /* 0x5D bracketright */
|
||||
{115, 3, 2, 4, 0, -5}, /* 0x5E asciicircum */
|
||||
{116, 3, 1, 4, 0, -1}, /* 0x5F underscore */
|
||||
{117, 2, 2, 3, 0, -5}, /* 0x60 grave */
|
||||
{118, 3, 4, 4, 0, -4}, /* 0x61 a */
|
||||
{120, 3, 5, 4, 0, -5}, /* 0x62 b */
|
||||
{122, 3, 4, 4, 0, -4}, /* 0x63 c */
|
||||
{124, 3, 5, 4, 0, -5}, /* 0x64 d */
|
||||
{126, 3, 4, 4, 0, -4}, /* 0x65 e */
|
||||
{128, 3, 5, 4, 0, -5}, /* 0x66 f */
|
||||
{130, 3, 5, 4, 0, -4}, /* 0x67 g */
|
||||
{132, 3, 5, 4, 0, -5}, /* 0x68 h */
|
||||
{134, 1, 5, 2, 0, -5}, /* 0x69 i */
|
||||
{135, 3, 6, 4, 0, -5}, /* 0x6A j */
|
||||
{138, 3, 5, 4, 0, -5}, /* 0x6B k */
|
||||
{140, 3, 5, 4, 0, -5}, /* 0x6C l */
|
||||
{142, 3, 4, 4, 0, -4}, /* 0x6D m */
|
||||
{144, 3, 4, 4, 0, -4}, /* 0x6E n */
|
||||
{146, 3, 4, 4, 0, -4}, /* 0x6F o */
|
||||
{148, 3, 5, 4, 0, -4}, /* 0x70 p */
|
||||
{150, 3, 5, 4, 0, -4}, /* 0x71 q */
|
||||
{152, 3, 4, 4, 0, -4}, /* 0x72 r */
|
||||
{154, 3, 4, 4, 0, -4}, /* 0x73 s */
|
||||
{156, 3, 5, 4, 0, -5}, /* 0x74 t */
|
||||
{158, 3, 4, 4, 0, -4}, /* 0x75 u */
|
||||
{160, 3, 4, 4, 0, -4}, /* 0x76 v */
|
||||
{162, 3, 4, 4, 0, -4}, /* 0x77 w */
|
||||
{164, 3, 4, 4, 0, -4}, /* 0x78 x */
|
||||
{166, 3, 5, 4, 0, -4}, /* 0x79 y */
|
||||
{168, 3, 4, 4, 0, -4}, /* 0x7A z */
|
||||
{170, 3, 5, 4, 0, -5}, /* 0x7B braceleft */
|
||||
{172, 1, 5, 2, 0, -5}, /* 0x7C bar */
|
||||
{173, 3, 5, 4, 0, -5}, /* 0x7D braceright */
|
||||
{175, 3, 2, 4, 0, -5}, /* 0x7E asciitilde */
|
||||
#if (TOMTHUMB_USE_EXTENDED)
|
||||
{176, 1, 5, 2, 0, -5}, /* 0xA1 exclamdown */
|
||||
{177, 3, 5, 4, 0, -5}, /* 0xA2 cent */
|
||||
{179, 3, 5, 4, 0, -5}, /* 0xA3 sterling */
|
||||
{181, 3, 5, 4, 0, -5}, /* 0xA4 currency */
|
||||
{183, 3, 5, 4, 0, -5}, /* 0xA5 yen */
|
||||
{185, 1, 5, 2, 0, -5}, /* 0xA6 brokenbar */
|
||||
{186, 3, 5, 4, 0, -5}, /* 0xA7 section */
|
||||
{188, 3, 1, 4, 0, -5}, /* 0xA8 dieresis */
|
||||
{189, 3, 3, 4, 0, -5}, /* 0xA9 copyright */
|
||||
{191, 3, 5, 4, 0, -5}, /* 0xAA ordfeminine */
|
||||
{193, 2, 3, 3, 0, -5}, /* 0xAB guillemotleft */
|
||||
{194, 3, 2, 4, 0, -4}, /* 0xAC logicalnot */
|
||||
{195, 2, 1, 3, 0, -3}, /* 0xAD softhyphen */
|
||||
{196, 3, 3, 4, 0, -5}, /* 0xAE registered */
|
||||
{198, 3, 1, 4, 0, -5}, /* 0xAF macron */
|
||||
{199, 3, 3, 4, 0, -5}, /* 0xB0 degree */
|
||||
{201, 3, 5, 4, 0, -5}, /* 0xB1 plusminus */
|
||||
{203, 3, 3, 4, 0, -5}, /* 0xB2 twosuperior */
|
||||
{205, 3, 3, 4, 0, -5}, /* 0xB3 threesuperior */
|
||||
{207, 2, 2, 3, 0, -5}, /* 0xB4 acute */
|
||||
{208, 3, 5, 4, 0, -5}, /* 0xB5 mu */
|
||||
{210, 3, 5, 4, 0, -5}, /* 0xB6 paragraph */
|
||||
{212, 3, 3, 4, 0, -4}, /* 0xB7 periodcentered */
|
||||
{214, 3, 3, 4, 0, -3}, /* 0xB8 cedilla */
|
||||
{216, 1, 3, 2, 0, -5}, /* 0xB9 onesuperior */
|
||||
{217, 3, 5, 4, 0, -5}, /* 0xBA ordmasculine */
|
||||
{219, 2, 3, 3, 0, -5}, /* 0xBB guillemotright */
|
||||
{220, 3, 5, 4, 0, -5}, /* 0xBC onequarter */
|
||||
{222, 3, 5, 4, 0, -5}, /* 0xBD onehalf */
|
||||
{224, 3, 5, 4, 0, -5}, /* 0xBE threequarters */
|
||||
{226, 3, 5, 4, 0, -5}, /* 0xBF questiondown */
|
||||
{228, 3, 5, 4, 0, -5}, /* 0xC0 Agrave */
|
||||
{230, 3, 5, 4, 0, -5}, /* 0xC1 Aacute */
|
||||
{232, 3, 5, 4, 0, -5}, /* 0xC2 Acircumflex */
|
||||
{234, 3, 5, 4, 0, -5}, /* 0xC3 Atilde */
|
||||
{236, 3, 5, 4, 0, -5}, /* 0xC4 Adieresis */
|
||||
{238, 3, 5, 4, 0, -5}, /* 0xC5 Aring */
|
||||
{240, 3, 5, 4, 0, -5}, /* 0xC6 AE */
|
||||
{242, 3, 6, 4, 0, -5}, /* 0xC7 Ccedilla */
|
||||
{245, 3, 5, 4, 0, -5}, /* 0xC8 Egrave */
|
||||
{247, 3, 5, 4, 0, -5}, /* 0xC9 Eacute */
|
||||
{249, 3, 5, 4, 0, -5}, /* 0xCA Ecircumflex */
|
||||
{251, 3, 5, 4, 0, -5}, /* 0xCB Edieresis */
|
||||
{253, 3, 5, 4, 0, -5}, /* 0xCC Igrave */
|
||||
{255, 3, 5, 4, 0, -5}, /* 0xCD Iacute */
|
||||
{257, 3, 5, 4, 0, -5}, /* 0xCE Icircumflex */
|
||||
{259, 3, 5, 4, 0, -5}, /* 0xCF Idieresis */
|
||||
{261, 3, 5, 4, 0, -5}, /* 0xD0 Eth */
|
||||
{263, 3, 5, 4, 0, -5}, /* 0xD1 Ntilde */
|
||||
{265, 3, 5, 4, 0, -5}, /* 0xD2 Ograve */
|
||||
{267, 3, 5, 4, 0, -5}, /* 0xD3 Oacute */
|
||||
{269, 3, 5, 4, 0, -5}, /* 0xD4 Ocircumflex */
|
||||
{271, 3, 5, 4, 0, -5}, /* 0xD5 Otilde */
|
||||
{273, 3, 5, 4, 0, -5}, /* 0xD6 Odieresis */
|
||||
{275, 3, 3, 4, 0, -4}, /* 0xD7 multiply */
|
||||
{277, 3, 5, 4, 0, -5}, /* 0xD8 Oslash */
|
||||
{279, 3, 5, 4, 0, -5}, /* 0xD9 Ugrave */
|
||||
{281, 3, 5, 4, 0, -5}, /* 0xDA Uacute */
|
||||
{283, 3, 5, 4, 0, -5}, /* 0xDB Ucircumflex */
|
||||
{285, 3, 5, 4, 0, -5}, /* 0xDC Udieresis */
|
||||
{287, 3, 5, 4, 0, -5}, /* 0xDD Yacute */
|
||||
{289, 3, 5, 4, 0, -5}, /* 0xDE Thorn */
|
||||
{291, 3, 6, 4, 0, -5}, /* 0xDF germandbls */
|
||||
{294, 3, 5, 4, 0, -5}, /* 0xE0 agrave */
|
||||
{296, 3, 5, 4, 0, -5}, /* 0xE1 aacute */
|
||||
{298, 3, 5, 4, 0, -5}, /* 0xE2 acircumflex */
|
||||
{300, 3, 5, 4, 0, -5}, /* 0xE3 atilde */
|
||||
{302, 3, 5, 4, 0, -5}, /* 0xE4 adieresis */
|
||||
{304, 3, 5, 4, 0, -5}, /* 0xE5 aring */
|
||||
{306, 3, 4, 4, 0, -4}, /* 0xE6 ae */
|
||||
{308, 3, 5, 4, 0, -4}, /* 0xE7 ccedilla */
|
||||
{310, 3, 5, 4, 0, -5}, /* 0xE8 egrave */
|
||||
{312, 3, 5, 4, 0, -5}, /* 0xE9 eacute */
|
||||
{314, 3, 5, 4, 0, -5}, /* 0xEA ecircumflex */
|
||||
{316, 3, 5, 4, 0, -5}, /* 0xEB edieresis */
|
||||
{318, 2, 5, 3, 0, -5}, /* 0xEC igrave */
|
||||
{320, 2, 5, 3, 0, -5}, /* 0xED iacute */
|
||||
{322, 3, 5, 4, 0, -5}, /* 0xEE icircumflex */
|
||||
{324, 3, 5, 4, 0, -5}, /* 0xEF idieresis */
|
||||
{326, 3, 5, 4, 0, -5}, /* 0xF0 eth */
|
||||
{328, 3, 5, 4, 0, -5}, /* 0xF1 ntilde */
|
||||
{330, 3, 5, 4, 0, -5}, /* 0xF2 ograve */
|
||||
{332, 3, 5, 4, 0, -5}, /* 0xF3 oacute */
|
||||
{334, 3, 5, 4, 0, -5}, /* 0xF4 ocircumflex */
|
||||
{336, 3, 5, 4, 0, -5}, /* 0xF5 otilde */
|
||||
{338, 3, 5, 4, 0, -5}, /* 0xF6 odieresis */
|
||||
{340, 3, 5, 4, 0, -5}, /* 0xF7 divide */
|
||||
{342, 3, 4, 4, 0, -4}, /* 0xF8 oslash */
|
||||
{344, 3, 5, 4, 0, -5}, /* 0xF9 ugrave */
|
||||
{346, 3, 5, 4, 0, -5}, /* 0xFA uacute */
|
||||
{348, 3, 5, 4, 0, -5}, /* 0xFB ucircumflex */
|
||||
{350, 3, 5, 4, 0, -5}, /* 0xFC udieresis */
|
||||
{352, 3, 6, 4, 0, -5}, /* 0xFD yacute */
|
||||
{355, 3, 5, 4, 0, -4}, /* 0xFE thorn */
|
||||
{357, 3, 6, 4, 0, -5}, /* 0xFF ydieresis */
|
||||
{360, 1, 1, 2, 0, -1}, /* 0x11D gcircumflex */
|
||||
{361, 3, 5, 4, 0, -5}, /* 0x152 OE */
|
||||
{363, 3, 4, 4, 0, -4}, /* 0x153 oe */
|
||||
{365, 3, 5, 4, 0, -5}, /* 0x160 Scaron */
|
||||
{367, 3, 5, 4, 0, -5}, /* 0x161 scaron */
|
||||
{369, 3, 5, 4, 0, -5}, /* 0x178 Ydieresis */
|
||||
{371, 3, 5, 4, 0, -5}, /* 0x17D Zcaron */
|
||||
{373, 3, 5, 4, 0, -5}, /* 0x17E zcaron */
|
||||
{375, 1, 1, 2, 0, -1}, /* 0xEA4 uni0EA4 */
|
||||
{376, 1, 1, 2, 0, -1}, /* 0x13A0 uni13A0 */
|
||||
{377, 1, 1, 2, 0, -3}, /* 0x2022 bullet */
|
||||
{378, 3, 1, 4, 0, -1}, /* 0x2026 ellipsis */
|
||||
{379, 3, 5, 4, 0, -5}, /* 0x20AC Euro */
|
||||
{381, 4, 5, 5, 0, -5}, /* 0xFFFD uniFFFD */
|
||||
#endif /* (TOMTHUMB_USE_EXTENDED) */
|
||||
};
|
||||
|
||||
const GFXfont TomThumb PROGMEM = {(uint8_t *)TomThumbBitmaps,
|
||||
(GFXglyph *)TomThumbGlyphs, 0x20, 0x7E, 6};
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,118 +0,0 @@
|
||||
// class GxGDEW042Z15 : Display class for GDEW042Z15 e-Paper from Dalian Good Display Co., Ltd.: www.good-display.com
|
||||
//
|
||||
// based on Demo Example from Good Display, available here: http://www.good-display.com/download_detail/downloadsId=515.html
|
||||
// Controller: IL0398 : http://www.good-display.com/download_detail/downloadsId=537.html
|
||||
//
|
||||
// Author : J-M Zingg
|
||||
//
|
||||
// Version : see library.properties
|
||||
//
|
||||
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||
//
|
||||
// Library: https://github.com/ZinggJM/GxEPD
|
||||
|
||||
#ifndef _GxGDEW042Z15_H_
|
||||
#define _GxGDEW042Z15_H_
|
||||
|
||||
#include "../GxEPD.h"
|
||||
|
||||
#define GxGDEW042Z15_WIDTH 400
|
||||
#define GxGDEW042Z15_HEIGHT 300
|
||||
|
||||
#define GxGDEW042Z15_BUFFER_SIZE (uint32_t(GxGDEW042Z15_WIDTH) * uint32_t(GxGDEW042Z15_HEIGHT) / 8)
|
||||
|
||||
// divisor for AVR, should be factor of GxGDEW042Z15_HEIGHT
|
||||
#define GxGDEW042Z15_PAGES 30
|
||||
|
||||
#define GxGDEW042Z15_PAGE_HEIGHT (GxGDEW042Z15_HEIGHT / GxGDEW042Z15_PAGES)
|
||||
#define GxGDEW042Z15_PAGE_SIZE (GxGDEW042Z15_BUFFER_SIZE / GxGDEW042Z15_PAGES)
|
||||
|
||||
class GxGDEW042Z15 : public GxEPD
|
||||
{
|
||||
public:
|
||||
#if defined(ESP8266)
|
||||
//GxGDEW042Z15(GxIO& io, int8_t rst = D4, int8_t busy = D2);
|
||||
// use pin numbers, other ESP8266 than Wemos may not use Dx names
|
||||
GxGDEW042Z15(GxIO& io, int8_t rst = 2, int8_t busy = 4);
|
||||
#else
|
||||
GxGDEW042Z15(GxIO& io, int8_t rst = 9, int8_t busy = 7);
|
||||
#endif
|
||||
void drawPixel(int16_t x, int16_t y, uint16_t color);
|
||||
void init(uint32_t serial_diag_bitrate = 0); // = 0 : disabled
|
||||
void fillScreen(uint16_t color); // 0x0 black, >0x0 white, to buffer
|
||||
void update(void);
|
||||
// to buffer, may be cropped, drawPixel() used, update needed
|
||||
void drawBitmap(const uint8_t *bitmap, uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color, int16_t mode = bm_normal);
|
||||
// to full screen, filled with white if size is less, no update needed, black /white / red, for example bitmaps
|
||||
void drawExamplePicture(const uint8_t* black_bitmap, const uint8_t* red_bitmap, uint32_t black_size, uint32_t red_size);
|
||||
// to full screen, filled with white if size is less, no update needed, black /white / red, general version
|
||||
void drawPicture(const uint8_t* black_bitmap, const uint8_t* red_bitmap, uint32_t black_size, uint32_t red_size, int16_t mode = bm_normal);
|
||||
// to full screen, filled with white if size is less, no update needed
|
||||
void drawBitmap(const uint8_t *bitmap, uint32_t size, int16_t mode = bm_normal); // only bm_normal, bm_invert, bm_partial_update modes implemented
|
||||
void eraseDisplay(bool using_partial_update = false);
|
||||
// partial update of rectangle from buffer to screen, does not power off
|
||||
void updateWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h, bool using_rotation = true);
|
||||
// partial update of rectangle at (xs,ys) from buffer to screen at (xd,yd), does not power off
|
||||
void updateToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h, bool using_rotation = true);
|
||||
// terminate cleanly updateWindow or updateToWindow before removing power or long delays
|
||||
void powerDown();
|
||||
// paged drawing, for limited RAM, drawCallback() is called GxGDEW042Z15_PAGES times
|
||||
// each call of drawCallback() should draw the same
|
||||
void drawPaged(void (*drawCallback)(void));
|
||||
void drawPaged(void (*drawCallback)(uint32_t), uint32_t);
|
||||
void drawPaged(void (*drawCallback)(const void*), const void*);
|
||||
void drawPaged(void (*drawCallback)(const void*, const void*), const void*, const void*);
|
||||
// paged drawing to screen rectangle at (x,y) using partial update
|
||||
void drawPagedToWindow(void (*drawCallback)(void), uint16_t x, uint16_t y, uint16_t w, uint16_t h);
|
||||
void drawPagedToWindow(void (*drawCallback)(uint32_t), uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint32_t);
|
||||
void drawPagedToWindow(void (*drawCallback)(const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void*);
|
||||
void drawPagedToWindow(void (*drawCallback)(const void*, const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void*, const void*);
|
||||
void drawCornerTest(uint8_t em = 0);
|
||||
private:
|
||||
template <typename T> static inline void
|
||||
swap(T& a, T& b)
|
||||
{
|
||||
T t = a;
|
||||
a = b;
|
||||
b = t;
|
||||
}
|
||||
void _writeToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h);
|
||||
uint16_t _setPartialRamArea(uint16_t x, uint16_t y, uint16_t xe, uint16_t ye);
|
||||
void _wakeUp();
|
||||
void _sleep(void);
|
||||
void _waitWhileBusy(const char* comment = 0);
|
||||
void _rotate(uint16_t& x, uint16_t& y, uint16_t& w, uint16_t& h);
|
||||
private:
|
||||
#if defined(__AVR)
|
||||
uint8_t _black_buffer[GxGDEW042Z15_PAGE_SIZE];
|
||||
uint8_t _red_buffer[GxGDEW042Z15_PAGE_SIZE];
|
||||
#else
|
||||
uint8_t _black_buffer[GxGDEW042Z15_BUFFER_SIZE];
|
||||
uint8_t _red_buffer[GxGDEW042Z15_BUFFER_SIZE];
|
||||
#endif
|
||||
GxIO& IO;
|
||||
int16_t _current_page;
|
||||
bool _using_partial_mode;
|
||||
bool _diag_enabled;
|
||||
int8_t _rst;
|
||||
int8_t _busy;
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
public:
|
||||
// the compiler of these packages has a problem with signature matching to base classes
|
||||
void drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)
|
||||
{
|
||||
Adafruit_GFX::drawBitmap(x, y, bitmap, w, h, color);
|
||||
};
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifndef GxEPD_Class
|
||||
#define GxEPD_Class GxGDEW042Z15
|
||||
#define GxEPD_WIDTH GxGDEW042Z15_WIDTH
|
||||
#define GxEPD_HEIGHT GxGDEW042Z15_HEIGHT
|
||||
#define GxEPD_BitmapExamples <GxGDEW042Z15/BitmapExamples.h>
|
||||
#define GxEPD_BitmapExamplesQ "GxGDEW042Z15/BitmapExamples.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -1,853 +0,0 @@
|
||||
// class GxGDEW042Z15 : Display class for GDEW042Z15 e-Paper from Dalian Good Display Co., Ltd.: www.good-display.com
|
||||
//
|
||||
// based on Demo Example from Good Display, available here: http://www.good-display.com/download_detail/downloadsId=515.html
|
||||
// Controller: IL0398 : http://www.good-display.com/download_detail/downloadsId=537.html
|
||||
//
|
||||
// Author : J-M Zingg
|
||||
//
|
||||
// Version : see library.properties
|
||||
//
|
||||
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||
//
|
||||
// Library: https://github.com/ZinggJM/GxEPD
|
||||
|
||||
#include "GxGDEW042Z15.h"
|
||||
|
||||
//#define DISABLE_DIAGNOSTIC_OUTPUT
|
||||
|
||||
// partial update produces distortion on the right half of the screen in b/w/r mode (on my display)
|
||||
|
||||
// this workaround updates the whole screen
|
||||
#define USE_PARTIAL_UPDATE_WORKAROUND
|
||||
|
||||
#define GxGDEW042Z15_BUSY_TIMEOUT 20000000
|
||||
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
#include <pgmspace.h>
|
||||
#else
|
||||
#include <avr/pgmspace.h>
|
||||
#endif
|
||||
|
||||
GxGDEW042Z15::GxGDEW042Z15(GxIO& io, int8_t rst, int8_t busy)
|
||||
: GxEPD(GxGDEW042Z15_WIDTH, GxGDEW042Z15_HEIGHT), IO(io),
|
||||
_current_page(-1), _using_partial_mode(false), _diag_enabled(false),
|
||||
_rst(rst), _busy(busy)
|
||||
{
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPixel(int16_t x, int16_t y, uint16_t color)
|
||||
{
|
||||
if ((x < 0) || (x >= width()) || (y < 0) || (y >= height())) return;
|
||||
|
||||
// check rotation, move pixel around if necessary
|
||||
switch (getRotation())
|
||||
{
|
||||
case 1:
|
||||
swap(x, y);
|
||||
x = GxGDEW042Z15_WIDTH - x - 1;
|
||||
break;
|
||||
case 2:
|
||||
x = GxGDEW042Z15_WIDTH - x - 1;
|
||||
y = GxGDEW042Z15_HEIGHT - y - 1;
|
||||
break;
|
||||
case 3:
|
||||
swap(x, y);
|
||||
y = GxGDEW042Z15_HEIGHT - y - 1;
|
||||
break;
|
||||
}
|
||||
uint16_t i = x / 8 + y * GxGDEW042Z15_WIDTH / 8;
|
||||
if (_current_page < 0)
|
||||
{
|
||||
if (i >= sizeof(_black_buffer)) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
y -= _current_page * GxGDEW042Z15_PAGE_HEIGHT;
|
||||
if ((y < 0) || (y >= GxGDEW042Z15_PAGE_HEIGHT)) return;
|
||||
i = x / 8 + y * GxGDEW042Z15_WIDTH / 8;
|
||||
}
|
||||
|
||||
_black_buffer[i] = (_black_buffer[i] & (0xFF ^ (1 << (7 - x % 8)))); // white
|
||||
_red_buffer[i] = (_red_buffer[i] & (0xFF ^ (1 << (7 - x % 8)))); // white
|
||||
if (color == GxEPD_WHITE) return;
|
||||
else if (color == GxEPD_BLACK) _black_buffer[i] = (_black_buffer[i] | (1 << (7 - x % 8)));
|
||||
else if (color == GxEPD_RED) _red_buffer[i] = (_red_buffer[i] | (1 << (7 - x % 8)));
|
||||
else
|
||||
{
|
||||
if ((color & 0xF100) > (0xF100 / 2)) _red_buffer[i] = (_red_buffer[i] | (1 << (7 - x % 8)));
|
||||
else if ((((color & 0xF100) >> 11) + ((color & 0x07E0) >> 5) + (color & 0x001F)) < 3 * 255 / 2)
|
||||
{
|
||||
_black_buffer[i] = (_black_buffer[i] | (1 << (7 - x % 8)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::init(uint32_t serial_diag_bitrate)
|
||||
{
|
||||
if (serial_diag_bitrate > 0)
|
||||
{
|
||||
Serial.begin(serial_diag_bitrate);
|
||||
_diag_enabled = true;
|
||||
}
|
||||
IO.init();
|
||||
IO.setFrequency(4000000); // 4MHz
|
||||
if (_rst >= 0)
|
||||
{
|
||||
digitalWrite(_rst, HIGH);
|
||||
pinMode(_rst, OUTPUT);
|
||||
}
|
||||
pinMode(_busy, INPUT);
|
||||
fillScreen(GxEPD_WHITE);
|
||||
_current_page = -1;
|
||||
_using_partial_mode = false;
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::fillScreen(uint16_t color)
|
||||
{
|
||||
uint8_t black = 0x00;
|
||||
uint8_t red = 0x00;
|
||||
if (color == GxEPD_WHITE);
|
||||
else if (color == GxEPD_BLACK) black = 0xFF;
|
||||
else if (color == GxEPD_RED) red = 0xFF;
|
||||
else if ((color & 0xF100) > (0xF100 / 2)) red = 0xFF;
|
||||
else if ((((color & 0xF100) >> 11) + ((color & 0x07E0) >> 5) + (color & 0x001F)) < 3 * 255 / 2) black = 0xFF;
|
||||
for (uint16_t x = 0; x < sizeof(_black_buffer); x++)
|
||||
{
|
||||
_black_buffer[x] = black;
|
||||
_red_buffer[x] = red;
|
||||
}
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::update(void)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_using_partial_mode = false;
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
uint8_t data = i < sizeof(_black_buffer) ? _black_buffer[i] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
uint8_t data = i < sizeof(_red_buffer) ? _red_buffer[i] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("update");
|
||||
_sleep();
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawBitmap(const uint8_t *bitmap, uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color, int16_t mode)
|
||||
{
|
||||
if (mode & bm_default) mode |= bm_invert;
|
||||
drawBitmapBM(bitmap, x, y, w, h, color, mode);
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawExamplePicture(const uint8_t* black_bitmap, const uint8_t* red_bitmap, uint32_t black_size, uint32_t red_size)
|
||||
{
|
||||
drawPicture(black_bitmap, red_bitmap, black_size, red_size, bm_normal);
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPicture(const uint8_t* black_bitmap, const uint8_t* red_bitmap, uint32_t black_size, uint32_t red_size, int16_t mode)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
if (mode & bm_partial_update)
|
||||
{
|
||||
_using_partial_mode = true; // remember
|
||||
_wakeUp();
|
||||
// set full screen
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
_setPartialRamArea(0, 0, GxGDEW042Z15_WIDTH - 1, GxGDEW042Z15_HEIGHT - 1);
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
uint8_t data = 0xFF; // 0xFF is white
|
||||
if (i < black_size)
|
||||
{
|
||||
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||
data = pgm_read_byte(&black_bitmap[i]);
|
||||
#else
|
||||
data = black_bitmap[i];
|
||||
#endif
|
||||
if (mode & bm_invert) data = ~data;
|
||||
}
|
||||
IO.writeDataTransaction(data);
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
uint8_t data = 0xFF; // 0xFF is white
|
||||
if (i < red_size)
|
||||
{
|
||||
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||
data = pgm_read_byte(&red_bitmap[i]);
|
||||
#else
|
||||
data = red_bitmap[i];
|
||||
#endif
|
||||
if (mode & bm_invert) data = ~data;
|
||||
}
|
||||
IO.writeDataTransaction(data);
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawPicture");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
}
|
||||
else
|
||||
{
|
||||
_using_partial_mode = false;
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
uint8_t data = 0xFF; // white is 0xFF on device
|
||||
if (i < black_size)
|
||||
{
|
||||
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||
data = pgm_read_byte(&black_bitmap[i]);
|
||||
#else
|
||||
data = black_bitmap[i];
|
||||
#endif
|
||||
if (mode & bm_invert) data = ~data;
|
||||
}
|
||||
IO.writeDataTransaction(data);
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
uint8_t data = 0xFF; // white is 0xFF on device
|
||||
if (i < red_size)
|
||||
{
|
||||
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||
data = pgm_read_byte(&red_bitmap[i]);
|
||||
#else
|
||||
data = red_bitmap[i];
|
||||
#endif
|
||||
if (mode & bm_invert_red) data = ~data;
|
||||
}
|
||||
IO.writeDataTransaction(data);
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawPicture");
|
||||
_sleep();
|
||||
}
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawBitmap(const uint8_t *bitmap, uint32_t size, int16_t mode)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
if (mode & bm_default) mode |= bm_normal;
|
||||
if (mode & bm_partial_update)
|
||||
{
|
||||
_using_partial_mode = true; // remember
|
||||
_wakeUp();
|
||||
// set full screen
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
_setPartialRamArea(0, 0, GxGDEW042Z15_WIDTH - 1, GxGDEW042Z15_HEIGHT - 1);
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
uint8_t data = 0xFF; // white is 0xFF on device
|
||||
if (i < size)
|
||||
{
|
||||
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||
data = pgm_read_byte(&bitmap[i]);
|
||||
#else
|
||||
data = bitmap[i];
|
||||
#endif
|
||||
if (mode & bm_invert) data = ~data;
|
||||
}
|
||||
IO.writeDataTransaction(data);
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
IO.writeDataTransaction(0xFF); // 0xFF is white
|
||||
}
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawBitmap");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
}
|
||||
else
|
||||
{
|
||||
_using_partial_mode = false; // remember
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
uint8_t data = 0xFF; // white is 0xFF on device
|
||||
if (i < size)
|
||||
{
|
||||
#if defined(__AVR) || defined(ESP8266) || defined(ESP32)
|
||||
data = pgm_read_byte(&bitmap[i]);
|
||||
#else
|
||||
data = bitmap[i];
|
||||
#endif
|
||||
if (mode & bm_invert) data = ~data;
|
||||
}
|
||||
IO.writeDataTransaction(data);
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
IO.writeDataTransaction(0xFF); // 0xFF is white
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawBitmap");
|
||||
_sleep();
|
||||
}
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::eraseDisplay(bool using_partial_update)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
if (using_partial_update)
|
||||
{
|
||||
_using_partial_mode = true; // remember
|
||||
_wakeUp();
|
||||
// set full screen
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
_setPartialRamArea(0, 0, GxGDEW042Z15_WIDTH - 1, GxGDEW042Z15_HEIGHT - 1);
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
IO.writeDataTransaction(0xFF); // 0xFF is white
|
||||
}
|
||||
IO.writeCommandTransaction(0x13);
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
IO.writeDataTransaction(0xFF); // 0xFF is white
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("eraseDisplay");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
}
|
||||
else
|
||||
{
|
||||
_using_partial_mode = false; // remember
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
IO.writeDataTransaction(0xFF); // 0xFF is white
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
IO.writeDataTransaction(0xFF); // 0xFF is white
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("eraseDisplay");
|
||||
_sleep();
|
||||
}
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::updateWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h, bool using_rotation)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
if (using_rotation) _rotate(x, y, w, h);
|
||||
if (!_using_partial_mode) _wakeUp();
|
||||
_using_partial_mode = true;
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
_writeToWindow(x, y, x, y, w, h);
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("updateWindow");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::_writeToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h)
|
||||
{
|
||||
//Serial.printf("_writeToWindow(%d, %d, %d, %d, %d, %d)\n", xs, ys, xd, yd, w, h);
|
||||
// the screen limits are the hard limits
|
||||
if (xs >= GxGDEW042Z15_WIDTH) return;
|
||||
if (ys >= GxGDEW042Z15_HEIGHT) return;
|
||||
if (xd >= GxGDEW042Z15_WIDTH) return;
|
||||
if (yd >= GxGDEW042Z15_HEIGHT) return;
|
||||
uint16_t xde = gx_uint16_min(GxGDEW042Z15_WIDTH, xd + w) - 1;
|
||||
uint16_t yde = gx_uint16_min(GxGDEW042Z15_HEIGHT, yd + h) - 1;
|
||||
// soft limits, must send as many bytes as set by _setPartialRamArea
|
||||
uint16_t yse = ys + yde - yd; // inclusive
|
||||
uint16_t xss_d8 = xs / 8;
|
||||
uint16_t xse_d8 = xss_d8 + _setPartialRamArea(xd, yd, xde, yde); // exclusive
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (int16_t y1 = ys; y1 <= yse; y1++)
|
||||
{
|
||||
for (int16_t x1 = xss_d8; x1 < xse_d8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_black_buffer)) ? _black_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
delay(2);
|
||||
//_setPartialRamArea(xd, yd, xde, yde);
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (int16_t y1 = ys; y1 <= yse; y1++)
|
||||
{
|
||||
for (int16_t x1 = xss_d8; x1 < xse_d8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_red_buffer)) ? _red_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
#ifdef USE_PARTIAL_UPDATE_WORKAROUND
|
||||
_setPartialRamArea(0, 0, GxGDEW042Z15_WIDTH - 1, GxGDEW042Z15_HEIGHT - 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::updateToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h, bool using_rotation)
|
||||
{
|
||||
if (using_rotation)
|
||||
{
|
||||
switch (getRotation())
|
||||
{
|
||||
case 1:
|
||||
swap(xs, ys);
|
||||
swap(xd, yd);
|
||||
swap(w, h);
|
||||
xs = GxGDEW042Z15_WIDTH - xs - w;
|
||||
xd = GxGDEW042Z15_WIDTH - xd - w;
|
||||
break;
|
||||
case 2:
|
||||
xs = GxGDEW042Z15_WIDTH - xs - w;
|
||||
ys = GxGDEW042Z15_HEIGHT - ys - h;
|
||||
xd = GxGDEW042Z15_WIDTH - xd - w;
|
||||
yd = GxGDEW042Z15_HEIGHT - yd - h;
|
||||
break;
|
||||
case 3:
|
||||
swap(xs, ys);
|
||||
swap(xd, yd);
|
||||
swap(w, h);
|
||||
ys = GxGDEW042Z15_HEIGHT - ys - h;
|
||||
yd = GxGDEW042Z15_HEIGHT - yd - h;
|
||||
break;
|
||||
}
|
||||
}
|
||||
_wakeUp();
|
||||
_using_partial_mode = true;
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
_writeToWindow(xs, ys, xd, yd, w, h);
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("updateToWindow");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
delay(1000); // don't stress this display
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::powerDown()
|
||||
{
|
||||
_sleep();
|
||||
}
|
||||
|
||||
uint16_t GxGDEW042Z15::_setPartialRamArea(uint16_t x, uint16_t y, uint16_t xe, uint16_t ye)
|
||||
{
|
||||
x &= 0xFFF8; // byte boundary
|
||||
xe |= 0x0007; // byte boundary
|
||||
IO.writeCommandTransaction(0x90); // partial window
|
||||
IO.writeDataTransaction(x / 256);
|
||||
IO.writeDataTransaction(x % 256);
|
||||
IO.writeDataTransaction(xe / 256);
|
||||
IO.writeDataTransaction(xe % 256);
|
||||
IO.writeDataTransaction(y / 256);
|
||||
IO.writeDataTransaction(y % 256);
|
||||
IO.writeDataTransaction(ye / 256);
|
||||
IO.writeDataTransaction(ye % 256);
|
||||
//IO.writeDataTransaction(0x01); // distortion on full right half
|
||||
IO.writeDataTransaction(0x00); // distortion on right half
|
||||
uint16_t xb = x / 8; // first byte (containing first bit)
|
||||
uint16_t xeb = xe / 8; // last byte (containing last bit)
|
||||
return xeb - xb + 1; // number of bytes to transfer
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::_waitWhileBusy(const char* comment)
|
||||
{
|
||||
unsigned long start = micros();
|
||||
while (1)
|
||||
{ //=0 BUSY
|
||||
if (digitalRead(_busy) == 1) break;
|
||||
delay(1);
|
||||
if (micros() - start > GxGDEW042Z15_BUSY_TIMEOUT)
|
||||
{
|
||||
if (_diag_enabled) Serial.println("Busy Timeout!");
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (comment)
|
||||
{
|
||||
#if !defined(DISABLE_DIAGNOSTIC_OUTPUT)
|
||||
if (_diag_enabled)
|
||||
{
|
||||
unsigned long elapsed = micros() - start;
|
||||
Serial.print(comment);
|
||||
Serial.print(" : ");
|
||||
Serial.println(elapsed);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
(void) start;
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::_wakeUp(void)
|
||||
{
|
||||
if (_rst >= 0)
|
||||
{
|
||||
digitalWrite(_rst, 0);
|
||||
delay(10);
|
||||
digitalWrite(_rst, 1);
|
||||
delay(10);
|
||||
}
|
||||
IO.writeCommandTransaction(0x06); //boost
|
||||
IO.writeDataTransaction (0x17);
|
||||
IO.writeDataTransaction (0x17);
|
||||
IO.writeDataTransaction (0x17);
|
||||
IO.writeCommandTransaction(0x04);
|
||||
_waitWhileBusy("Power On");
|
||||
IO.writeCommandTransaction(0x00);
|
||||
IO.writeDataTransaction(0x0f); // LUT from OTP Pixel with B/W/R.
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::_sleep(void)
|
||||
{
|
||||
IO.writeCommandTransaction(0x50); // border floating
|
||||
IO.writeDataTransaction(0x17);
|
||||
IO.writeCommandTransaction(0x02); // power off
|
||||
_waitWhileBusy("Power Off");
|
||||
if (_rst >= 0)
|
||||
{
|
||||
IO.writeCommandTransaction(0x07); // deep sleep
|
||||
IO.writeDataTransaction(0xA5);
|
||||
}
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPaged(void (*drawCallback)(void))
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_using_partial_mode = false;
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback();
|
||||
for (int16_t y1 = 0; y1 < GxGDEW042Z15_PAGE_HEIGHT; y1++)
|
||||
{
|
||||
for (int16_t x1 = 0; x1 < GxGDEW042Z15_WIDTH / 8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_black_buffer)) ? _black_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback();
|
||||
for (int16_t y1 = 0; y1 < GxGDEW042Z15_PAGE_HEIGHT; y1++)
|
||||
{
|
||||
for (int16_t x1 = 0; x1 < GxGDEW042Z15_WIDTH / 8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_red_buffer)) ? _red_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
}
|
||||
_current_page = -1;
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawPaged");
|
||||
_sleep();
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPaged(void (*drawCallback)(uint32_t), uint32_t p)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_using_partial_mode = false;
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p);
|
||||
for (int16_t y1 = 0; y1 < GxGDEW042Z15_PAGE_HEIGHT; y1++)
|
||||
{
|
||||
for (int16_t x1 = 0; x1 < GxGDEW042Z15_WIDTH / 8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_black_buffer)) ? _black_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p);
|
||||
for (int16_t y1 = 0; y1 < GxGDEW042Z15_PAGE_HEIGHT; y1++)
|
||||
{
|
||||
for (int16_t x1 = 0; x1 < GxGDEW042Z15_WIDTH / 8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_red_buffer)) ? _red_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
}
|
||||
_current_page = -1;
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawPaged");
|
||||
_sleep();
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPaged(void (*drawCallback)(const void*), const void* p)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_using_partial_mode = false;
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p);
|
||||
for (int16_t y1 = 0; y1 < GxGDEW042Z15_PAGE_HEIGHT; y1++)
|
||||
{
|
||||
for (int16_t x1 = 0; x1 < GxGDEW042Z15_WIDTH / 8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_black_buffer)) ? _black_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p);
|
||||
for (int16_t y1 = 0; y1 < GxGDEW042Z15_PAGE_HEIGHT; y1++)
|
||||
{
|
||||
for (int16_t x1 = 0; x1 < GxGDEW042Z15_WIDTH / 8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_red_buffer)) ? _red_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
}
|
||||
_current_page = -1;
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawPaged");
|
||||
_sleep();
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPaged(void (*drawCallback)(const void*, const void*), const void* p1, const void* p2)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_using_partial_mode = false;
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p1, p2);
|
||||
for (int16_t y1 = 0; y1 < GxGDEW042Z15_PAGE_HEIGHT; y1++)
|
||||
{
|
||||
for (int16_t x1 = 0; x1 < GxGDEW042Z15_WIDTH / 8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_black_buffer)) ? _black_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p1, p2);
|
||||
for (int16_t y1 = 0; y1 < GxGDEW042Z15_PAGE_HEIGHT; y1++)
|
||||
{
|
||||
for (int16_t x1 = 0; x1 < GxGDEW042Z15_WIDTH / 8; x1++)
|
||||
{
|
||||
uint16_t idx = y1 * (GxGDEW042Z15_WIDTH / 8) + x1;
|
||||
uint8_t data = (idx < sizeof(_red_buffer)) ? _red_buffer[idx] : 0x00;
|
||||
IO.writeDataTransaction(~data);
|
||||
}
|
||||
}
|
||||
}
|
||||
_current_page = -1;
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawPaged");
|
||||
_sleep();
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::_rotate(uint16_t& x, uint16_t& y, uint16_t& w, uint16_t& h)
|
||||
{
|
||||
switch (getRotation())
|
||||
{
|
||||
case 1:
|
||||
swap(x, y);
|
||||
swap(w, h);
|
||||
x = GxGDEW042Z15_WIDTH - x - w;
|
||||
break;
|
||||
case 2:
|
||||
x = GxGDEW042Z15_WIDTH - x - w;
|
||||
y = GxGDEW042Z15_HEIGHT - y - h;
|
||||
break;
|
||||
case 3:
|
||||
swap(x, y);
|
||||
swap(w, h);
|
||||
y = GxGDEW042Z15_HEIGHT - y - h;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPagedToWindow(void (*drawCallback)(void), uint16_t x, uint16_t y, uint16_t w, uint16_t h)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_rotate(x, y, w, h);
|
||||
if (!_using_partial_mode)
|
||||
{
|
||||
eraseDisplay(false);
|
||||
eraseDisplay(true);
|
||||
}
|
||||
_using_partial_mode = true;
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEW042Z15_PAGE_HEIGHT);
|
||||
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEW042Z15_PAGE_HEIGHT);
|
||||
if (yde > yds)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback();
|
||||
uint16_t ys = yds % GxGDEW042Z15_PAGE_HEIGHT;
|
||||
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("updateToWindow");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
_current_page = -1;
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPagedToWindow(void (*drawCallback)(uint32_t), uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint32_t p)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_rotate(x, y, w, h);
|
||||
if (!_using_partial_mode)
|
||||
{
|
||||
eraseDisplay(false);
|
||||
eraseDisplay(true);
|
||||
}
|
||||
_using_partial_mode = true;
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEW042Z15_PAGE_HEIGHT);
|
||||
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEW042Z15_PAGE_HEIGHT);
|
||||
if (yde > yds)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p);
|
||||
uint16_t ys = yds % GxGDEW042Z15_PAGE_HEIGHT;
|
||||
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("updateToWindow");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
_current_page = -1;
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPagedToWindow(void (*drawCallback)(const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void* p)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_rotate(x, y, w, h);
|
||||
if (!_using_partial_mode)
|
||||
{
|
||||
eraseDisplay(false);
|
||||
eraseDisplay(true);
|
||||
}
|
||||
_using_partial_mode = true;
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEW042Z15_PAGE_HEIGHT);
|
||||
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEW042Z15_PAGE_HEIGHT);
|
||||
if (yde > yds)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p);
|
||||
uint16_t ys = yds % GxGDEW042Z15_PAGE_HEIGHT;
|
||||
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("updateToWindow");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
_current_page = -1;
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawPagedToWindow(void (*drawCallback)(const void*, const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void* p1, const void* p2)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_rotate(x, y, w, h);
|
||||
if (!_using_partial_mode)
|
||||
{
|
||||
eraseDisplay(false);
|
||||
eraseDisplay(true);
|
||||
}
|
||||
_using_partial_mode = true;
|
||||
IO.writeCommandTransaction(0x91); // partial in
|
||||
for (_current_page = 0; _current_page < GxGDEW042Z15_PAGES; _current_page++)
|
||||
{
|
||||
uint16_t yds = gx_uint16_max(y, _current_page * GxGDEW042Z15_PAGE_HEIGHT);
|
||||
uint16_t yde = gx_uint16_min(y + h, (_current_page + 1) * GxGDEW042Z15_PAGE_HEIGHT);
|
||||
if (yde > yds)
|
||||
{
|
||||
fillScreen(GxEPD_WHITE);
|
||||
drawCallback(p1, p2);
|
||||
uint16_t ys = yds % GxGDEW042Z15_PAGE_HEIGHT;
|
||||
_writeToWindow(x, ys, x, yds, w, yde - yds);
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("updateToWindow");
|
||||
IO.writeCommandTransaction(0x92); // partial out
|
||||
_current_page = -1;
|
||||
}
|
||||
|
||||
void GxGDEW042Z15::drawCornerTest(uint8_t em)
|
||||
{
|
||||
if (_current_page != -1) return;
|
||||
_using_partial_mode = false;
|
||||
_wakeUp();
|
||||
IO.writeCommandTransaction(0x10); // black
|
||||
for (uint32_t y = 0; y < GxGDEW042Z15_HEIGHT; y++)
|
||||
{
|
||||
for (uint32_t x = 0; x < GxGDEW042Z15_WIDTH / 8; x++)
|
||||
{
|
||||
uint8_t data = 0xFF;
|
||||
if ((x < 1) && (y < 8)) data = 0x00;
|
||||
if ((x > GxGDEW042Z15_WIDTH / 8 - 3) && (y < 16)) data = 0x00;
|
||||
if ((x > GxGDEW042Z15_WIDTH / 8 - 4) && (y > GxGDEW042Z15_HEIGHT - 25)) data = 0x00;
|
||||
if ((x < 4) && (y > GxGDEW042Z15_HEIGHT - 33)) data = 0x00;
|
||||
IO.writeDataTransaction(data);
|
||||
}
|
||||
}
|
||||
IO.writeCommandTransaction(0x13); // red
|
||||
for (uint32_t i = 0; i < GxGDEW042Z15_BUFFER_SIZE; i++)
|
||||
{
|
||||
IO.writeDataTransaction(0xFF); // 0xFF is white
|
||||
}
|
||||
IO.writeCommandTransaction(0x12); //display refresh
|
||||
_waitWhileBusy("drawCornerTest");
|
||||
_sleep();
|
||||
}
|
||||
|
@@ -1,117 +0,0 @@
|
||||
// class GxGDEW042Z15 : Display class for GDEW042Z15 e-Paper from Dalian Good Display Co., Ltd.: www.good-display.com
|
||||
//
|
||||
// based on Demo Example from Good Display, available here: http://www.good-display.com/download_detail/downloadsId=515.html
|
||||
// Controller: IL0398 : http://www.good-display.com/download_detail/downloadsId=537.html
|
||||
//
|
||||
// Author : J-M Zingg
|
||||
//
|
||||
// Version : see library.properties
|
||||
//
|
||||
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||
//
|
||||
// Library: https://github.com/ZinggJM/GxEPD
|
||||
|
||||
#ifndef _GxGDEW042Z15_H_
|
||||
#define _GxGDEW042Z15_H_
|
||||
|
||||
#include "../GxEPD.h"
|
||||
|
||||
#define GxGDEW042Z15_WIDTH 400
|
||||
#define GxGDEW042Z15_HEIGHT 300
|
||||
|
||||
#define GxGDEW042Z15_BUFFER_SIZE (uint32_t(GxGDEW042Z15_WIDTH) * uint32_t(GxGDEW042Z15_HEIGHT) / 8)
|
||||
|
||||
// divisor for AVR, should be factor of GxGDEW042Z15_HEIGHT
|
||||
#define GxGDEW042Z15_PAGES 30
|
||||
|
||||
#define GxGDEW042Z15_PAGE_HEIGHT (GxGDEW042Z15_HEIGHT / GxGDEW042Z15_PAGES)
|
||||
#define GxGDEW042Z15_PAGE_SIZE (GxGDEW042Z15_BUFFER_SIZE / GxGDEW042Z15_PAGES)
|
||||
|
||||
class GxGDEW042Z15 : public GxEPD
|
||||
{
|
||||
public:
|
||||
#if defined(ESP8266)
|
||||
//GxGDEW042Z15(GxIO& io, int8_t rst = D4, int8_t busy = D2);
|
||||
// use pin numbers, other ESP8266 than Wemos may not use Dx names
|
||||
GxGDEW042Z15(GxIO& io, int8_t rst = 2, int8_t busy = 4);
|
||||
#else
|
||||
GxGDEW042Z15(GxIO& io, int8_t rst = 9, int8_t busy = 7);
|
||||
#endif
|
||||
void drawPixel(int16_t x, int16_t y, uint16_t color);
|
||||
void init(uint32_t serial_diag_bitrate = 0); // = 0 : disabled
|
||||
void fillScreen(uint16_t color); // 0x0 black, >0x0 white, to buffer
|
||||
void update(void);
|
||||
// to buffer, may be cropped, drawPixel() used, update needed
|
||||
void drawBitmap(const uint8_t *bitmap, uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color, int16_t mode = bm_normal);
|
||||
// to full screen, filled with white if size is less, no update needed, black /white / red, for example bitmaps
|
||||
void drawExamplePicture(const uint8_t* black_bitmap, const uint8_t* red_bitmap, uint32_t black_size, uint32_t red_size);
|
||||
// to full screen, filled with white if size is less, no update needed, black /white / red, general version
|
||||
void drawPicture(const uint8_t* black_bitmap, const uint8_t* red_bitmap, uint32_t black_size, uint32_t red_size, int16_t mode = bm_normal);
|
||||
// to full screen, filled with white if size is less, no update needed
|
||||
void drawBitmap(const uint8_t *bitmap, uint32_t size, int16_t mode = bm_normal); // only bm_normal, bm_invert, bm_partial_update modes implemented
|
||||
void eraseDisplay(bool using_partial_update = false);
|
||||
// partial update of rectangle from buffer to screen, does not power off
|
||||
void updateWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h, bool using_rotation = true);
|
||||
// partial update of rectangle at (xs,ys) from buffer to screen at (xd,yd), does not power off
|
||||
void updateToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h, bool using_rotation = true);
|
||||
// terminate cleanly updateWindow or updateToWindow before removing power or long delays
|
||||
void powerDown();
|
||||
// paged drawing, for limited RAM, drawCallback() is called GxGDEW042Z15_PAGES times
|
||||
// each call of drawCallback() should draw the same
|
||||
void drawPaged(void (*drawCallback)(void));
|
||||
void drawPaged(void (*drawCallback)(uint32_t), uint32_t);
|
||||
void drawPaged(void (*drawCallback)(const void*), const void*);
|
||||
void drawPaged(void (*drawCallback)(const void*, const void*), const void*, const void*);
|
||||
// paged drawing to screen rectangle at (x,y) using partial update
|
||||
void drawPagedToWindow(void (*drawCallback)(void), uint16_t x, uint16_t y, uint16_t w, uint16_t h);
|
||||
void drawPagedToWindow(void (*drawCallback)(uint32_t), uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint32_t);
|
||||
void drawPagedToWindow(void (*drawCallback)(const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void*);
|
||||
void drawPagedToWindow(void (*drawCallback)(const void*, const void*), uint16_t x, uint16_t y, uint16_t w, uint16_t h, const void*, const void*);
|
||||
void drawCornerTest(uint8_t em = 0);
|
||||
private:
|
||||
template <typename T> static inline void
|
||||
swap(T& a, T& b)
|
||||
{
|
||||
T t = a;
|
||||
a = b;
|
||||
b = t;
|
||||
}
|
||||
void _writeToWindow(uint16_t xs, uint16_t ys, uint16_t xd, uint16_t yd, uint16_t w, uint16_t h);
|
||||
uint16_t _setPartialRamArea(uint16_t x, uint16_t y, uint16_t xe, uint16_t ye);
|
||||
void _wakeUp();
|
||||
void _sleep(void);
|
||||
void _waitWhileBusy(const char* comment = 0);
|
||||
void _rotate(uint16_t& x, uint16_t& y, uint16_t& w, uint16_t& h);
|
||||
private:
|
||||
#if defined(__AVR)
|
||||
uint8_t _black_buffer[GxGDEW042Z15_PAGE_SIZE];
|
||||
uint8_t _red_buffer[GxGDEW042Z15_PAGE_SIZE];
|
||||
#else
|
||||
uint8_t _black_buffer[GxGDEW042Z15_BUFFER_SIZE];
|
||||
uint8_t _red_buffer[GxGDEW042Z15_BUFFER_SIZE];
|
||||
#endif
|
||||
GxIO& IO;
|
||||
int16_t _current_page;
|
||||
bool _using_partial_mode;
|
||||
bool _diag_enabled;
|
||||
int8_t _rst;
|
||||
int8_t _busy;
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
public:
|
||||
// the compiler of these packages has a problem with signature matching to base classes
|
||||
void drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)
|
||||
{
|
||||
Adafruit_GFX::drawBitmap(x, y, bitmap, w, h, color);
|
||||
};
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifndef GxEPD_Class
|
||||
#define GxEPD_Class GxGDEW042Z15
|
||||
#define GxEPD_WIDTH GxGDEW042Z15_WIDTH
|
||||
#define GxEPD_HEIGHT GxGDEW042Z15_HEIGHT
|
||||
#define GxEPD_BitmapExamples <GxGDEW042Z15/BitmapExamples.h>
|
||||
#define GxEPD_BitmapExamplesQ "GxGDEW042Z15/BitmapExamples.h"
|
||||
#endif
|
||||
|
||||
#endif
|
@@ -1,45 +0,0 @@
|
||||
// created by Jean-Marc Zingg to be the GxIO io base class for the GxTFT library
|
||||
//
|
||||
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||
|
||||
#include "GxIO.h"
|
||||
|
||||
uint8_t GxIO::transferTransaction(uint8_t d)
|
||||
{
|
||||
writeDataTransaction(d);
|
||||
return readDataTransaction();
|
||||
}
|
||||
|
||||
uint16_t GxIO::transfer16Transaction(uint16_t d)
|
||||
{
|
||||
writeData16Transaction(d);
|
||||
return readData16Transaction();
|
||||
}
|
||||
|
||||
uint8_t GxIO::readDataTransaction()
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
|
||||
uint16_t GxIO::readData16Transaction()
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
|
||||
uint8_t GxIO::readData()
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
|
||||
uint16_t GxIO::readData16()
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
|
||||
uint32_t GxIO::readRawData32(uint8_t part)
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -1,42 +0,0 @@
|
||||
// created by Jean-Marc Zingg to be the GxIO io base class for the GxTFT library
|
||||
//
|
||||
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||
|
||||
#ifndef _GxIO_H_
|
||||
#define _GxIO_H_
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
|
||||
class GxIO
|
||||
{
|
||||
public:
|
||||
GxIO() {};
|
||||
const char* name = "GxIO";
|
||||
virtual void reset();
|
||||
virtual void init();
|
||||
virtual void setFrequency(uint32_t freq){}; // for SPI
|
||||
virtual void setClockDivider(uint32_t clockDiv){}; // for SPI
|
||||
virtual uint8_t transferTransaction(uint8_t d);
|
||||
virtual uint16_t transfer16Transaction(uint16_t d);
|
||||
virtual uint8_t readDataTransaction();
|
||||
virtual uint16_t readData16Transaction();
|
||||
virtual uint8_t readData();
|
||||
virtual uint16_t readData16();
|
||||
virtual uint32_t readRawData32(uint8_t part); // debug purpose
|
||||
virtual void writeCommandTransaction(uint8_t c);
|
||||
virtual void writeDataTransaction(uint8_t d);
|
||||
virtual void writeData16Transaction(uint16_t d, uint32_t num = 1);
|
||||
virtual void writeCommand(uint8_t c);
|
||||
virtual void writeData(uint8_t d);
|
||||
virtual void writeData(uint8_t* d, uint32_t num);
|
||||
virtual void writeData16(uint16_t d, uint32_t num = 1);
|
||||
virtual void writeAddrMSBfirst(uint16_t d);
|
||||
virtual void startTransaction();
|
||||
virtual void endTransaction();
|
||||
virtual void selectRegister(bool rs_low) {}; // for generalized readData & writeData (RA8875)
|
||||
virtual void setBackLight(bool lit);
|
||||
};
|
||||
|
||||
#endif
|
@@ -1,213 +0,0 @@
|
||||
// created by Jean-Marc Zingg to be the GxIO_SPI io class for the GxEPD library
|
||||
//
|
||||
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||
//
|
||||
|
||||
#include "GxIO_SPI.h"
|
||||
|
||||
#if defined(PARTICLE)
|
||||
// transfer16 is not used by GxEPD
|
||||
#define transfer16 transfer
|
||||
#endif
|
||||
|
||||
GxIO_SPI::GxIO_SPI(SPIClass& spi, int8_t cs, int8_t dc, int8_t rst, int8_t bl) :
|
||||
_spi(spi), _spi_settings(4000000, MSBFIRST, SPI_MODE0),
|
||||
_cs(cs), _dc(dc), _rst(rst), _bl(bl)
|
||||
{
|
||||
}
|
||||
|
||||
void GxIO_SPI::reset()
|
||||
{
|
||||
if (_rst >= 0)
|
||||
{
|
||||
delay(20);
|
||||
digitalWrite(_rst, LOW);
|
||||
delay(20);
|
||||
digitalWrite(_rst, HIGH);
|
||||
delay(200);
|
||||
}
|
||||
}
|
||||
|
||||
void GxIO_SPI::init()
|
||||
{
|
||||
if (_cs >= 0)
|
||||
{
|
||||
digitalWrite(_cs, HIGH);
|
||||
pinMode(_cs, OUTPUT);
|
||||
}
|
||||
if (_dc >= 0)
|
||||
{
|
||||
digitalWrite(_dc, HIGH);
|
||||
pinMode(_dc, OUTPUT);
|
||||
}
|
||||
if (_rst >= 0)
|
||||
{
|
||||
digitalWrite(_rst, HIGH);
|
||||
pinMode(_rst, OUTPUT);
|
||||
}
|
||||
if (_bl >= 0)
|
||||
{
|
||||
digitalWrite(_bl, HIGH);
|
||||
pinMode(_bl, OUTPUT);
|
||||
}
|
||||
reset();
|
||||
_spi.begin();
|
||||
if (_dc == MISO) // may be overridden, TTGO T5 V2.66
|
||||
{
|
||||
pinMode(_dc, OUTPUT);
|
||||
}
|
||||
}
|
||||
|
||||
void GxIO_SPI::setFrequency(uint32_t freq)
|
||||
{
|
||||
_spi_settings = SPISettings(freq, MSBFIRST, SPI_MODE0);
|
||||
}
|
||||
|
||||
uint8_t GxIO_SPI::transferTransaction(uint8_t d)
|
||||
{
|
||||
_spi.beginTransaction(_spi_settings);
|
||||
if (_cs >= 0) digitalWrite(_cs, LOW);
|
||||
uint8_t rv = _spi.transfer(d);
|
||||
if (_cs >= 0) digitalWrite(_cs, HIGH);
|
||||
_spi.endTransaction();
|
||||
return rv;
|
||||
}
|
||||
|
||||
uint16_t GxIO_SPI::transfer16Transaction(uint16_t d)
|
||||
{
|
||||
_spi.beginTransaction(_spi_settings);
|
||||
if (_cs >= 0) digitalWrite(_cs, LOW);
|
||||
uint16_t rv = _spi.transfer16(d);
|
||||
if (_cs >= 0) digitalWrite(_cs, HIGH);
|
||||
_spi.endTransaction();
|
||||
return rv;
|
||||
}
|
||||
|
||||
uint8_t GxIO_SPI::readDataTransaction()
|
||||
{
|
||||
_spi.beginTransaction(_spi_settings);
|
||||
if (_cs >= 0) digitalWrite(_cs, LOW);
|
||||
uint8_t rv = _spi.transfer(0xFF);
|
||||
if (_cs >= 0) digitalWrite(_cs, HIGH);
|
||||
_spi.endTransaction();
|
||||
return rv;
|
||||
}
|
||||
|
||||
uint16_t GxIO_SPI::readData16Transaction()
|
||||
{
|
||||
_spi.beginTransaction(_spi_settings);
|
||||
if (_cs >= 0) digitalWrite(_cs, LOW);
|
||||
uint16_t rv = _spi.transfer16(0xFFFF);
|
||||
if (_cs >= 0) digitalWrite(_cs, HIGH);
|
||||
_spi.endTransaction();
|
||||
return rv;
|
||||
}
|
||||
|
||||
uint8_t GxIO_SPI::readData()
|
||||
{
|
||||
uint8_t rv = _spi.transfer(0xFF);
|
||||
return rv;
|
||||
}
|
||||
|
||||
uint16_t GxIO_SPI::readData16()
|
||||
{
|
||||
uint16_t rv = _spi.transfer16(0xFFFF);
|
||||
return rv;
|
||||
}
|
||||
|
||||
void GxIO_SPI::writeCommandTransaction(uint8_t c)
|
||||
{
|
||||
_spi.beginTransaction(_spi_settings);
|
||||
if (_dc >= 0) digitalWrite(_dc, LOW);
|
||||
if (_cs >= 0) digitalWrite(_cs, LOW);
|
||||
_spi.transfer(c);
|
||||
if (_cs >= 0) digitalWrite(_cs, HIGH);
|
||||
if (_dc >= 0) digitalWrite(_dc, HIGH);
|
||||
_spi.endTransaction();
|
||||
}
|
||||
|
||||
void GxIO_SPI::writeDataTransaction(uint8_t d)
|
||||
{
|
||||
_spi.beginTransaction(_spi_settings);
|
||||
if (_cs >= 0) digitalWrite(_cs, LOW);
|
||||
_spi.transfer(d);
|
||||
if (_cs >= 0) digitalWrite(_cs, HIGH);
|
||||
_spi.endTransaction();
|
||||
}
|
||||
|
||||
void GxIO_SPI::writeData16Transaction(uint16_t d, uint32_t num)
|
||||
{
|
||||
_spi.beginTransaction(_spi_settings);
|
||||
if (_cs >= 0) digitalWrite(_cs, LOW);
|
||||
writeData16(d, num);
|
||||
if (_cs >= 0) digitalWrite(_cs, HIGH);
|
||||
_spi.endTransaction();
|
||||
}
|
||||
|
||||
void GxIO_SPI::writeCommand(uint8_t c)
|
||||
{
|
||||
if (_dc >= 0) digitalWrite(_dc, LOW);
|
||||
_spi.transfer(c);
|
||||
if (_dc >= 0) digitalWrite(_dc, HIGH);
|
||||
}
|
||||
|
||||
void GxIO_SPI::writeData(uint8_t d)
|
||||
{
|
||||
_spi.transfer(d);
|
||||
}
|
||||
|
||||
void GxIO_SPI::writeData(uint8_t* d, uint32_t num)
|
||||
{
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
_spi.writeBytes(d, num);
|
||||
#else
|
||||
while (num > 0)
|
||||
{
|
||||
_spi.transfer(*d);
|
||||
d++;
|
||||
num--;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void GxIO_SPI::writeData16(uint16_t d, uint32_t num)
|
||||
{
|
||||
#if defined(ESP8266) || defined(ESP32)
|
||||
uint8_t b[2] = {uint8_t(d >> 8), uint8_t(d)};
|
||||
_spi.writePattern(b, 2, num);
|
||||
#else
|
||||
while (num > 0)
|
||||
{
|
||||
_spi.transfer16(d);
|
||||
num--;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void GxIO_SPI::writeAddrMSBfirst(uint16_t d)
|
||||
{
|
||||
_spi.transfer(d >> 8);
|
||||
_spi.transfer(d & 0xFF);
|
||||
}
|
||||
|
||||
void GxIO_SPI::startTransaction()
|
||||
{
|
||||
_spi.beginTransaction(_spi_settings);
|
||||
if (_cs >= 0) digitalWrite(_cs, LOW);
|
||||
}
|
||||
|
||||
void GxIO_SPI::endTransaction()
|
||||
{
|
||||
if (_cs >= 0) digitalWrite(_cs, HIGH);
|
||||
_spi.endTransaction();
|
||||
}
|
||||
|
||||
void GxIO_SPI::selectRegister(bool rs_low)
|
||||
{
|
||||
if (_dc >= 0) digitalWrite(_dc, (rs_low ? LOW : HIGH));
|
||||
}
|
||||
|
||||
void GxIO_SPI::setBackLight(bool lit)
|
||||
{
|
||||
if (_bl >= 0) digitalWrite(_bl, (lit ? HIGH : LOW));
|
||||
}
|
@@ -1,45 +0,0 @@
|
||||
// created by Jean-Marc Zingg to be the GxIO_SPI io class for the GxEPD library
|
||||
//
|
||||
// License: GNU GENERAL PUBLIC LICENSE V3, see LICENSE
|
||||
|
||||
#ifndef _GxIO_SPI_H_
|
||||
#define _GxIO_SPI_H_
|
||||
|
||||
#include <SPI.h>
|
||||
#include "../GxIO.h"
|
||||
|
||||
class GxIO_SPI : public GxIO
|
||||
{
|
||||
public:
|
||||
GxIO_SPI(SPIClass& spi, int8_t cs, int8_t dc, int8_t rst = -1, int8_t bl = -1);
|
||||
const char* name = "GxIO_SPI";
|
||||
void reset();
|
||||
void init();
|
||||
void setFrequency(uint32_t freq); // for SPI
|
||||
uint8_t transferTransaction(uint8_t d);
|
||||
uint16_t transfer16Transaction(uint16_t d);
|
||||
uint8_t readDataTransaction();
|
||||
uint16_t readData16Transaction();
|
||||
uint8_t readData();
|
||||
uint16_t readData16();
|
||||
void writeCommandTransaction(uint8_t c);
|
||||
void writeDataTransaction(uint8_t d);
|
||||
void writeData16Transaction(uint16_t d, uint32_t num = 1);
|
||||
void writeCommand(uint8_t c);
|
||||
void writeData(uint8_t d);
|
||||
void writeData(uint8_t* d, uint32_t num);
|
||||
void writeData16(uint16_t d, uint32_t num = 1);
|
||||
void writeAddrMSBfirst(uint16_t d);
|
||||
void startTransaction();
|
||||
void endTransaction();
|
||||
void selectRegister(bool rs_low); // for generalized readData & writeData (RA8875)
|
||||
void setBackLight(bool lit);
|
||||
protected:
|
||||
SPIClass& _spi;
|
||||
SPISettings _spi_settings;
|
||||
int8_t _cs, _dc, _rst, _bl; // Control lines
|
||||
};
|
||||
|
||||
#define GxIO_Class GxIO_SPI
|
||||
|
||||
#endif
|
@@ -14,7 +14,7 @@
|
||||
#include "led_strip.h"
|
||||
#include "sdkconfig.h"
|
||||
|
||||
#include "ePaper.h"
|
||||
//#include "ePaper.h"
|
||||
|
||||
static const char *TAG = "ESP32C3 EPD";
|
||||
|
||||
|
@@ -1,339 +0,0 @@
|
||||
#include "GxEPD.h"
|
||||
#include "GxGDEW042Z15/GxGDEW042Z15.h" // 4.2" b/w/r
|
||||
//#include <GxGDEW029Z10/GxGDEW029Z10.h> // 2.9" b/w/r
|
||||
//#include <GxGDEW029Z10/GxGDEW029Z10.h>
|
||||
//#include <GxDEPG0290BS/DEPG0290BS.h>
|
||||
//#include <GxDEPG0290BS/GxDEPG0290BS.h>
|
||||
//#include <GxGDEP015OC1/GxGDEP015OC1.h>
|
||||
#include GxEPD_BitmapExamples
|
||||
// FreeFonts from Adafruit_GFX
|
||||
#include "Fonts/FreeMono9pt7b.h"
|
||||
#include "Fonts/FreeMonoBold9pt7b.h"
|
||||
#include "Fonts/FreeMonoBold12pt7b.h"
|
||||
#include "Fonts/FreeMonoBold18pt7b.h"
|
||||
#include "Fonts/FreeMonoBold24pt7b.h"
|
||||
#include "Fonts/Picopixel.h"
|
||||
#include "Fonts/TomThumb.h"
|
||||
#include "GxIO/GxIO_SPI/GxIO_SPI.h"
|
||||
#include "GxIO/GxIO.h"
|
||||
//#include <SD.h>
|
||||
#include <SPI.h>
|
||||
|
||||
//#if defined(ESP8266)
|
||||
//GxIO_Class io(SPI, /*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2); // arbitrary selection of D3(=0), D4(=2), selected for default of GxEPD_Class
|
||||
//GxEPD_Class display(io, /*RST=D4*/ 2, /*BUSY=D2*/ 4); // default selection of D4(=2), D2(=4)
|
||||
|
||||
|
||||
//#elif defined(ESP32C3)
|
||||
/* ========================================================
|
||||
DO NOT CHANGE THE ASSIGNED PINS BELOW
|
||||
BUSY = GPIO3
|
||||
RST = GPIO2
|
||||
DC = GPIO1
|
||||
CS = GPIO7 (SS)
|
||||
CLK = GPIO4 (SCK)
|
||||
DIN = GPIO6 (MOSI)
|
||||
*/
|
||||
GxIO_Class io(SPI, /*CS=5*/ 7, /*DC=*/ 1, /*RST=*/ 2); // arbitrary selection of 17, 16
|
||||
GxEPD_Class display(io, /*RST=*/ 2, /*BUSY=*/ 3); // arbitrary selection of (16), 4
|
||||
//GxIO_Class io(SPI, SS, 22, 21);
|
||||
//GxEPD_Class display(io, 16, 4);
|
||||
|
||||
//#elif defined(ARDUINO_ARCH_SAMD)
|
||||
//GxIO_Class io(SPI, /*CS=*/ 4, /*DC=*/ 7, /*RST=*/ 6);
|
||||
//GxEPD_Class display(io, /*RST=*/ 6, /*BUSY=*/ 5);
|
||||
|
||||
//#elif defined(ARDUINO_GENERIC_STM32F103C) && defined(MCU_STM32F103C8)
|
||||
//GxIO_Class io(SPI, /*CS=*/ SS, /*DC=*/ 3, /*RST=*/ 2);
|
||||
//GxEPD_Class display(io, /*RST=*/ 2, /*BUSY=*/ 1);
|
||||
|
||||
//#elif defined(ARDUINO_GENERIC_STM32F103V) && defined(MCU_STM32F103VB)
|
||||
//GxIO_Class io(SPI, /*CS=*/ SS, /*DC=*/ PE15, /*RST=*/ PE14); // DC, RST as wired by DESPI-M01
|
||||
//GxEPD_Class display(io, /*RST=*/ PE14, /*BUSY=*/ PE13); // RST, BUSY as wired by DESPI-M01
|
||||
|
||||
//#elif defined(ARDUINO_AVR_MEGA2560)
|
||||
|
||||
// select one, depending on your CS connection
|
||||
//GxIO_Class io(SPI, /*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9); // arbitrary selection of 8, 9 selected for default of GxEPD_Class
|
||||
//GxIO_Class io(SPI, /*CS=*/ 10, /*DC=*/ 8, /*RST=*/ 9); // arbitrary selection of 8, 9, CS on 10 (for CS same as on UNO, for SPI on ICSP use)
|
||||
// //GxEPD_Class display(io, /*RST=*/ 9, /*BUSY=*/ 7); // default selection of (9), 7
|
||||
//#else
|
||||
|
||||
// //GxIO_Class io(SPI, /*CS=*/ SS, /*DC=*/ 8, /*RST=*/ 9); // arbitrary selection of 8, 9 selected for default of GxEPD_Class
|
||||
// //GxEPD_Class display(io, /*RST=*/ 9, /*BUSY=*/ 7); // default selection of (9), 7
|
||||
//#endif
|
||||
|
||||
class Dashboard {
|
||||
private:
|
||||
static const uint16_t input_buffer_pixels = 800; // may affect performance
|
||||
static const uint16_t max_row_width = 1448; // for up to 6" display 1448x1072
|
||||
static const uint16_t max_palette_pixels = 256; // for depth <= 8
|
||||
|
||||
uint16_t read16(File& f);
|
||||
uint32_t read32(File& f);
|
||||
uint8_t input_buffer[3 * input_buffer_pixels]; // up to depth 24
|
||||
uint8_t output_row_mono_buffer[max_row_width / 8]; // buffer for at least one row of b/w bits
|
||||
uint8_t output_row_color_buffer[max_row_width / 8]; // buffer for at least one row of color bits
|
||||
uint8_t mono_palette_buffer[max_palette_pixels / 8]; // palette buffer for depth <= 8 b/w
|
||||
uint8_t color_palette_buffer[max_palette_pixels / 8]; // palette buffer for depth <= 8 c/w
|
||||
uint16_t rgb_palette_buffer[max_palette_pixels]; // palette buffer for depth <= 8 for buffered graphics, needed for 7-color display
|
||||
void drawBitmapFromSD(File file, int16_t x, int16_t y, bool with_color);
|
||||
|
||||
public:
|
||||
Dashboard();
|
||||
void drawBitmapFile(File file);
|
||||
void drawLogo(File f);
|
||||
|
||||
};
|
||||
|
||||
uint16_t read16(File& f)
|
||||
{
|
||||
// BMP data is stored little-endian, same as Arduino.
|
||||
uint16_t result;
|
||||
((uint8_t *)&result)[0] = f.read(); // LSB
|
||||
((uint8_t *)&result)[1] = f.read(); // MSB
|
||||
return result;
|
||||
}
|
||||
|
||||
uint32_t read32(File& f)
|
||||
{
|
||||
// BMP data is stored little-endian, same as Arduino.
|
||||
uint32_t result;
|
||||
((uint8_t *)&result)[0] = f.read(); // LSB
|
||||
((uint8_t *)&result)[1] = f.read();
|
||||
((uint8_t *)&result)[2] = f.read();
|
||||
((uint8_t *)&result)[3] = f.read(); // MSB
|
||||
return result;
|
||||
}
|
||||
|
||||
static const uint16_t input_buffer_pixels = 800; // may affect performance
|
||||
static const uint16_t max_row_width = 1448; // for up to 6" display 1448x1072
|
||||
static const uint16_t max_palette_pixels = 256; // for depth <= 8
|
||||
uint8_t input_buffer[3 * input_buffer_pixels]; // up to depth 24
|
||||
uint8_t output_row_mono_buffer[max_row_width / 8]; // buffer for at least one row of b/w bits
|
||||
uint8_t output_row_color_buffer[max_row_width / 8]; // buffer for at least one row of color bits
|
||||
uint8_t mono_palette_buffer[max_palette_pixels / 8]; // palette buffer for depth <= 8 b/w
|
||||
uint8_t color_palette_buffer[max_palette_pixels / 8]; // palette buffer for depth <= 8 c/w
|
||||
uint16_t rgb_palette_buffer[max_palette_pixels]; // palette buffer for depth <= 8 for buffered graphics, needed for 7-color display
|
||||
|
||||
|
||||
void drawBitmapFromSD(File file, int16_t x, int16_t y, bool with_color)
|
||||
//void drawBitmapFromSD(const char *filename, int16_t x, int16_t y, bool with_color)
|
||||
{
|
||||
bool valid = false; // valid format to be handled
|
||||
bool flip = true; // bitmap is stored bottom-to-top
|
||||
bool has_multicolors = false;//display.epd2.panel == GxEPD2::ACeP565;
|
||||
uint32_t startTime = millis();
|
||||
if ((x >= display.width()) || (y >= display.height())) return;
|
||||
Serial.println();
|
||||
Serial.print("Loading image '");
|
||||
/*Serial.print(filename);
|
||||
Serial.println('\'');
|
||||
#if defined(ESP32)
|
||||
file = SD.open(String("/") + filename, FILE_READ);
|
||||
if (!file)
|
||||
{
|
||||
Serial.print("File not found");
|
||||
return;
|
||||
}
|
||||
#else
|
||||
file = SD.open(filename);
|
||||
if (!file)
|
||||
{
|
||||
Serial.print("File not found");
|
||||
return;
|
||||
}
|
||||
#endif*/
|
||||
// Parse BMP header
|
||||
if (read16(file) == 0x4D42) // BMP signature
|
||||
{
|
||||
uint32_t fileSize = read32(file);
|
||||
uint32_t creatorBytes = read32(file); //(void)creatorBytes; //unused
|
||||
uint32_t imageOffset = read32(file); // Start of image data
|
||||
uint32_t headerSize = read32(file);
|
||||
uint32_t width = read32(file);
|
||||
int32_t height = (int32_t) read32(file);
|
||||
uint16_t planes = read16(file);
|
||||
uint16_t depth = read16(file); // bits per pixel
|
||||
uint32_t format = read32(file);
|
||||
if ((planes == 1) && ((format == 0) || (format == 3))) // uncompressed is handled, 565 also
|
||||
{
|
||||
Serial.print("File size: "); Serial.println(fileSize);
|
||||
Serial.print("Image Offset: "); Serial.println(imageOffset);
|
||||
Serial.print("Header size: "); Serial.println(headerSize);
|
||||
Serial.print("Bit Depth: "); Serial.println(depth);
|
||||
Serial.print("Image size: ");
|
||||
Serial.print(width);
|
||||
Serial.print('x');
|
||||
Serial.println(height);
|
||||
// BMP rows are padded (if needed) to 4-byte boundary
|
||||
uint32_t rowSize = (width * depth / 8 + 3) & ~3;
|
||||
if (depth < 8) rowSize = ((width * depth + 8 - depth) / 8 + 3) & ~3;
|
||||
if (height < 0)
|
||||
{
|
||||
height = -height;
|
||||
flip = false;
|
||||
}
|
||||
uint16_t w = width;
|
||||
uint16_t h = height;
|
||||
if ((x + w - 1) >= display.width()) w = display.width() - x;
|
||||
if ((y + h - 1) >= display.height()) h = display.height() - y;
|
||||
//if (w <= max_row_width) // handle with direct drawing
|
||||
{
|
||||
valid = true;
|
||||
uint8_t bitmask = 0xFF;
|
||||
uint8_t bitshift = 8 - depth;
|
||||
uint16_t red, green, blue;
|
||||
bool whitish = false;
|
||||
bool colored = false;
|
||||
if (depth == 1) with_color = false;
|
||||
if (depth <= 8)
|
||||
{
|
||||
if (depth < 8) bitmask >>= depth;
|
||||
//file.seek(54); //palette is always @ 54
|
||||
file.seek(imageOffset - (4 << depth)); //54 for regular, diff for colorsimportant
|
||||
for (uint16_t pn = 0; pn < (1 << depth); pn++)
|
||||
{
|
||||
blue = file.read();
|
||||
green = file.read();
|
||||
red = file.read();
|
||||
file.read();
|
||||
whitish = with_color ? ((red > 0x80) && (green > 0x80) && (blue > 0x80)) : ((red + green + blue) > 3 * 0x80); // whitish
|
||||
colored = (red > 0xF0) || ((green > 0xF0) && (blue > 0xF0)); // reddish or yellowish?
|
||||
if (0 == pn % 8) mono_palette_buffer[pn / 8] = 0;
|
||||
mono_palette_buffer[pn / 8] |= whitish << pn % 8;
|
||||
if (0 == pn % 8) color_palette_buffer[pn / 8] = 0;
|
||||
color_palette_buffer[pn / 8] |= colored << pn % 8;
|
||||
rgb_palette_buffer[pn] = ((red & 0xF8) << 8) | ((green & 0xFC) << 3) | ((blue & 0xF8) >> 3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint32_t rowPosition = flip ? imageOffset + (height - h) * rowSize : imageOffset;
|
||||
for (uint16_t row = 0; row < h; row++, rowPosition += rowSize) // for each line
|
||||
{
|
||||
uint32_t in_remain = rowSize;
|
||||
uint32_t in_idx = 0;
|
||||
uint32_t in_bytes = 0;
|
||||
uint8_t in_byte = 0; // for depth <= 8
|
||||
uint8_t in_bits = 0; // for depth <= 8
|
||||
uint16_t color = GxEPD_WHITE;
|
||||
file.seek(rowPosition);
|
||||
for (uint16_t col = 0; col < w; col++) // for each pixel
|
||||
{
|
||||
// Time to read more pixel data?
|
||||
if (in_idx >= in_bytes) // ok, exact match for 24bit also (size IS multiple of 3)
|
||||
{
|
||||
in_bytes = file.read(input_buffer, in_remain > sizeof(input_buffer) ? sizeof(input_buffer) : in_remain);
|
||||
in_remain -= in_bytes;
|
||||
in_idx = 0;
|
||||
}
|
||||
switch (depth)
|
||||
{
|
||||
case 24:
|
||||
blue = input_buffer[in_idx++];
|
||||
green = input_buffer[in_idx++];
|
||||
red = input_buffer[in_idx++];
|
||||
whitish = with_color ? ((red > 0x80) && (green > 0x80) && (blue > 0x80)) : ((red + green + blue) > 3 * 0x80); // whitish
|
||||
colored = (red > 0xF0) || ((green > 0xF0) && (blue > 0xF0)); // reddish or yellowish?
|
||||
color = ((red & 0xF8) << 8) | ((green & 0xFC) << 3) | ((blue & 0xF8) >> 3);
|
||||
break;
|
||||
case 16:
|
||||
{
|
||||
uint8_t lsb = input_buffer[in_idx++];
|
||||
uint8_t msb = input_buffer[in_idx++];
|
||||
if (format == 0) // 555
|
||||
{
|
||||
blue = (lsb & 0x1F) << 3;
|
||||
green = ((msb & 0x03) << 6) | ((lsb & 0xE0) >> 2);
|
||||
red = (msb & 0x7C) << 1;
|
||||
color = ((red & 0xF8) << 8) | ((green & 0xFC) << 3) | ((blue & 0xF8) >> 3);
|
||||
}
|
||||
else // 565
|
||||
{
|
||||
blue = (lsb & 0x1F) << 3;
|
||||
green = ((msb & 0x07) << 5) | ((lsb & 0xE0) >> 3);
|
||||
red = (msb & 0xF8);
|
||||
color = (msb << 8) | lsb;
|
||||
}
|
||||
whitish = with_color ? ((red > 0x80) && (green > 0x80) && (blue > 0x80)) : ((red + green + blue) > 3 * 0x80); // whitish
|
||||
colored = (red > 0xF0) || ((green > 0xF0) && (blue > 0xF0)); // reddish or yellowish?
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 4:
|
||||
case 8:
|
||||
{
|
||||
if (0 == in_bits)
|
||||
{
|
||||
in_byte = input_buffer[in_idx++];
|
||||
in_bits = 8;
|
||||
}
|
||||
uint16_t pn = (in_byte >> bitshift) & bitmask;
|
||||
whitish = mono_palette_buffer[pn / 8] & (0x1 << pn % 8);
|
||||
colored = color_palette_buffer[pn / 8] & (0x1 << pn % 8);
|
||||
in_byte <<= depth;
|
||||
in_bits -= depth;
|
||||
color = rgb_palette_buffer[pn];
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (with_color && has_multicolors)
|
||||
{
|
||||
// keep color
|
||||
}
|
||||
else if (whitish)
|
||||
{
|
||||
color = GxEPD_WHITE;
|
||||
}
|
||||
/*else if (colored && with_color)
|
||||
{
|
||||
color = GxEPD_COLORED;
|
||||
}*/
|
||||
else
|
||||
{
|
||||
color = GxEPD_BLACK;
|
||||
}
|
||||
uint16_t yrow = y + (flip ? h - row - 1 : row);
|
||||
display.drawPixel(x + col, yrow, color);
|
||||
} // end pixel
|
||||
} // end line
|
||||
Serial.print("page loaded in "); Serial.print(millis() - startTime); Serial.println(" ms");
|
||||
// }
|
||||
//while (display.nextPage());
|
||||
Serial.print("loaded in "); Serial.print(millis() - startTime); Serial.println(" ms");
|
||||
}
|
||||
}
|
||||
}
|
||||
file.close();
|
||||
if (!valid)
|
||||
{
|
||||
Serial.println("bitmap format not handled.");
|
||||
}
|
||||
}
|
||||
|
||||
void drawLogo(File f)
|
||||
{
|
||||
// WaveShare 4.2" display
|
||||
int16_t w2 = display.width() / 2; // total width 400 pixels
|
||||
int16_t h2 = display.height() / 2; // total height 300 pixels
|
||||
Serial.print("Display width: ");
|
||||
Serial.println(display.width());
|
||||
Serial.print("Display height: ");
|
||||
Serial.println(display.height());
|
||||
drawBitmapFromSD(f, w2-200, h2-150, false); // Set initial (x, y) coordinates to (0, 0)
|
||||
}
|
||||
|
||||
/*
|
||||
void drawLogo(File f)
|
||||
{
|
||||
int16_t w2 = display.width() / 2;
|
||||
int16_t h2 = display.height() / 2;
|
||||
drawBitmapFromSD(f, w2 - 64, h2 - 80, false);
|
||||
}
|
||||
void drawLogo(File f)
|
||||
{
|
||||
int16_t w2 = 400 / 2;
|
||||
int16_t h2 = 300 / 2;
|
||||
drawBitmapFromSD(f, 400, 300, false);
|
||||
}*/
|
Reference in New Issue
Block a user