custom fonts and further UI reworks
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(echo:*)"
|
||||
"Bash(echo:*)",
|
||||
"Bash(idf.py build:*)",
|
||||
"Bash(for f in DSEG14C_BI_50px.c InziuIosevka_Slab_CC_12px.c InziuIosevka_Slab_CC_16px.c InziuIosevka_Slab_CC_20px.c InziuIosevka_Slab_CC_24px.c InziuIosevka_Slab_CC_32px.c)",
|
||||
"Bash(do sed -i '/\\\\.static_bitmap = 0,/d' \"$f\")",
|
||||
"Bash(done)"
|
||||
]
|
||||
},
|
||||
"outputStyle": "iseri",
|
||||
|
||||
211
PLAN.md
211
PLAN.md
@@ -1,211 +0,0 @@
|
||||
# Pi Dashboard — ESP32-S3 RLCD 4.2" Project Plan
|
||||
|
||||
## Goal
|
||||
|
||||
WebSocket client on the ESP32-S3 RLCD board that receives system status from a
|
||||
Raspberry Pi home server over LAN and renders a monitoring dashboard via LVGL.
|
||||
|
||||
---
|
||||
|
||||
## New project location
|
||||
|
||||
Create a new ESP-IDF project directory **outside** the Examples folder, e.g.:
|
||||
|
||||
```
|
||||
J:\dev\arduino\ESP32-S3-RLCD-4.2-main\Projects\pi_dashboard\
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Files to copy from the factory example
|
||||
|
||||
Source root: `Example\ESP-IDF\10_FactoryProgram\`
|
||||
|
||||
### Must copy (build skeleton)
|
||||
|
||||
| File / Dir | Why |
|
||||
|---|---|
|
||||
| `CMakeLists.txt` | Project root cmake — edit project name, strip `EXTRA_COMPONENT_DIRS` if not using ExternLib |
|
||||
| `partitions.csv` | Partition table (8MB app partition, NVS, PHY) |
|
||||
| `sdkconfig.defaults` | Base config — **strip BT lines**, keep SPIRAM/flash/LVGL settings |
|
||||
| `main/CMakeLists.txt` | Main component registration |
|
||||
| `main/idf_component.yml` | Managed component deps — keep `lvgl/lvgl: ^8.4.0`, drop `avi_player` and `esp_new_jpeg`, **add `espressif/esp_websocket_client`** |
|
||||
|
||||
### Must copy (display driver)
|
||||
|
||||
| File | From | Why |
|
||||
|---|---|---|
|
||||
| `display_bsp.h` | `components/port_bsp/` | DisplayPort class — RLCD SPI driver with LUT pixel mapping |
|
||||
| `display_bsp.cpp` | `components/port_bsp/` | Full implementation: SPI init, reset, command sequences, SetPixel, Display |
|
||||
|
||||
These two files are the entire RLCD hardware abstraction. No other display code
|
||||
exists. Copy them into a `components/display_bsp/` component in the new project.
|
||||
|
||||
### Must copy (LVGL port)
|
||||
|
||||
| File | From | Why |
|
||||
|---|---|---|
|
||||
| `lvgl_bsp.h` | `components/app_bsp/` | Lvgl_PortInit, Lvgl_lock/unlock declarations |
|
||||
| `lvgl_bsp.cpp` | `components/app_bsp/` | LVGL display driver registration, double-buffered PSRAM, tick timer, port task on Core 0 |
|
||||
|
||||
Copy into a `components/lvgl_port/` component. This file is self-contained — its
|
||||
only dependency is `lvgl.h` and FreeRTOS.
|
||||
|
||||
### Copy as reference (WiFi STA)
|
||||
|
||||
| File | From | Why |
|
||||
|---|---|---|
|
||||
| `esp_wifi_bsp.h` | `Example/ESP-IDF/02_WIFI_STA/components/esp_wifi_bsp/` | Cleaner than the factory version — no scan-and-destroy, no BLE entanglement |
|
||||
| `esp_wifi_bsp.c` | same | Simple STA init + connect + reconnect skeleton |
|
||||
|
||||
The `02_WIFI_STA` example is a better starting point than the factory program's
|
||||
wifi code. The factory version tears down WiFi for BLE scanning — useless for a
|
||||
persistent connection. You will need to modify the STA code to:
|
||||
- Make SSID/password configurable (NVS or Kconfig)
|
||||
- Add auto-reconnect on disconnect
|
||||
- Signal connection readiness via event group so the WebSocket task knows when to start
|
||||
|
||||
### Do NOT copy
|
||||
|
||||
| Component | Why not |
|
||||
|---|---|
|
||||
| `components/port_bsp/` (everything except display_bsp) | I2C bus, buttons, SD card, ADC, codec — none needed for a dashboard |
|
||||
| `components/ExternLib/` (SensorLib, codec_board) | Sensor drivers and audio codec — irrelevant |
|
||||
| `components/app_bsp/ble_scan_bsp.c` | BLE scanning — not needed, and conflicts with persistent WiFi |
|
||||
| `components/app_bsp/esp_wifi_bsp.c` | Factory version destroys WiFi for BLE — use 02_WIFI_STA instead |
|
||||
| `components/ui_bsp/` | NXP GUI Guider generated UI — you will design your own dashboard layout |
|
||||
| `components/user_app/` | Factory test logic — all replaced by your WebSocket + dashboard code |
|
||||
| `managed_components/` | Auto-downloaded by ESP-IDF component manager from `idf_component.yml` — never copy these |
|
||||
| `build/` | Build artifacts — never copy |
|
||||
|
||||
---
|
||||
|
||||
## New project structure
|
||||
|
||||
```
|
||||
pi_dashboard/
|
||||
CMakeLists.txt # from factory, edited
|
||||
partitions.csv # from factory, as-is
|
||||
sdkconfig.defaults # from factory, stripped (no BT)
|
||||
main/
|
||||
CMakeLists.txt # register main.cpp
|
||||
idf_component.yml # lvgl ^8.4.0, esp_websocket_client
|
||||
main.cpp # app_main: wifi init, display init, lvgl init, ws connect, task spawn
|
||||
components/
|
||||
display_bsp/
|
||||
CMakeLists.txt # new: register display_bsp.cpp, REQUIRES driver esp_lcd
|
||||
display_bsp.h # from port_bsp, as-is
|
||||
display_bsp.cpp # from port_bsp, as-is
|
||||
lvgl_port/
|
||||
CMakeLists.txt # new: register lvgl_bsp.cpp, REQUIRES lvgl__lvgl esp_timer
|
||||
lvgl_bsp.h # from app_bsp, as-is
|
||||
lvgl_bsp.cpp # from app_bsp, as-is
|
||||
wifi_sta/
|
||||
CMakeLists.txt # new: register wifi_sta.c, REQUIRES esp_wifi esp_event nvs_flash
|
||||
wifi_sta.h # based on 02_WIFI_STA, extended with reconnect + event group
|
||||
wifi_sta.c # based on 02_WIFI_STA, extended
|
||||
ws_client/
|
||||
CMakeLists.txt # new: register ws_client.cpp, REQUIRES esp_websocket_client
|
||||
ws_client.h # WebSocket connect/disconnect, message callback registration
|
||||
ws_client.cpp # esp_websocket_client wrapper, reconnect logic, JSON parse
|
||||
dashboard_ui/
|
||||
CMakeLists.txt # new: register dashboard_ui.cpp, REQUIRES lvgl__lvgl
|
||||
dashboard_ui.h # UI layout: create/update functions for dashboard widgets
|
||||
dashboard_ui.cpp # LVGL widget creation, label/bar/table updates from parsed data
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## sdkconfig.defaults (modified for this project)
|
||||
|
||||
Strip from the factory version:
|
||||
- `CONFIG_BT_ENABLED=y` and all BT lines (saves ~300KB flash + significant RAM)
|
||||
- `CONFIG_BT_BLE_*` lines
|
||||
|
||||
Keep:
|
||||
- `CONFIG_IDF_TARGET="esp32s3"`
|
||||
- `CONFIG_ESPTOOLPY_FLASHMODE_QIO=y`
|
||||
- `CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y`
|
||||
- `CONFIG_PARTITION_TABLE_CUSTOM=y`
|
||||
- `CONFIG_SPIRAM=y` / `CONFIG_SPIRAM_MODE_OCT=y` / `CONFIG_SPIRAM_SPEED_80M=y`
|
||||
- `CONFIG_FREERTOS_HZ=1000`
|
||||
- `CONFIG_LV_MEM_SIZE_KILOBYTES=64`
|
||||
- `CONFIG_LV_DISP_DEF_REFR_PERIOD=1`
|
||||
|
||||
Add:
|
||||
- `CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y`
|
||||
|
||||
---
|
||||
|
||||
## Runtime architecture
|
||||
|
||||
```
|
||||
Core 0 Core 1
|
||||
------ ------
|
||||
WiFi driver (system) main task (app_main, exits after init)
|
||||
LVGL port task (priority 5) WebSocket event task (priority 3)
|
||||
- lv_timer_handler loop - receives WS messages
|
||||
- holds/releases lvgl_mux - parses JSON
|
||||
- acquires lvgl_mux
|
||||
- updates dashboard widgets
|
||||
- releases lvgl_mux
|
||||
```
|
||||
|
||||
### Boot sequence (app_main)
|
||||
|
||||
1. `wifi_sta_init()` — start WiFi STA, wait for IP
|
||||
2. `RlcdPort.RLCD_Init()` — init display over SPI
|
||||
3. `Lvgl_PortInit(400, 300, flush_cb)` — init LVGL with double-buffered PSRAM
|
||||
4. Create initial dashboard UI (under LVGL lock)
|
||||
5. `ws_client_start("ws://<pi_ip>:<port>")` — connect WebSocket, register message handler
|
||||
6. app_main returns, FreeRTOS tasks take over
|
||||
|
||||
### Data flow
|
||||
|
||||
```
|
||||
Pi server --[WebSocket JSON]--> ESP32 ws_client
|
||||
--> parse message
|
||||
--> Lvgl_lock()
|
||||
--> update lv_label / lv_bar / lv_table widgets
|
||||
--> Lvgl_unlock()
|
||||
--> LVGL port task flushes on next cycle
|
||||
--> flush_cb converts 16-bit to 1-bit, pushes to RLCD
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pi side (not part of this ESP-IDF project, but for context)
|
||||
|
||||
A simple Python WebSocket server that:
|
||||
- Collects system stats (psutil or /proc reads)
|
||||
- Serializes to JSON
|
||||
- Pushes to connected clients every N seconds
|
||||
|
||||
Example payload:
|
||||
```json
|
||||
{
|
||||
"cpu_pct": 23,
|
||||
"mem_pct": 61,
|
||||
"mem_used_mb": 1952,
|
||||
"disk_pct": 44,
|
||||
"cpu_temp": 52,
|
||||
"uptime_hrs": 342,
|
||||
"services": [
|
||||
{"name": "docker", "status": "running"},
|
||||
{"name": "pihole", "status": "running"},
|
||||
{"name": "nginx", "status": "stopped"}
|
||||
],
|
||||
"net_rx_kbps": 1240,
|
||||
"net_tx_kbps": 320
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Key decisions still open
|
||||
|
||||
1. **WiFi credentials** — hardcode for now, or Kconfig menuconfig, or NVS provisioning?
|
||||
2. **Dashboard layout** — what stats matter most? Single screen or multiple pages?
|
||||
3. **Update frequency** — how often should the Pi push? 2s? 5s? On-change?
|
||||
4. **Pi server location** — fixed IP or mDNS discovery?
|
||||
5. **Error states** — what to show when WiFi drops or Pi goes offline?
|
||||
@@ -14,10 +14,13 @@ Raspberry Pi system monitor running on a Waveshare ESP32-S3 RLCD 4.2" board. Con
|
||||
Pi (server) ESP32-S3 (client)
|
||||
stats_server.py --WS/JSON--> ws_client --> dashboard_ui (LVGL)
|
||||
+ local sensors (SHTC3)
|
||||
+ RTC clock (PCF85063)
|
||||
```
|
||||
|
||||
The Pi runs a WebSocket server that pushes system stats (CPU, memory, disk, temperature, network, services) as JSON every 2 seconds. The ESP32 parses the JSON and updates LVGL widgets. A data staleness watchdog forces reconnection if the server goes silent.
|
||||
|
||||
The display uses a two-column layout: left half shows Pi stats (CPU/RAM/DISK bars, CPU temp) and a services table; right half shows a large HH:MM:SS clock (montserrat_36), date with day-of-week, and local sensor readings (room temp, humidity). The services table auto-scrolls when more than 4 services are present. The clock updates every second from the on-board RTC, which syncs from the Pi's time when drift exceeds 60 seconds.
|
||||
|
||||
## Configuration
|
||||
|
||||
Edit `components/esp_wifi_bsp/wifi_config.h`:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
idf_component_register(
|
||||
SRCS "dashboard_ui.c"
|
||||
REQUIRES lvgl__lvgl ws_client
|
||||
REQUIRES lvgl__lvgl ws_client user_fonts
|
||||
INCLUDE_DIRS "./")
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "dashboard_ui.h"
|
||||
#include "user_fonts.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -6,18 +7,25 @@
|
||||
#define SCREEN_W 400
|
||||
#define SCREEN_H 300
|
||||
#define TOP_BAR_H 24
|
||||
#define STATS_H 80
|
||||
#define MID_H 140
|
||||
#define BOT_H 32
|
||||
#define TIME_BAR_H 50
|
||||
#define BOT_H 24
|
||||
#define MAIN_Y (TOP_BAR_H + TIME_BAR_H) /* 74 */
|
||||
#define MAIN_H (SCREEN_H - MAIN_Y - BOT_H) /* 202 */
|
||||
#define LEFT_COL_W 200
|
||||
#define RIGHT_COL_X 200
|
||||
|
||||
/* ---------- Static widget handles ---------- */
|
||||
|
||||
/* Top bar */
|
||||
static lv_obj_t *lbl_ip;
|
||||
static lv_obj_t *lbl_batt;
|
||||
static lv_obj_t *lbl_time;
|
||||
static lv_obj_t *bar_batt_top;
|
||||
static lv_obj_t *lbl_ws;
|
||||
|
||||
/* Time bar */
|
||||
static lv_obj_t *lbl_clock;
|
||||
static lv_obj_t *lbl_date;
|
||||
|
||||
/* Pi stats bars + labels */
|
||||
static lv_obj_t *bar_cpu;
|
||||
static lv_obj_t *lbl_cpu_val;
|
||||
@@ -29,19 +37,24 @@ static lv_obj_t *lbl_cpu_temp;
|
||||
|
||||
/* Services table */
|
||||
static lv_obj_t *tbl_services;
|
||||
static int s_service_count;
|
||||
|
||||
/* Local sensors */
|
||||
static lv_obj_t *lbl_room_temp;
|
||||
static lv_obj_t *lbl_room_humi;
|
||||
static lv_obj_t *lbl_local_batt;
|
||||
static lv_obj_t *lbl_uptime;
|
||||
|
||||
/* Network */
|
||||
static lv_obj_t *lbl_net;
|
||||
|
||||
/* ---------- Style ---------- */
|
||||
/* Auto-scroll timer */
|
||||
static lv_timer_t *s_scroll_timer;
|
||||
|
||||
/* ---------- Styles ---------- */
|
||||
static lv_style_t style_bar_bg;
|
||||
static lv_style_t style_bar_ind;
|
||||
static lv_style_t style_bar_batt_bg;
|
||||
static lv_style_t style_bar_batt_ind;
|
||||
|
||||
static void init_styles(void)
|
||||
{
|
||||
@@ -58,6 +71,19 @@ static void init_styles(void)
|
||||
lv_style_set_bg_color(&style_bar_ind, lv_color_black());
|
||||
lv_style_set_bg_opa(&style_bar_ind, LV_OPA_COVER);
|
||||
lv_style_set_radius(&style_bar_ind, 0);
|
||||
|
||||
/* Battery bar on black top bar: inverted colors */
|
||||
lv_style_init(&style_bar_batt_bg);
|
||||
lv_style_set_bg_color(&style_bar_batt_bg, lv_color_black());
|
||||
lv_style_set_bg_opa(&style_bar_batt_bg, LV_OPA_COVER);
|
||||
lv_style_set_border_color(&style_bar_batt_bg, lv_color_white());
|
||||
lv_style_set_border_width(&style_bar_batt_bg, 1);
|
||||
lv_style_set_radius(&style_bar_batt_bg, 0);
|
||||
|
||||
lv_style_init(&style_bar_batt_ind);
|
||||
lv_style_set_bg_color(&style_bar_batt_ind, lv_color_white());
|
||||
lv_style_set_bg_opa(&style_bar_batt_ind, LV_OPA_COVER);
|
||||
lv_style_set_radius(&style_bar_batt_ind, 0);
|
||||
}
|
||||
|
||||
static lv_obj_t *create_bar(lv_obj_t *parent, int x, int y, int w, int h)
|
||||
@@ -82,7 +108,29 @@ static lv_obj_t *create_label(lv_obj_t *parent, int x, int y, const lv_font_t *f
|
||||
return lbl;
|
||||
}
|
||||
|
||||
/* ---------- Create UI ---------- */
|
||||
/* ---------- Auto-scroll callback ---------- */
|
||||
|
||||
static void scroll_timer_cb(lv_timer_t *timer)
|
||||
{
|
||||
(void)timer;
|
||||
if (s_service_count <= 4) {
|
||||
lv_obj_scroll_to_y(tbl_services, 0, LV_ANIM_OFF);
|
||||
return;
|
||||
}
|
||||
|
||||
lv_coord_t cur_y = lv_obj_get_scroll_y(tbl_services);
|
||||
/* Each row is ~16px (12px font + 2px pad top + 2px pad bot) */
|
||||
lv_coord_t row_h = 16;
|
||||
lv_coord_t max_scroll = (s_service_count - 4) * row_h;
|
||||
|
||||
if (cur_y >= max_scroll) {
|
||||
lv_obj_scroll_to_y(tbl_services, 0, LV_ANIM_ON);
|
||||
} else {
|
||||
lv_obj_scroll_to_y(tbl_services, cur_y + row_h, LV_ANIM_ON);
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------- Create UI sections ---------- */
|
||||
|
||||
static void create_top_bar(lv_obj_t *parent)
|
||||
{
|
||||
@@ -96,97 +144,134 @@ static void create_top_bar(lv_obj_t *parent)
|
||||
lv_obj_set_style_pad_all(bar_cont, 2, 0);
|
||||
lv_obj_clear_flag(bar_cont, LV_OBJ_FLAG_SCROLLABLE);
|
||||
|
||||
/* IP address — left */
|
||||
lbl_ip = lv_label_create(bar_cont);
|
||||
lv_obj_set_style_text_color(lbl_ip, lv_color_white(), 0);
|
||||
lv_obj_set_style_text_font(lbl_ip, &lv_font_montserrat_12, 0);
|
||||
lv_obj_set_style_text_font(lbl_ip, &InziuIosevka_Slab_CC_12px, 0);
|
||||
lv_obj_align(lbl_ip, LV_ALIGN_LEFT_MID, 2, 0);
|
||||
lv_label_set_text(lbl_ip, "N/A");
|
||||
|
||||
lbl_batt = lv_label_create(bar_cont);
|
||||
lv_obj_set_style_text_color(lbl_batt, lv_color_white(), 0);
|
||||
lv_obj_set_style_text_font(lbl_batt, &lv_font_montserrat_12, 0);
|
||||
lv_obj_align(lbl_batt, LV_ALIGN_LEFT_MID, 120, 0);
|
||||
lv_label_set_text(lbl_batt, "Batt:--%");
|
||||
|
||||
lbl_time = lv_label_create(bar_cont);
|
||||
lv_obj_set_style_text_color(lbl_time, lv_color_white(), 0);
|
||||
lv_obj_set_style_text_font(lbl_time, &lv_font_montserrat_12, 0);
|
||||
lv_obj_align(lbl_time, LV_ALIGN_LEFT_MID, 220, 0);
|
||||
lv_label_set_text(lbl_time, "--:--");
|
||||
|
||||
/* WS status — center-left */
|
||||
lbl_ws = lv_label_create(bar_cont);
|
||||
lv_obj_set_style_text_color(lbl_ws, lv_color_white(), 0);
|
||||
lv_obj_set_style_text_font(lbl_ws, &lv_font_montserrat_12, 0);
|
||||
lv_obj_align(lbl_ws, LV_ALIGN_RIGHT_MID, -2, 0);
|
||||
lv_obj_set_style_text_font(lbl_ws, &InziuIosevka_Slab_CC_12px, 0);
|
||||
lv_obj_align(lbl_ws, LV_ALIGN_LEFT_MID, 140, 0);
|
||||
lv_label_set_text(lbl_ws, "WS:---");
|
||||
|
||||
/* Battery bar (24x10) — right */
|
||||
bar_batt_top = lv_bar_create(bar_cont);
|
||||
lv_obj_set_size(bar_batt_top, 24, 10);
|
||||
lv_obj_align(bar_batt_top, LV_ALIGN_RIGHT_MID, -40, 0);
|
||||
lv_bar_set_range(bar_batt_top, 0, 100);
|
||||
lv_bar_set_value(bar_batt_top, 0, LV_ANIM_OFF);
|
||||
lv_obj_add_style(bar_batt_top, &style_bar_batt_bg, LV_PART_MAIN);
|
||||
lv_obj_add_style(bar_batt_top, &style_bar_batt_ind, LV_PART_INDICATOR);
|
||||
|
||||
/* Battery text — right of bar */
|
||||
lbl_batt = lv_label_create(bar_cont);
|
||||
lv_obj_set_style_text_color(lbl_batt, lv_color_white(), 0);
|
||||
lv_obj_set_style_text_font(lbl_batt, &InziuIosevka_Slab_CC_12px, 0);
|
||||
lv_obj_align(lbl_batt, LV_ALIGN_RIGHT_MID, -2, 0);
|
||||
lv_label_set_text(lbl_batt, "--%");
|
||||
}
|
||||
|
||||
static void create_stats_section(lv_obj_t *parent)
|
||||
static void create_time_bar(lv_obj_t *parent)
|
||||
{
|
||||
int y0 = TOP_BAR_H + 2;
|
||||
int col_w = 80;
|
||||
int bar_w = 50;
|
||||
int bar_h = 40;
|
||||
lv_obj_t *bar_cont = lv_obj_create(parent);
|
||||
lv_obj_set_pos(bar_cont, 0, TOP_BAR_H);
|
||||
lv_obj_set_size(bar_cont, SCREEN_W, TIME_BAR_H);
|
||||
lv_obj_set_style_bg_color(bar_cont, lv_color_white(), 0);
|
||||
lv_obj_set_style_bg_opa(bar_cont, LV_OPA_COVER, 0);
|
||||
lv_obj_set_style_border_color(bar_cont, lv_color_black(), 0);
|
||||
lv_obj_set_style_border_width(bar_cont, 1, 0);
|
||||
lv_obj_set_style_border_side(bar_cont, LV_BORDER_SIDE_BOTTOM, 0);
|
||||
lv_obj_set_style_radius(bar_cont, 0, 0);
|
||||
lv_obj_set_style_pad_all(bar_cont, 0, 0);
|
||||
lv_obj_clear_flag(bar_cont, LV_OBJ_FLAG_SCROLLABLE);
|
||||
|
||||
/* Section header */
|
||||
create_label(parent, 4, y0, &lv_font_montserrat_12, "PI SERVER STATS");
|
||||
/* Clock HH:MM:SS — left */
|
||||
lbl_clock = lv_label_create(bar_cont);
|
||||
lv_obj_set_style_text_font(lbl_clock, &DSEG14C_BI_32px, 0);
|
||||
lv_obj_set_style_text_color(lbl_clock, lv_color_black(), 0);
|
||||
lv_obj_align(lbl_clock, LV_ALIGN_LEFT_MID, 10, 0);
|
||||
lv_label_set_text(lbl_clock, "--:--:--");
|
||||
|
||||
y0 += 14;
|
||||
|
||||
/* CPU */
|
||||
create_label(parent, 10, y0, &lv_font_montserrat_12, "CPU");
|
||||
bar_cpu = create_bar(parent, 10, y0 + 14, bar_w, bar_h);
|
||||
lbl_cpu_val = create_label(parent, 10, y0 + 56, &lv_font_montserrat_14, "--%");
|
||||
|
||||
/* RAM */
|
||||
create_label(parent, 10 + col_w, y0, &lv_font_montserrat_12, "RAM");
|
||||
bar_ram = create_bar(parent, 10 + col_w, y0 + 14, bar_w, bar_h);
|
||||
lbl_ram_val = create_label(parent, 10 + col_w, y0 + 56, &lv_font_montserrat_14, "--%");
|
||||
|
||||
/* DISK */
|
||||
create_label(parent, 10 + col_w * 2, y0, &lv_font_montserrat_12, "DISK");
|
||||
bar_disk = create_bar(parent, 10 + col_w * 2, y0 + 14, bar_w, bar_h);
|
||||
lbl_disk_val = create_label(parent, 10 + col_w * 2, y0 + 56, &lv_font_montserrat_14, "--%");
|
||||
|
||||
/* CPU TEMP - no bar, just big value */
|
||||
create_label(parent, 10 + col_w * 3, y0, &lv_font_montserrat_12, "TEMP");
|
||||
lbl_cpu_temp = create_label(parent, 10 + col_w * 3, y0 + 24, &lv_font_montserrat_20, "--C");
|
||||
/* Date YYYY/MM/DD DAY — right */
|
||||
lbl_date = lv_label_create(bar_cont);
|
||||
lv_obj_set_style_text_font(lbl_date, &InziuIosevka_Slab_CC_20px, 0);
|
||||
lv_obj_set_style_text_color(lbl_date, lv_color_black(), 0);
|
||||
lv_obj_align(lbl_date, LV_ALIGN_RIGHT_MID, -10, 0);
|
||||
lv_label_set_text(lbl_date, "----/--/-- ---");
|
||||
}
|
||||
|
||||
static void create_mid_section(lv_obj_t *parent)
|
||||
static void create_main_section(lv_obj_t *parent)
|
||||
{
|
||||
int y0 = TOP_BAR_H + STATS_H + 4;
|
||||
|
||||
/* --- Left column: Services --- */
|
||||
create_label(parent, 4, y0, &lv_font_montserrat_12, "SERVICES");
|
||||
/* === Left column: Services === */
|
||||
create_label(parent, 4, MAIN_Y + 2, &InziuIosevka_Slab_CC_12px, "SERVICES");
|
||||
|
||||
tbl_services = lv_table_create(parent);
|
||||
lv_obj_set_pos(tbl_services, 4, y0 + 14);
|
||||
lv_obj_set_size(tbl_services, 195, 110);
|
||||
lv_obj_set_pos(tbl_services, 4, MAIN_Y + 16);
|
||||
lv_obj_set_size(tbl_services, 190, 180);
|
||||
lv_table_set_col_cnt(tbl_services, 2);
|
||||
lv_table_set_col_width(tbl_services, 0, 110);
|
||||
lv_table_set_col_width(tbl_services, 1, 70);
|
||||
lv_obj_set_style_text_font(tbl_services, &lv_font_montserrat_12, 0);
|
||||
lv_table_set_col_width(tbl_services, 1, 65);
|
||||
lv_obj_set_style_text_font(tbl_services, &InziuIosevka_Slab_CC_12px, 0);
|
||||
lv_obj_set_style_border_color(tbl_services, lv_color_black(), 0);
|
||||
lv_obj_set_style_border_width(tbl_services, 1, 0);
|
||||
lv_obj_set_style_pad_ver(tbl_services, 2, LV_PART_ITEMS);
|
||||
lv_obj_set_style_pad_hor(tbl_services, 4, LV_PART_ITEMS);
|
||||
lv_obj_clear_flag(tbl_services, LV_OBJ_FLAG_SCROLLABLE);
|
||||
lv_obj_add_flag(tbl_services, LV_OBJ_FLAG_SCROLLABLE);
|
||||
|
||||
/* Pre-fill with empty rows */
|
||||
for (int i = 0; i < WS_MAX_SERVICES; i++) {
|
||||
lv_table_set_cell_value(tbl_services, i, 0, "---");
|
||||
lv_table_set_cell_value(tbl_services, i, 1, "---");
|
||||
}
|
||||
|
||||
/* --- Right column: Local sensors --- */
|
||||
int rx = 205;
|
||||
create_label(parent, rx, y0, &lv_font_montserrat_12, "LOCAL SENSORS");
|
||||
/* Auto-scroll timer: 3 second period */
|
||||
s_scroll_timer = lv_timer_create(scroll_timer_cb, 3000, NULL);
|
||||
|
||||
lbl_room_temp = create_label(parent, rx, y0 + 18, &lv_font_montserrat_14, "Room: --.-C");
|
||||
lbl_room_humi = create_label(parent, rx, y0 + 38, &lv_font_montserrat_14, "Humi: --%");
|
||||
lbl_local_batt = create_label(parent, rx, y0 + 58, &lv_font_montserrat_14, "Batt: --%");
|
||||
lbl_uptime = create_label(parent, rx, y0 + 78, &lv_font_montserrat_14, "Uptime: --h");
|
||||
/* === Right column: Pi Vitals + Local Sensors === */
|
||||
int rx = RIGHT_COL_X;
|
||||
int row_h = 18; /* vertical spacing per stat row */
|
||||
int lbl_w = 36; /* width reserved for "CPU " etc */
|
||||
int bar_w = 82;
|
||||
int bar_h = 12;
|
||||
int val_x = rx + 4 + lbl_w + bar_w + 4; /* value label after bar */
|
||||
int temp_x = rx + 156; /* TEMP column, right of value labels */
|
||||
|
||||
/* Pi Vitals header */
|
||||
create_label(parent, rx + 4, MAIN_Y + 2, &InziuIosevka_Slab_CC_12px, "PI VITALS");
|
||||
|
||||
int ry = MAIN_Y + 18;
|
||||
|
||||
/* CPU [========] 12% TEMP */
|
||||
create_label(parent, rx + 4, ry, &InziuIosevka_Slab_CC_12px, "CPU");
|
||||
bar_cpu = create_bar(parent, rx + 4 + lbl_w, ry, bar_w, bar_h);
|
||||
lbl_cpu_val = create_label(parent, val_x, ry, &InziuIosevka_Slab_CC_12px, "--%");
|
||||
create_label(parent, temp_x, ry, &InziuIosevka_Slab_CC_12px, "TEMP");
|
||||
|
||||
/* RAM [========] 58% 45 C */
|
||||
ry += row_h;
|
||||
create_label(parent, rx + 4, ry, &InziuIosevka_Slab_CC_12px, "RAM");
|
||||
bar_ram = create_bar(parent, rx + 4 + lbl_w, ry, bar_w, bar_h);
|
||||
lbl_ram_val = create_label(parent, val_x, ry, &InziuIosevka_Slab_CC_12px, "--%");
|
||||
lbl_cpu_temp = create_label(parent, temp_x, ry, &InziuIosevka_Slab_CC_20px, "-- C");
|
||||
|
||||
/* DISK [========] 44% */
|
||||
ry += row_h;
|
||||
create_label(parent, rx + 4, ry, &InziuIosevka_Slab_CC_12px, "DISK");
|
||||
bar_disk = create_bar(parent, rx + 4 + lbl_w, ry, bar_w, bar_h);
|
||||
lbl_disk_val = create_label(parent, val_x, ry, &InziuIosevka_Slab_CC_12px, "--%");
|
||||
|
||||
/* uptime */
|
||||
ry += row_h;
|
||||
lbl_uptime = create_label(parent, rx + 4, ry, &InziuIosevka_Slab_CC_12px, "Uptime: --h");
|
||||
|
||||
/* === Local Sensors (below pi vitals) === */
|
||||
int sy = ry + row_h + 4;
|
||||
create_label(parent, rx + 4, sy, &InziuIosevka_Slab_CC_12px, "LOCAL SENSORS");
|
||||
lbl_room_temp = create_label(parent, rx + 4, sy + 16, &InziuIosevka_Slab_CC_16px, "Room: --.-C");
|
||||
lbl_room_humi = create_label(parent, rx + 4, sy + 42, &InziuIosevka_Slab_CC_16px, "Humi: --%");
|
||||
}
|
||||
|
||||
static void create_bottom_bar(lv_obj_t *parent)
|
||||
@@ -206,7 +291,7 @@ static void create_bottom_bar(lv_obj_t *parent)
|
||||
lv_obj_clear_flag(bot_cont, LV_OBJ_FLAG_SCROLLABLE);
|
||||
|
||||
lbl_net = lv_label_create(bot_cont);
|
||||
lv_obj_set_style_text_font(lbl_net, &lv_font_montserrat_12, 0);
|
||||
lv_obj_set_style_text_font(lbl_net, &InziuIosevka_Slab_CC_12px, 0);
|
||||
lv_obj_set_style_text_color(lbl_net, lv_color_black(), 0);
|
||||
lv_obj_align(lbl_net, LV_ALIGN_LEFT_MID, 0, 0);
|
||||
lv_label_set_text(lbl_net, "NETWORK RX: ---- kbps TX: ---- kbps");
|
||||
@@ -222,8 +307,8 @@ void dashboard_ui_create(void)
|
||||
lv_obj_clear_flag(scr, LV_OBJ_FLAG_SCROLLABLE);
|
||||
|
||||
create_top_bar(scr);
|
||||
create_stats_section(scr);
|
||||
create_mid_section(scr);
|
||||
create_time_bar(scr);
|
||||
create_main_section(scr);
|
||||
create_bottom_bar(scr);
|
||||
}
|
||||
|
||||
@@ -249,10 +334,11 @@ void dashboard_ui_update_stats(const pi_stats_t *stats)
|
||||
lv_label_set_text(lbl_disk_val, buf);
|
||||
|
||||
/* CPU temp */
|
||||
snprintf(buf, sizeof(buf), "%.0fC", stats->cpu_temp);
|
||||
snprintf(buf, sizeof(buf), "%.0f C", stats->cpu_temp);
|
||||
lv_label_set_text(lbl_cpu_temp, buf);
|
||||
|
||||
/* Services table */
|
||||
s_service_count = stats->service_count;
|
||||
for (int i = 0; i < stats->service_count && i < WS_MAX_SERVICES; i++) {
|
||||
lv_table_set_cell_value(tbl_services, i, 0, stats->services[i].name);
|
||||
lv_table_set_cell_value(tbl_services, i, 1,
|
||||
@@ -285,19 +371,23 @@ void dashboard_ui_update_local(float temp, float humidity, uint8_t battery)
|
||||
snprintf(buf, sizeof(buf), "Humi: %.0f%%", humidity);
|
||||
lv_label_set_text(lbl_room_humi, buf);
|
||||
|
||||
snprintf(buf, sizeof(buf), "Batt: %d%%", battery);
|
||||
lv_label_set_text(lbl_local_batt, buf);
|
||||
|
||||
/* Also update top bar battery */
|
||||
snprintf(buf, sizeof(buf), "Batt:%d%%", battery);
|
||||
/* Update top bar battery text + bar */
|
||||
snprintf(buf, sizeof(buf), "%d%%", battery);
|
||||
lv_label_set_text(lbl_batt, buf);
|
||||
lv_bar_set_value(bar_batt_top, battery, LV_ANIM_OFF);
|
||||
}
|
||||
|
||||
void dashboard_ui_update_time(int h, int m, int s)
|
||||
void dashboard_ui_update_time(int h, int m, int s, int year, int month, int day, int weekday)
|
||||
{
|
||||
char buf[16];
|
||||
snprintf(buf, sizeof(buf), "%02d:%02d", h, m);
|
||||
lv_label_set_text(lbl_time, buf);
|
||||
static const char *day_names[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
|
||||
|
||||
char buf[32];
|
||||
snprintf(buf, sizeof(buf), "%02d:%02d:%02d", h, m, s);
|
||||
lv_label_set_text(lbl_clock, buf);
|
||||
|
||||
const char *wd = (weekday >= 0 && weekday <= 6) ? day_names[weekday] : "---";
|
||||
snprintf(buf, sizeof(buf), "%04d/%02d/%02d %s", year, month, day, wd);
|
||||
lv_label_set_text(lbl_date, buf);
|
||||
}
|
||||
|
||||
void dashboard_ui_update_connection(ws_state_t ws_state, bool wifi_connected, const char *ip_str)
|
||||
|
||||
@@ -24,9 +24,10 @@ void dashboard_ui_update_stats(const pi_stats_t *stats);
|
||||
void dashboard_ui_update_local(float temp, float humidity, uint8_t battery);
|
||||
|
||||
/**
|
||||
* Update time display. LVGL lock must be held by caller.
|
||||
* Update clock and date display. LVGL lock must be held by caller.
|
||||
* weekday: 0=Sun, 1=Mon, ..., 6=Sat
|
||||
*/
|
||||
void dashboard_ui_update_time(int h, int m, int s);
|
||||
void dashboard_ui_update_time(int h, int m, int s, int year, int month, int day, int weekday);
|
||||
|
||||
/**
|
||||
* Update connection status indicators. LVGL lock must be held by caller.
|
||||
|
||||
@@ -174,28 +174,37 @@ static void sensor_task(void *arg)
|
||||
{
|
||||
float temp = 0, humidity = 0;
|
||||
rtcTimeStruct_t rtc_time = {};
|
||||
int sensor_divider = 0;
|
||||
|
||||
for (;;) {
|
||||
/* Read SHTC3 */
|
||||
/* Read RTC every second */
|
||||
Rtc_GetTime(&rtc_time);
|
||||
|
||||
/* Read SHTC3 + battery every 5 seconds */
|
||||
if (sensor_divider == 0) {
|
||||
s_shtc3->Shtc3_Wakeup();
|
||||
vTaskDelay(pdMS_TO_TICKS(20));
|
||||
s_shtc3->Shtc3_ReadTempHumi(&temp, &humidity);
|
||||
s_shtc3->Shtc3_Sleep();
|
||||
|
||||
/* Read RTC */
|
||||
Rtc_GetTime(&rtc_time);
|
||||
|
||||
/* Read battery */
|
||||
uint8_t batt = Adc_GetBatteryLevel();
|
||||
|
||||
/* Update UI under LVGL lock */
|
||||
if (Lvgl_lock(100)) {
|
||||
dashboard_ui_update_local(temp, humidity, batt);
|
||||
dashboard_ui_update_time(rtc_time.hour, rtc_time.minute, rtc_time.second);
|
||||
Lvgl_unlock();
|
||||
}
|
||||
}
|
||||
sensor_divider = (sensor_divider + 1) % 5;
|
||||
|
||||
/* Update clock every second */
|
||||
if (Lvgl_lock(100)) {
|
||||
dashboard_ui_update_time(rtc_time.hour, rtc_time.minute, rtc_time.second,
|
||||
rtc_time.year, rtc_time.month, rtc_time.day,
|
||||
rtc_time.week);
|
||||
Lvgl_unlock();
|
||||
}
|
||||
|
||||
vTaskDelay(pdMS_TO_TICKS(5000));
|
||||
vTaskDelay(pdMS_TO_TICKS(1000));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
11
components/user_fonts/CMakeLists.txt
Normal file
11
components/user_fonts/CMakeLists.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
idf_component_register(
|
||||
SRCS "DSEG14C_BI_32px.c"
|
||||
"DSEG14C_BI_40px.c"
|
||||
"DSEG14C_BI_50px.c"
|
||||
"InziuIosevka_Slab_CC_12px.c"
|
||||
"InziuIosevka_Slab_CC_16px.c"
|
||||
"InziuIosevka_Slab_CC_20px.c"
|
||||
"InziuIosevka_Slab_CC_24px.c"
|
||||
"InziuIosevka_Slab_CC_32px.c"
|
||||
REQUIRES lvgl__lvgl
|
||||
INCLUDE_DIRS "./")
|
||||
270
components/user_fonts/DSEG14C_BI_32px.c
Normal file
270
components/user_fonts/DSEG14C_BI_32px.c
Normal file
@@ -0,0 +1,270 @@
|
||||
/*******************************************************************************
|
||||
* Size: 32 px
|
||||
* Bpp: 1
|
||||
* Opts: --bpp 1 --size 32 --no-compress --stride 1 --align 1 --font DSEG14Classic-BoldItalic.ttf --symbols 0123456789:;,. --format lvgl -o DSEG14C_BI_32px.c
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef __has_include
|
||||
#if __has_include("lvgl.h")
|
||||
#ifndef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#define LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#include "lvgl.h"
|
||||
#else
|
||||
#include "lvgl/lvgl.h"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef DSEG14C_BI_32PX
|
||||
#define DSEG14C_BI_32PX 1
|
||||
#endif
|
||||
|
||||
#if DSEG14C_BI_32PX
|
||||
|
||||
/*-----------------
|
||||
* BITMAPS
|
||||
*----------------*/
|
||||
|
||||
/*Store the image of the glyphs*/
|
||||
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
/* U+002C "," */
|
||||
0x2f, 0xff, 0xf6, 0x80,
|
||||
|
||||
/* U+002E "." */
|
||||
0xee, 0xfe,
|
||||
|
||||
/* U+0030 "0" */
|
||||
0xf, 0xff, 0xf0, 0x3f, 0xff, 0xc3, 0x7f, 0xfe,
|
||||
0xce, 0xff, 0xf7, 0x3c, 0x0, 0x3c, 0xf0, 0x2,
|
||||
0xf3, 0xc0, 0x1b, 0xcf, 0x0, 0xef, 0x3c, 0x3,
|
||||
0xbc, 0xf0, 0xe, 0xf3, 0xc0, 0x3f, 0x8f, 0x0,
|
||||
0xde, 0x78, 0x3, 0x79, 0xe0, 0x1, 0xe7, 0x0,
|
||||
0x3, 0x98, 0x0, 0x6, 0x60, 0x0, 0x19, 0xc0,
|
||||
0x0, 0xe7, 0x80, 0x7, 0x9e, 0xc0, 0x1e, 0x7b,
|
||||
0x0, 0x79, 0xfc, 0x3, 0xc7, 0xf0, 0xf, 0x3f,
|
||||
0xc0, 0x3c, 0xf7, 0x0, 0xf3, 0xd8, 0x3, 0xcf,
|
||||
0x40, 0xf, 0x3c, 0x0, 0x3c, 0xef, 0xff, 0x73,
|
||||
0x7f, 0xfe, 0xc3, 0xff, 0xfc, 0xf, 0xff, 0xf0,
|
||||
|
||||
/* U+0031 "1" */
|
||||
0x0, 0x31, 0xcf, 0x3c, 0xf3, 0xcf, 0x3d, 0xe7,
|
||||
0x9e, 0x78, 0xe1, 0x8e, 0x79, 0xe7, 0x9e, 0xf3,
|
||||
0xcf, 0x3c, 0xf3, 0xcf, 0x1c, 0x20,
|
||||
|
||||
/* U+0032 "2" */
|
||||
0xf, 0xff, 0xf0, 0x3f, 0xff, 0xc0, 0x7f, 0xfe,
|
||||
0xc0, 0xff, 0xf7, 0x0, 0x0, 0x3c, 0x0, 0x0,
|
||||
0xf0, 0x0, 0x3, 0xc0, 0x0, 0xf, 0x0, 0x0,
|
||||
0x3c, 0x0, 0x0, 0xf0, 0x0, 0x7, 0x80, 0x0,
|
||||
0x1e, 0x0, 0x0, 0x78, 0x0, 0x1, 0xe0, 0x7c,
|
||||
0xfb, 0x83, 0xf3, 0xf6, 0x6f, 0xcf, 0xc1, 0xdf,
|
||||
0x3e, 0x7, 0x80, 0x0, 0x1e, 0x0, 0x0, 0x78,
|
||||
0x0, 0x1, 0xe0, 0x0, 0x7, 0x80, 0x0, 0x3e,
|
||||
0x0, 0x0, 0xf0, 0x0, 0x3, 0xc0, 0x0, 0xf,
|
||||
0x0, 0x0, 0x3c, 0x0, 0x0, 0xef, 0xff, 0x3,
|
||||
0x7f, 0xfe, 0x3, 0xff, 0xfc, 0xf, 0xff, 0xf0,
|
||||
|
||||
/* U+0033 "3" */
|
||||
0x1f, 0xff, 0xe0, 0xff, 0xff, 0x3, 0xff, 0xf6,
|
||||
0xf, 0xff, 0x70, 0x0, 0x7, 0x80, 0x0, 0x3c,
|
||||
0x0, 0x1, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x78,
|
||||
0x0, 0x3, 0xc0, 0x0, 0x3c, 0x0, 0x1, 0xe0,
|
||||
0x0, 0xf, 0x0, 0x0, 0x78, 0x3e, 0x7d, 0xc3,
|
||||
0xf3, 0xf6, 0x1f, 0x9f, 0xb0, 0x7c, 0xfb, 0x80,
|
||||
0x0, 0x3c, 0x0, 0x1, 0xe0, 0x0, 0xf, 0x0,
|
||||
0x0, 0xf0, 0x0, 0x7, 0x80, 0x0, 0x3c, 0x0,
|
||||
0x1, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x78, 0x0,
|
||||
0x3, 0xc1, 0xff, 0xee, 0x1f, 0xff, 0xb1, 0xff,
|
||||
0xfe, 0xf, 0xff, 0xf0,
|
||||
|
||||
/* U+0034 "4" */
|
||||
0x20, 0x0, 0x3, 0x0, 0x0, 0xdc, 0x0, 0xe,
|
||||
0xf0, 0x0, 0xf7, 0x80, 0x7, 0xbc, 0x0, 0x3d,
|
||||
0xe0, 0x1, 0xef, 0x0, 0xf, 0x78, 0x0, 0x7b,
|
||||
0xc0, 0x7, 0x9e, 0x0, 0x3d, 0xe0, 0x1, 0xef,
|
||||
0x0, 0xf, 0x77, 0xcf, 0xbb, 0x7e, 0x7e, 0xc3,
|
||||
0xf3, 0xf6, 0xf, 0x9f, 0x70, 0x0, 0x7, 0x80,
|
||||
0x0, 0x3c, 0x0, 0x1, 0xe0, 0x0, 0x1e, 0x0,
|
||||
0x0, 0xf0, 0x0, 0x7, 0x80, 0x0, 0x3c, 0x0,
|
||||
0x1, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x78, 0x0,
|
||||
0x1, 0xc0, 0x0, 0x6, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0035 "5" */
|
||||
0x1f, 0xff, 0xe1, 0xff, 0xfe, 0x6f, 0xff, 0xc7,
|
||||
0x7f, 0xf8, 0x78, 0x0, 0x7, 0x80, 0x0, 0x78,
|
||||
0x0, 0x7, 0x80, 0x0, 0x78, 0x0, 0x7, 0x80,
|
||||
0x0, 0x78, 0x0, 0x7, 0x80, 0x0, 0xf0, 0x0,
|
||||
0xf, 0x0, 0x0, 0xef, 0x9f, 0xd, 0xf9, 0xf8,
|
||||
0x1f, 0x9f, 0xb0, 0xf9, 0xf7, 0x0, 0x0, 0xf0,
|
||||
0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0x1e, 0x0,
|
||||
0x1, 0xe0, 0x0, 0x1e, 0x0, 0x1, 0xe0, 0x0,
|
||||
0x1e, 0x0, 0x1, 0xe0, 0x0, 0x1e, 0x1f, 0xfe,
|
||||
0xe3, 0xff, 0xf6, 0x7f, 0xff, 0x87, 0xff, 0xf8,
|
||||
|
||||
/* U+0036 "6" */
|
||||
0xf, 0xff, 0xf0, 0x7f, 0xff, 0x8d, 0xff, 0xf8,
|
||||
0x77, 0xff, 0x83, 0xc0, 0x0, 0x1e, 0x0, 0x0,
|
||||
0xf0, 0x0, 0x7, 0x80, 0x0, 0x3c, 0x0, 0x1,
|
||||
0xe0, 0x0, 0xf, 0x0, 0x0, 0x78, 0x0, 0x7,
|
||||
0x80, 0x0, 0x3c, 0x0, 0x1, 0xdf, 0x3e, 0xd,
|
||||
0xf9, 0xf8, 0x6f, 0xcf, 0xdb, 0xbe, 0x7d, 0xde,
|
||||
0x0, 0x1e, 0xf0, 0x0, 0xf7, 0x80, 0x7, 0xbc,
|
||||
0x0, 0x79, 0xe0, 0x3, 0xdf, 0x0, 0x1e, 0xf0,
|
||||
0x0, 0xf7, 0x80, 0x7, 0xbc, 0x0, 0x3d, 0xe0,
|
||||
0x1, 0xee, 0xff, 0xf7, 0x6f, 0xff, 0xd8, 0xff,
|
||||
0xff, 0x7, 0xff, 0xf8,
|
||||
|
||||
/* U+0037 "7" */
|
||||
0x1f, 0xff, 0xe0, 0xff, 0xff, 0x1b, 0xff, 0xf6,
|
||||
0xef, 0xff, 0x77, 0x80, 0x7, 0xbc, 0x0, 0x3d,
|
||||
0xe0, 0x1, 0xef, 0x0, 0xf, 0x78, 0x0, 0x7b,
|
||||
0xc0, 0x3, 0xde, 0x0, 0x3c, 0xf0, 0x1, 0xef,
|
||||
0x0, 0xf, 0x78, 0x0, 0x7b, 0x80, 0x1, 0xd8,
|
||||
0x0, 0x6, 0x0, 0x0, 0x30, 0x0, 0x3, 0x80,
|
||||
0x0, 0x3c, 0x0, 0x1, 0xe0, 0x0, 0xf, 0x0,
|
||||
0x0, 0x70, 0x0, 0x7, 0x80, 0x0, 0x3c, 0x0,
|
||||
0x1, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x78, 0x0,
|
||||
0x3, 0xc0, 0x0, 0xe, 0x0, 0x0, 0x30, 0x0,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0038 "8" */
|
||||
0xf, 0xff, 0xf0, 0x3f, 0xff, 0xc3, 0x7f, 0xfe,
|
||||
0xce, 0xff, 0xf7, 0x3c, 0x0, 0x3c, 0xf0, 0x0,
|
||||
0xf3, 0xc0, 0x3, 0xcf, 0x0, 0xf, 0x3c, 0x0,
|
||||
0x3c, 0xf0, 0x0, 0xf3, 0xc0, 0x7, 0x8f, 0x0,
|
||||
0x1e, 0x78, 0x0, 0x79, 0xe0, 0x1, 0xe7, 0x7c,
|
||||
0xfb, 0x9b, 0xf3, 0xf6, 0x6f, 0xcf, 0xd9, 0xdf,
|
||||
0x3e, 0xe7, 0x80, 0x7, 0x9e, 0x0, 0x1e, 0x78,
|
||||
0x0, 0x79, 0xe0, 0x3, 0xc7, 0x80, 0xf, 0x3e,
|
||||
0x0, 0x3c, 0xf0, 0x0, 0xf3, 0xc0, 0x3, 0xcf,
|
||||
0x0, 0xf, 0x3c, 0x0, 0x3c, 0xef, 0xff, 0x73,
|
||||
0x7f, 0xfe, 0xc3, 0xff, 0xfc, 0xf, 0xff, 0xf0,
|
||||
|
||||
/* U+0039 "9" */
|
||||
0x1f, 0xff, 0xe0, 0xff, 0xff, 0x1b, 0xff, 0xf6,
|
||||
0xef, 0xff, 0x77, 0x80, 0x7, 0xbc, 0x0, 0x3d,
|
||||
0xe0, 0x1, 0xef, 0x0, 0xf, 0x78, 0x0, 0x7b,
|
||||
0xc0, 0x3, 0xde, 0x0, 0x3c, 0xf0, 0x1, 0xef,
|
||||
0x0, 0xf, 0x78, 0x0, 0x7b, 0xbe, 0x7d, 0xdb,
|
||||
0xf3, 0xf6, 0x1f, 0x9f, 0xb0, 0x7c, 0xfb, 0x80,
|
||||
0x0, 0x3c, 0x0, 0x1, 0xe0, 0x0, 0xf, 0x0,
|
||||
0x0, 0xf0, 0x0, 0x7, 0x80, 0x0, 0x3c, 0x0,
|
||||
0x1, 0xe0, 0x0, 0xf, 0x0, 0x0, 0x78, 0x0,
|
||||
0x3, 0xc1, 0xff, 0xee, 0x1f, 0xff, 0xb1, 0xff,
|
||||
0xfe, 0xf, 0xff, 0xf0,
|
||||
|
||||
/* U+003A ":" */
|
||||
0x73, 0xde, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x73, 0xde, 0xe0
|
||||
};
|
||||
|
||||
|
||||
/*---------------------
|
||||
* GLYPH DESCRIPTION
|
||||
*--------------------*/
|
||||
|
||||
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
|
||||
{.bitmap_index = 0, .adv_w = 418, .box_w = 3, .box_h = 9, .ofs_x = 7, .ofs_y = 5},
|
||||
{.bitmap_index = 4, .adv_w = 0, .box_w = 4, .box_h = 4, .ofs_x = -3, .ofs_y = 0},
|
||||
{.bitmap_index = 6, .adv_w = 418, .box_w = 22, .box_h = 32, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 94, .adv_w = 418, .box_w = 6, .box_h = 29, .ofs_x = 18, .ofs_y = 2},
|
||||
{.bitmap_index = 116, .adv_w = 418, .box_w = 22, .box_h = 32, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 204, .adv_w = 418, .box_w = 21, .box_h = 32, .ofs_x = 3, .ofs_y = 0},
|
||||
{.bitmap_index = 288, .adv_w = 418, .box_w = 21, .box_h = 30, .ofs_x = 3, .ofs_y = 1},
|
||||
{.bitmap_index = 367, .adv_w = 418, .box_w = 20, .box_h = 32, .ofs_x = 3, .ofs_y = 0},
|
||||
{.bitmap_index = 447, .adv_w = 418, .box_w = 21, .box_h = 32, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 531, .adv_w = 418, .box_w = 21, .box_h = 31, .ofs_x = 3, .ofs_y = 1},
|
||||
{.bitmap_index = 613, .adv_w = 418, .box_w = 22, .box_h = 32, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 701, .adv_w = 418, .box_w = 21, .box_h = 32, .ofs_x = 3, .ofs_y = 0},
|
||||
{.bitmap_index = 785, .adv_w = 102, .box_w = 5, .box_h = 17, .ofs_x = 1, .ofs_y = 7}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
* CHARACTER MAPPING
|
||||
*--------------------*/
|
||||
|
||||
static const uint8_t glyph_id_ofs_list_0[] = {
|
||||
0, 0, 1, 0, 2, 3, 4, 5,
|
||||
6, 7, 8, 9, 10, 11, 12
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
{
|
||||
{
|
||||
.range_start = 44, .range_length = 15, .glyph_id_start = 1,
|
||||
.unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 15, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*--------------------
|
||||
* ALL CUSTOM DATA
|
||||
*--------------------*/
|
||||
|
||||
#if LVGL_VERSION_MAJOR == 8
|
||||
/*Store all the custom data of the font*/
|
||||
static lv_font_fmt_txt_glyph_cache_t cache;
|
||||
#endif
|
||||
|
||||
#if LVGL_VERSION_MAJOR >= 8
|
||||
static const lv_font_fmt_txt_dsc_t font_dsc = {
|
||||
#else
|
||||
static lv_font_fmt_txt_dsc_t font_dsc = {
|
||||
#endif
|
||||
.glyph_bitmap = glyph_bitmap,
|
||||
.glyph_dsc = glyph_dsc,
|
||||
.cmaps = cmaps,
|
||||
.kern_dsc = NULL,
|
||||
.kern_scale = 0,
|
||||
.cmap_num = 1,
|
||||
.bpp = 1,
|
||||
.kern_classes = 0,
|
||||
.bitmap_format = 0,
|
||||
#if LVGL_VERSION_MAJOR == 8
|
||||
.cache = &cache
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
extern const lv_font_t lv_font_montserrat_12;
|
||||
|
||||
|
||||
/*-----------------
|
||||
* PUBLIC FONT
|
||||
*----------------*/
|
||||
|
||||
/*Initialize a public general font descriptor*/
|
||||
#if LVGL_VERSION_MAJOR >= 8
|
||||
const lv_font_t DSEG14C_BI_32px = {
|
||||
#else
|
||||
lv_font_t DSEG14C_BI_32px = {
|
||||
#endif
|
||||
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
|
||||
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
|
||||
.line_height = 32, /*The maximum line height required by the font*/
|
||||
.base_line = 0, /*Baseline measured from the bottom of the line*/
|
||||
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
|
||||
.subpx = LV_FONT_SUBPX_NONE,
|
||||
#endif
|
||||
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
|
||||
.underline_position = -4,
|
||||
.underline_thickness = 2,
|
||||
#endif
|
||||
.dsc = &font_dsc, /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||
#if LV_VERSION_CHECK(8, 2, 0) || LVGL_VERSION_MAJOR >= 9
|
||||
.fallback = &lv_font_montserrat_12,
|
||||
#endif
|
||||
.user_data = NULL,
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /*#if DSEG14C_BI_32PX*/
|
||||
329
components/user_fonts/DSEG14C_BI_40px.c
Normal file
329
components/user_fonts/DSEG14C_BI_40px.c
Normal file
@@ -0,0 +1,329 @@
|
||||
/*******************************************************************************
|
||||
* Size: 40 px
|
||||
* Bpp: 1
|
||||
* Opts: --bpp 1 --size 40 --no-compress --stride 1 --align 1 --font DSEG14Classic-BoldItalic.ttf --symbols 0123456789:;., --format lvgl -o DSEG14C_BI_40px.c
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef __has_include
|
||||
#if __has_include("lvgl.h")
|
||||
#ifndef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#define LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#include "lvgl.h"
|
||||
#else
|
||||
#include "lvgl/lvgl.h"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef DSEG14C_BI_40PX
|
||||
#define DSEG14C_BI_40PX 1
|
||||
#endif
|
||||
|
||||
#if DSEG14C_BI_40PX
|
||||
|
||||
/*-----------------
|
||||
* BITMAPS
|
||||
*----------------*/
|
||||
|
||||
/*Store the image of the glyphs*/
|
||||
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
/* U+002C "," */
|
||||
0x19, 0xce, 0xe7, 0x39, 0xce, 0x63, 0x10,
|
||||
|
||||
/* U+002E "." */
|
||||
0x77, 0xff, 0xf7, 0x0,
|
||||
|
||||
/* U+0030 "0" */
|
||||
0x3, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xfc, 0x9,
|
||||
0xff, 0xff, 0xb1, 0xdf, 0xff, 0xf7, 0x1e, 0xff,
|
||||
0xfe, 0xf1, 0xf0, 0x0, 0x1f, 0x1f, 0x0, 0xd,
|
||||
0xf1, 0xf0, 0x0, 0xdf, 0x1f, 0x0, 0x1d, 0xf1,
|
||||
0xf0, 0x3, 0xdf, 0x1f, 0x0, 0x3d, 0xf1, 0xf0,
|
||||
0x3, 0xfe, 0x1f, 0x0, 0x3f, 0xe1, 0xe0, 0x3,
|
||||
0xfe, 0x3e, 0x0, 0x3b, 0xe3, 0xe0, 0x3, 0x3e,
|
||||
0x3e, 0x0, 0x33, 0xe3, 0xe0, 0x0, 0x3e, 0x3c,
|
||||
0x0, 0x1, 0xe3, 0x0, 0x0, 0xe, 0x30, 0x0,
|
||||
0x0, 0xe3, 0x80, 0x0, 0x1e, 0x3c, 0x0, 0x3,
|
||||
0xc3, 0xe6, 0x0, 0x7c, 0x3e, 0xe0, 0x7, 0xc7,
|
||||
0xce, 0x0, 0x7c, 0x7d, 0xe0, 0x7, 0xc7, 0xdc,
|
||||
0x0, 0x7c, 0x7d, 0xc0, 0x7, 0xc7, 0xdc, 0x0,
|
||||
0x7c, 0x7d, 0xc0, 0x7, 0xc7, 0xdc, 0x0, 0x7c,
|
||||
0x7d, 0x80, 0x7, 0xc7, 0xd0, 0x0, 0x7c, 0x7c,
|
||||
0x0, 0xf, 0x87, 0xbf, 0xff, 0x78, 0x67, 0xff,
|
||||
0xfb, 0x85, 0xff, 0xff, 0xd8, 0x3f, 0xff, 0xfe,
|
||||
0x1, 0xff, 0xff, 0xc0,
|
||||
|
||||
/* U+0031 "1" */
|
||||
0x0, 0x3, 0x7, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
|
||||
0x1f, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
|
||||
0x1e, 0xe, 0x0, 0xe, 0x3e, 0x7c, 0x7c, 0x7c,
|
||||
0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
|
||||
0xf8, 0x78, 0x38, 0x18, 0x0,
|
||||
|
||||
/* U+0032 "2" */
|
||||
0x3, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xfc, 0x1,
|
||||
0xff, 0xff, 0x80, 0x1f, 0xff, 0xf3, 0x0, 0xff,
|
||||
0xfe, 0x70, 0x0, 0x0, 0xf, 0x0, 0x0, 0x1,
|
||||
0xf0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0xf0,
|
||||
0x0, 0x0, 0x1f, 0x0, 0x0, 0x1, 0xf0, 0x0,
|
||||
0x0, 0x3e, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
|
||||
0x3e, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x3e,
|
||||
0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x3e, 0x1,
|
||||
0xf8, 0xfd, 0xe0, 0x3f, 0x9f, 0xee, 0x7, 0xfd,
|
||||
0xff, 0x3, 0xbf, 0x9f, 0xe0, 0x3d, 0xf8, 0xfc,
|
||||
0x3, 0xe0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x3,
|
||||
0xc0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x7, 0xc0,
|
||||
0x0, 0x0, 0x7c, 0x0, 0x0, 0x7, 0xc0, 0x0,
|
||||
0x0, 0x7c, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
|
||||
0x7c, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0, 0x7c,
|
||||
0x0, 0x0, 0x7, 0xbf, 0xff, 0x0, 0x77, 0xff,
|
||||
0xf8, 0x5, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xfe,
|
||||
0x1, 0xff, 0xff, 0xc0,
|
||||
|
||||
/* U+0033 "3" */
|
||||
0xf, 0xff, 0xff, 0x3, 0xff, 0xff, 0xc0, 0x7f,
|
||||
0xff, 0xe0, 0x1f, 0xff, 0xf3, 0x3, 0xff, 0xf9,
|
||||
0xc0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x7c, 0x0,
|
||||
0x0, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1,
|
||||
0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x3e, 0x0,
|
||||
0x0, 0xf, 0x80, 0x0, 0x3, 0xe0, 0x0, 0x0,
|
||||
0xf8, 0x0, 0x0, 0x3e, 0x0, 0x0, 0xf, 0x80,
|
||||
0x0, 0x3, 0xe0, 0x7e, 0x3f, 0x78, 0x3f, 0x9f,
|
||||
0xee, 0x1f, 0xf7, 0xfc, 0x3, 0xf9, 0xfe, 0xe0,
|
||||
0x7e, 0x3f, 0xf8, 0x0, 0x0, 0x7c, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1, 0xf0,
|
||||
0x0, 0x0, 0x7c, 0x0, 0x0, 0x1f, 0x0, 0x0,
|
||||
0x7, 0xc0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7c,
|
||||
0x0, 0x0, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0,
|
||||
0x3, 0xe0, 0x3f, 0xff, 0x78, 0x1f, 0xff, 0xee,
|
||||
0x1f, 0xff, 0xfd, 0x8f, 0xff, 0xff, 0x81, 0xff,
|
||||
0xff, 0xc0,
|
||||
|
||||
/* U+0034 "4" */
|
||||
0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x37, 0x80,
|
||||
0x0, 0x1d, 0xf0, 0x0, 0xf, 0x7c, 0x0, 0x7,
|
||||
0xdf, 0x0, 0x1, 0xf7, 0xc0, 0x0, 0x7d, 0xf0,
|
||||
0x0, 0x1f, 0x7c, 0x0, 0x7, 0xdf, 0x0, 0x3,
|
||||
0xe7, 0xc0, 0x0, 0xf9, 0xf0, 0x0, 0x3e, 0xf8,
|
||||
0x0, 0xf, 0xbe, 0x0, 0x3, 0xef, 0x80, 0x0,
|
||||
0xfb, 0xe0, 0x0, 0x3e, 0xf7, 0xe3, 0xf7, 0xbb,
|
||||
0xf9, 0xfe, 0xe1, 0xff, 0x7f, 0xc0, 0x3f, 0x9f,
|
||||
0xee, 0x7, 0xe3, 0xf7, 0x80, 0x0, 0x7, 0xc0,
|
||||
0x0, 0x1, 0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1, 0xf0,
|
||||
0x0, 0x0, 0x7c, 0x0, 0x0, 0x1f, 0x0, 0x0,
|
||||
0x7, 0xc0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7c,
|
||||
0x0, 0x0, 0x3e, 0x0, 0x0, 0x7, 0x80, 0x0,
|
||||
0x0, 0xe0, 0x0, 0x0, 0x18, 0x0, 0x0, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+0035 "5" */
|
||||
0xf, 0xff, 0xff, 0x7, 0xff, 0xff, 0x89, 0xff,
|
||||
0xff, 0x8e, 0xff, 0xff, 0x87, 0xbf, 0xff, 0x83,
|
||||
0xe0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0xf8, 0x0,
|
||||
0x0, 0x7c, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x1f,
|
||||
0x0, 0x0, 0xf, 0x80, 0x0, 0x7, 0xc0, 0x0,
|
||||
0x3, 0xe0, 0x0, 0x3, 0xe0, 0x0, 0x1, 0xf0,
|
||||
0x0, 0x0, 0xf8, 0x0, 0x0, 0x7c, 0x0, 0x0,
|
||||
0x3d, 0xf8, 0xfc, 0x1d, 0xfc, 0xff, 0x1, 0xff,
|
||||
0x7f, 0xc0, 0x7f, 0x3f, 0xdc, 0x1f, 0x8f, 0xfe,
|
||||
0x0, 0x0, 0x3e, 0x0, 0x0, 0x1f, 0x0, 0x0,
|
||||
0xf, 0x80, 0x0, 0x7, 0xc0, 0x0, 0x3, 0xe0,
|
||||
0x0, 0x1, 0xf0, 0x0, 0x0, 0xf8, 0x0, 0x0,
|
||||
0x7c, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x1f, 0x0,
|
||||
0x0, 0xf, 0x80, 0x0, 0xf, 0x81, 0xff, 0xfb,
|
||||
0xc1, 0xff, 0xfe, 0xe3, 0xff, 0xff, 0xb3, 0xff,
|
||||
0xff, 0xe0, 0xff, 0xff, 0xe0,
|
||||
|
||||
/* U+0036 "6" */
|
||||
0x3, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xf8, 0x27,
|
||||
0xff, 0xfe, 0xe, 0xff, 0xff, 0x81, 0xef, 0xff,
|
||||
0xe0, 0x3e, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x0,
|
||||
0xf8, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x3, 0xe0,
|
||||
0x0, 0x0, 0x7c, 0x0, 0x0, 0xf, 0x80, 0x0,
|
||||
0x1, 0xf0, 0x0, 0x0, 0x3e, 0x0, 0x0, 0xf,
|
||||
0x80, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3e, 0x0,
|
||||
0x0, 0x7, 0xc0, 0x0, 0x0, 0xf7, 0xe3, 0xf0,
|
||||
0x1d, 0xfc, 0xff, 0x0, 0x7f, 0xdf, 0xf0, 0x77,
|
||||
0xf3, 0xff, 0xcf, 0x7e, 0x3f, 0xf9, 0xf0, 0x0,
|
||||
0x3e, 0x3e, 0x0, 0x7, 0xc7, 0x80, 0x0, 0xf9,
|
||||
0xf0, 0x0, 0x1f, 0x3e, 0x0, 0x3, 0xe7, 0xc0,
|
||||
0x0, 0x7c, 0xf8, 0x0, 0xf, 0x9f, 0x0, 0x1,
|
||||
0xf3, 0xe0, 0x0, 0x3e, 0x7c, 0x0, 0x7, 0xcf,
|
||||
0x80, 0x0, 0xf9, 0xf0, 0x0, 0x3e, 0x3d, 0xff,
|
||||
0xfb, 0xc7, 0x7f, 0xff, 0xb8, 0xbf, 0xff, 0xfb,
|
||||
0xf, 0xff, 0xff, 0x80, 0xff, 0xff, 0xe0,
|
||||
|
||||
/* U+0037 "7" */
|
||||
0xf, 0xff, 0xff, 0x3, 0xff, 0xff, 0xc2, 0x7f,
|
||||
0xff, 0xed, 0xdf, 0xff, 0xf7, 0x7b, 0xff, 0xfb,
|
||||
0xdf, 0x0, 0x1, 0xf7, 0xc0, 0x0, 0x7d, 0xf0,
|
||||
0x0, 0x1f, 0x7c, 0x0, 0x7, 0xdf, 0x0, 0x1,
|
||||
0xf7, 0xc0, 0x0, 0x7d, 0xf0, 0x0, 0x3e, 0x7c,
|
||||
0x0, 0xf, 0x9e, 0x0, 0x3, 0xef, 0x80, 0x0,
|
||||
0xfb, 0xe0, 0x0, 0x3e, 0xf8, 0x0, 0xf, 0xbe,
|
||||
0x0, 0x3, 0xee, 0x0, 0x0, 0x7b, 0x0, 0x0,
|
||||
0xe, 0x0, 0x0, 0x3, 0x80, 0x0, 0x1, 0xe0,
|
||||
0x0, 0x0, 0xf0, 0x0, 0x0, 0x7c, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1, 0xf0,
|
||||
0x0, 0x0, 0x7c, 0x0, 0x0, 0x1f, 0x0, 0x0,
|
||||
0x7, 0xc0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7c,
|
||||
0x0, 0x0, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0,
|
||||
0x3, 0xe0, 0x0, 0x0, 0x78, 0x0, 0x0, 0xe,
|
||||
0x0, 0x0, 0x1, 0x80,
|
||||
|
||||
/* U+0038 "8" */
|
||||
0x3, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xfc, 0x9,
|
||||
0xff, 0xff, 0x81, 0xdf, 0xff, 0xf3, 0x1e, 0xff,
|
||||
0xfe, 0x71, 0xf0, 0x0, 0xf, 0x1f, 0x0, 0x1,
|
||||
0xf1, 0xf0, 0x0, 0x1f, 0x1f, 0x0, 0x1, 0xf1,
|
||||
0xf0, 0x0, 0x1f, 0x1f, 0x0, 0x1, 0xf1, 0xf0,
|
||||
0x0, 0x3e, 0x1f, 0x0, 0x3, 0xe1, 0xf0, 0x0,
|
||||
0x3e, 0x3e, 0x0, 0x3, 0xe3, 0xe0, 0x0, 0x3e,
|
||||
0x3e, 0x0, 0x3, 0xe3, 0xe0, 0x0, 0x3e, 0x3d,
|
||||
0xf8, 0xfd, 0xe3, 0xbf, 0x9f, 0xee, 0x7, 0xfd,
|
||||
0xff, 0x3, 0xbf, 0x9f, 0xfe, 0x3d, 0xf8, 0xff,
|
||||
0xe3, 0xe0, 0x0, 0x7c, 0x3e, 0x0, 0x7, 0xc3,
|
||||
0xc0, 0x0, 0x7c, 0x7c, 0x0, 0x7, 0xc7, 0xc0,
|
||||
0x0, 0x7c, 0x7c, 0x0, 0x7, 0xc7, 0xc0, 0x0,
|
||||
0x7c, 0x7c, 0x0, 0x7, 0xc7, 0xc0, 0x0, 0x7c,
|
||||
0x7c, 0x0, 0x7, 0xc7, 0xc0, 0x0, 0x7c, 0x7c,
|
||||
0x0, 0xf, 0x87, 0xbf, 0xff, 0x78, 0x77, 0xff,
|
||||
0xfb, 0x85, 0xff, 0xff, 0xd8, 0x3f, 0xff, 0xfe,
|
||||
0x1, 0xff, 0xff, 0xc0,
|
||||
|
||||
/* U+0039 "9" */
|
||||
0xf, 0xff, 0xff, 0x3, 0xff, 0xff, 0xc2, 0x7f,
|
||||
0xff, 0xe1, 0xdf, 0xff, 0xf3, 0x7b, 0xff, 0xf9,
|
||||
0xdf, 0x0, 0x0, 0xf7, 0xc0, 0x0, 0x7d, 0xf0,
|
||||
0x0, 0x1f, 0x7c, 0x0, 0x7, 0xdf, 0x0, 0x1,
|
||||
0xf7, 0xc0, 0x0, 0x7d, 0xf0, 0x0, 0x3e, 0x7c,
|
||||
0x0, 0xf, 0x9f, 0x0, 0x3, 0xef, 0x80, 0x0,
|
||||
0xfb, 0xe0, 0x0, 0x3e, 0xf8, 0x0, 0xf, 0xbe,
|
||||
0x0, 0x3, 0xef, 0x7e, 0x3f, 0x7b, 0xbf, 0x9f,
|
||||
0xee, 0x1f, 0xf7, 0xfc, 0x3, 0xf9, 0xfe, 0xe0,
|
||||
0x7e, 0x3f, 0xf8, 0x0, 0x0, 0x7c, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0, 0x1, 0xf0,
|
||||
0x0, 0x0, 0x7c, 0x0, 0x0, 0x1f, 0x0, 0x0,
|
||||
0x7, 0xc0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x7c,
|
||||
0x0, 0x0, 0x1f, 0x0, 0x0, 0x7, 0xc0, 0x0,
|
||||
0x3, 0xe0, 0x3f, 0xff, 0x78, 0x1f, 0xff, 0xee,
|
||||
0x1f, 0xff, 0xfd, 0x8f, 0xff, 0xff, 0x81, 0xff,
|
||||
0xff, 0xc0,
|
||||
|
||||
/* U+003A ":" */
|
||||
0x39, 0xf7, 0xdf, 0x38, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x73, 0xef, 0xbe, 0x70
|
||||
};
|
||||
|
||||
|
||||
/*---------------------
|
||||
* GLYPH DESCRIPTION
|
||||
*--------------------*/
|
||||
|
||||
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
|
||||
{.bitmap_index = 0, .adv_w = 522, .box_w = 5, .box_h = 11, .ofs_x = 8, .ofs_y = 6},
|
||||
{.bitmap_index = 7, .adv_w = 0, .box_w = 5, .box_h = 5, .ofs_x = -4, .ofs_y = 0},
|
||||
{.bitmap_index = 11, .adv_w = 522, .box_w = 28, .box_h = 40, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 151, .adv_w = 522, .box_w = 8, .box_h = 37, .ofs_x = 22, .ofs_y = 1},
|
||||
{.bitmap_index = 188, .adv_w = 522, .box_w = 28, .box_h = 40, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 328, .adv_w = 522, .box_w = 26, .box_h = 40, .ofs_x = 4, .ofs_y = 0},
|
||||
{.bitmap_index = 458, .adv_w = 522, .box_w = 26, .box_h = 37, .ofs_x = 4, .ofs_y = 2},
|
||||
{.bitmap_index = 579, .adv_w = 522, .box_w = 25, .box_h = 40, .ofs_x = 4, .ofs_y = 0},
|
||||
{.bitmap_index = 704, .adv_w = 522, .box_w = 27, .box_h = 40, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 839, .adv_w = 522, .box_w = 26, .box_h = 38, .ofs_x = 4, .ofs_y = 2},
|
||||
{.bitmap_index = 963, .adv_w = 522, .box_w = 28, .box_h = 40, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 1103, .adv_w = 522, .box_w = 26, .box_h = 40, .ofs_x = 4, .ofs_y = 0},
|
||||
{.bitmap_index = 1233, .adv_w = 128, .box_w = 6, .box_h = 21, .ofs_x = 1, .ofs_y = 9}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
* CHARACTER MAPPING
|
||||
*--------------------*/
|
||||
|
||||
static const uint8_t glyph_id_ofs_list_0[] = {
|
||||
0, 0, 1, 0, 2, 3, 4, 5,
|
||||
6, 7, 8, 9, 10, 11, 12
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
{
|
||||
{
|
||||
.range_start = 44, .range_length = 15, .glyph_id_start = 1,
|
||||
.unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 15, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*--------------------
|
||||
* ALL CUSTOM DATA
|
||||
*--------------------*/
|
||||
|
||||
#if LVGL_VERSION_MAJOR == 8
|
||||
/*Store all the custom data of the font*/
|
||||
static lv_font_fmt_txt_glyph_cache_t cache;
|
||||
#endif
|
||||
|
||||
#if LVGL_VERSION_MAJOR >= 8
|
||||
static const lv_font_fmt_txt_dsc_t font_dsc = {
|
||||
#else
|
||||
static lv_font_fmt_txt_dsc_t font_dsc = {
|
||||
#endif
|
||||
.glyph_bitmap = glyph_bitmap,
|
||||
.glyph_dsc = glyph_dsc,
|
||||
.cmaps = cmaps,
|
||||
.kern_dsc = NULL,
|
||||
.kern_scale = 0,
|
||||
.cmap_num = 1,
|
||||
.bpp = 1,
|
||||
.kern_classes = 0,
|
||||
.bitmap_format = 0,
|
||||
#if LVGL_VERSION_MAJOR == 8
|
||||
.cache = &cache
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
extern const lv_font_t lv_font_montserrat_12;
|
||||
|
||||
|
||||
/*-----------------
|
||||
* PUBLIC FONT
|
||||
*----------------*/
|
||||
|
||||
/*Initialize a public general font descriptor*/
|
||||
#if LVGL_VERSION_MAJOR >= 8
|
||||
const lv_font_t DSEG14C_BI_40px = {
|
||||
#else
|
||||
lv_font_t DSEG14C_BI_40px = {
|
||||
#endif
|
||||
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
|
||||
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
|
||||
.line_height = 40, /*The maximum line height required by the font*/
|
||||
.base_line = 0, /*Baseline measured from the bottom of the line*/
|
||||
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
|
||||
.subpx = LV_FONT_SUBPX_NONE,
|
||||
#endif
|
||||
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
|
||||
.underline_position = -5,
|
||||
.underline_thickness = 2,
|
||||
#endif
|
||||
|
||||
.dsc = &font_dsc, /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||
#if LV_VERSION_CHECK(8, 2, 0) || LVGL_VERSION_MAJOR >= 9
|
||||
.fallback = &lv_font_montserrat_12,
|
||||
#endif
|
||||
.user_data = NULL,
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /*#if DSEG14C_BI_40PX*/
|
||||
417
components/user_fonts/DSEG14C_BI_50px.c
Normal file
417
components/user_fonts/DSEG14C_BI_50px.c
Normal file
@@ -0,0 +1,417 @@
|
||||
/*******************************************************************************
|
||||
* Size: 50 px
|
||||
* Bpp: 1
|
||||
* Opts: --bpp 1 --size 50 --no-compress --stride 1 --align 1 --font DSEG14Classic-BoldItalic.ttf --symbols 0123456789:;., --format lvgl -o DSEG14C_BI_50px.c
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef __has_include
|
||||
#if __has_include("lvgl.h")
|
||||
#ifndef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#define LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#include "lvgl.h"
|
||||
#else
|
||||
#include "lvgl/lvgl.h"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef DSEG14C_BI_50PX
|
||||
#define DSEG14C_BI_50PX 1
|
||||
#endif
|
||||
|
||||
#if DSEG14C_BI_50PX
|
||||
|
||||
/*-----------------
|
||||
* BITMAPS
|
||||
*----------------*/
|
||||
|
||||
/*Store the image of the glyphs*/
|
||||
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
/* U+002C "," */
|
||||
0x19, 0xce, 0xff, 0xff, 0xde, 0xf7, 0xbd, 0xcc,
|
||||
0x60,
|
||||
|
||||
/* U+002E "." */
|
||||
0x7b, 0xef, 0xff, 0xf9, 0xe0,
|
||||
|
||||
/* U+0030 "0" */
|
||||
0x1, 0xff, 0xff, 0xff, 0x0, 0x7f, 0xff, 0xff,
|
||||
0xf0, 0x17, 0xff, 0xff, 0xfd, 0x7, 0x7f, 0xff,
|
||||
0xfe, 0x60, 0xf7, 0xff, 0xff, 0x9e, 0x1f, 0x7f,
|
||||
0xff, 0xe7, 0xc3, 0xf0, 0x0, 0x1, 0xf0, 0xfe,
|
||||
0x0, 0x3, 0x7e, 0x1f, 0xc0, 0x0, 0x6f, 0xc3,
|
||||
0xf8, 0x0, 0x1d, 0xf8, 0x7e, 0x0, 0x7, 0xbf,
|
||||
0xf, 0xc0, 0x0, 0xf7, 0xe1, 0xf8, 0x0, 0x1e,
|
||||
0xfc, 0x3f, 0x0, 0x7, 0xdf, 0x87, 0xe0, 0x0,
|
||||
0xfb, 0xf0, 0xfc, 0x0, 0x1e, 0xfe, 0x1f, 0x80,
|
||||
0x3, 0xdf, 0xc3, 0xf0, 0x0, 0x7b, 0xf8, 0xfe,
|
||||
0x0, 0xe, 0x7e, 0x1f, 0xc0, 0x1, 0xcf, 0xc3,
|
||||
0xf8, 0x0, 0x31, 0xf8, 0x7e, 0x0, 0x0, 0x3f,
|
||||
0xf, 0x80, 0x0, 0x3, 0xe1, 0xe0, 0x0, 0x0,
|
||||
0x3c, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0,
|
||||
0x0, 0x70, 0xf0, 0x0, 0x0, 0x1e, 0x1f, 0x0,
|
||||
0x0, 0x7, 0xc3, 0xf0, 0x0, 0x3, 0xf8, 0x7e,
|
||||
0x30, 0x0, 0x7e, 0x1f, 0xce, 0x0, 0xf, 0xc3,
|
||||
0xf9, 0xc0, 0x1, 0xf8, 0x7f, 0x78, 0x0, 0x3f,
|
||||
0xf, 0xdf, 0x0, 0x7, 0xe1, 0xfb, 0xe0, 0x0,
|
||||
0xfc, 0x3f, 0x78, 0x0, 0x1f, 0x87, 0xef, 0x0,
|
||||
0x3, 0xf0, 0xfd, 0xe0, 0x0, 0x7e, 0x1f, 0xbc,
|
||||
0x0, 0x1f, 0xc3, 0xf7, 0x0, 0x3, 0xf8, 0x7e,
|
||||
0xe0, 0x0, 0x7f, 0x1f, 0xd8, 0x0, 0xf, 0xc3,
|
||||
0xfa, 0x0, 0x1, 0xf8, 0x7e, 0x0, 0x0, 0x3f,
|
||||
0xf, 0x9f, 0xff, 0xfb, 0xe1, 0xe7, 0xff, 0xff,
|
||||
0xbc, 0x3b, 0xff, 0xff, 0xfb, 0x82, 0xff, 0xff,
|
||||
0xff, 0xa0, 0x3f, 0xff, 0xff, 0xf8, 0x3, 0xff,
|
||||
0xff, 0xfc, 0x0,
|
||||
|
||||
/* U+0031 "1" */
|
||||
0x1, 0x80, 0xf0, 0x7c, 0x3f, 0x1f, 0x87, 0xe1,
|
||||
0xf8, 0x7e, 0x1f, 0x87, 0xe1, 0xf8, 0x7e, 0x1f,
|
||||
0x8f, 0xe3, 0xf8, 0xfc, 0x3f, 0xf, 0xc3, 0xf0,
|
||||
0x7c, 0xf, 0x1, 0xc0, 0x0, 0x3c, 0x1f, 0xf,
|
||||
0xc7, 0xf1, 0xf8, 0x7e, 0x1f, 0x87, 0xe1, 0xf8,
|
||||
0x7e, 0x1f, 0x87, 0xe3, 0xf8, 0xfe, 0x3f, 0x8f,
|
||||
0xc3, 0xf0, 0xfc, 0x1f, 0x3, 0xc0, 0x70, 0x8,
|
||||
0x0,
|
||||
|
||||
/* U+0032 "2" */
|
||||
0x1, 0xff, 0xff, 0xff, 0x0, 0x7f, 0xff, 0xff,
|
||||
0xf0, 0x7, 0xff, 0xff, 0xfc, 0x0, 0x7f, 0xff,
|
||||
0xfe, 0x60, 0x7, 0xff, 0xff, 0x9e, 0x0, 0x7f,
|
||||
0xff, 0xe7, 0xc0, 0x0, 0x0, 0x1, 0xf0, 0x0,
|
||||
0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0xf, 0xc0,
|
||||
0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x3f,
|
||||
0x0, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x0,
|
||||
0xfc, 0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0,
|
||||
0x3, 0xf0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0,
|
||||
0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3, 0xf8, 0x0,
|
||||
0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0xf, 0xc0,
|
||||
0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x3f,
|
||||
0x0, 0x1f, 0xc3, 0xfb, 0xe0, 0xf, 0xf8, 0xff,
|
||||
0xbc, 0x3, 0xff, 0xbf, 0xf3, 0x87, 0x7f, 0xe7,
|
||||
0xff, 0x0, 0xf7, 0xfc, 0x7f, 0x80, 0x1f, 0x7f,
|
||||
0xf, 0xe0, 0x3, 0xf0, 0x0, 0x0, 0x0, 0x7e,
|
||||
0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3,
|
||||
0xf8, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0,
|
||||
0xf, 0xc0, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0,
|
||||
0x0, 0x3f, 0x0, 0x0, 0x0, 0x7, 0xe0, 0x0,
|
||||
0x0, 0x0, 0xfc, 0x0, 0x0, 0x0, 0x1f, 0x80,
|
||||
0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0, 0x7e,
|
||||
0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0x3,
|
||||
0xf8, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0,
|
||||
0xf, 0x9f, 0xff, 0xf8, 0x1, 0xe7, 0xff, 0xff,
|
||||
0x80, 0x3b, 0xff, 0xff, 0xf8, 0x2, 0xff, 0xff,
|
||||
0xff, 0x80, 0x3f, 0xff, 0xff, 0xf8, 0x3, 0xff,
|
||||
0xff, 0xfc, 0x0,
|
||||
|
||||
/* U+0033 "3" */
|
||||
0x7, 0xff, 0xff, 0xfc, 0x7, 0xff, 0xff, 0xff,
|
||||
0x1, 0xff, 0xff, 0xff, 0x0, 0x7f, 0xff, 0xfe,
|
||||
0x60, 0x1f, 0xff, 0xfe, 0x78, 0x7, 0xff, 0xfe,
|
||||
0x7c, 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
|
||||
0x7e, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0,
|
||||
0x1f, 0x80, 0x0, 0x0, 0xf, 0xc0, 0x0, 0x0,
|
||||
0x7, 0xe0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0,
|
||||
0x1, 0xf8, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0,
|
||||
0x0, 0xfe, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0,
|
||||
0x0, 0x3f, 0x80, 0x0, 0x0, 0x1f, 0x80, 0x0,
|
||||
0x0, 0xf, 0xc0, 0x0, 0x0, 0x7, 0xe0, 0x0,
|
||||
0x0, 0x3, 0xf0, 0x7, 0xf0, 0xfe, 0xf8, 0xf,
|
||||
0xf8, 0xff, 0xbc, 0xf, 0xfe, 0xff, 0xce, 0x7,
|
||||
0xfe, 0x7f, 0xf0, 0x1, 0xff, 0x1f, 0xe7, 0x80,
|
||||
0x7f, 0xf, 0xe7, 0xc0, 0x0, 0x0, 0x7, 0xe0,
|
||||
0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x3, 0xf0,
|
||||
0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xfc,
|
||||
0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x3f,
|
||||
0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0xf,
|
||||
0xc0, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x7,
|
||||
0xf0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1,
|
||||
0xfc, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0,
|
||||
0x7e, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x7f, 0xff,
|
||||
0xef, 0x80, 0x7f, 0xff, 0xfb, 0xc0, 0xff, 0xff,
|
||||
0xfe, 0xe0, 0xff, 0xff, 0xff, 0xa0, 0xff, 0xff,
|
||||
0xff, 0xe0, 0x3f, 0xff, 0xff, 0xc0, 0x0,
|
||||
|
||||
/* U+0034 "4" */
|
||||
0x10, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x1,
|
||||
0x8e, 0x0, 0x0, 0x1, 0xe7, 0x80, 0x0, 0x1,
|
||||
0xf3, 0xe0, 0x0, 0x1, 0xf3, 0xf8, 0x0, 0x1,
|
||||
0xf9, 0xfc, 0x0, 0x0, 0xfc, 0xfe, 0x0, 0x0,
|
||||
0x7e, 0x7e, 0x0, 0x0, 0x3f, 0x3f, 0x0, 0x0,
|
||||
0x1f, 0x9f, 0x80, 0x0, 0xf, 0xcf, 0xc0, 0x0,
|
||||
0x7, 0xe7, 0xe0, 0x0, 0x3, 0xf3, 0xf0, 0x0,
|
||||
0x3, 0xf9, 0xf8, 0x0, 0x1, 0xfc, 0xfc, 0x0,
|
||||
0x0, 0xfe, 0x7e, 0x0, 0x0, 0x7e, 0x7f, 0x0,
|
||||
0x0, 0x3f, 0x3f, 0x80, 0x0, 0x1f, 0x9f, 0x80,
|
||||
0x0, 0xf, 0xcf, 0x9f, 0xc3, 0xfb, 0xe7, 0xbf,
|
||||
0xe3, 0xfe, 0xf3, 0xbf, 0xfb, 0xff, 0x38, 0x1f,
|
||||
0xf9, 0xff, 0xc0, 0x7, 0xfc, 0x7f, 0x9e, 0x1,
|
||||
0xfc, 0x3f, 0x9f, 0x0, 0x0, 0x0, 0x3f, 0x80,
|
||||
0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0xf, 0xc0,
|
||||
0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x3, 0xf0,
|
||||
0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xfc,
|
||||
0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x3f,
|
||||
0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x1f,
|
||||
0xc0, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x7,
|
||||
0xf0, 0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x1,
|
||||
0xf8, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0,
|
||||
0x3e, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
|
||||
0x3, 0x80, 0x0, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0035 "5" */
|
||||
0x7, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xfc,
|
||||
0x5f, 0xff, 0xff, 0xf1, 0xdf, 0xff, 0xff, 0x83,
|
||||
0xdf, 0xff, 0xfe, 0x7, 0xdf, 0xff, 0xf8, 0xf,
|
||||
0xc0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x7f,
|
||||
0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x1, 0xf8,
|
||||
0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x7, 0xe0,
|
||||
0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0x1f, 0x80,
|
||||
0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x7e, 0x0,
|
||||
0x0, 0x0, 0xfc, 0x0, 0x0, 0x1, 0xf8, 0x0,
|
||||
0x0, 0x7, 0xf0, 0x0, 0x0, 0xf, 0xe0, 0x0,
|
||||
0x0, 0x1f, 0x80, 0x0, 0x0, 0x3e, 0x7f, 0xf,
|
||||
0xe0, 0x7b, 0xfe, 0x3f, 0xe0, 0xef, 0xfe, 0xff,
|
||||
0xc0, 0x1f, 0xf9, 0xff, 0xc0, 0x1f, 0xf1, 0xfe,
|
||||
0x78, 0x1f, 0xc3, 0xf9, 0xf0, 0x0, 0x0, 0x7,
|
||||
0xe0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x3f,
|
||||
0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0xfc,
|
||||
0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x3, 0xf0,
|
||||
0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0xf, 0xc0,
|
||||
0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0x7f, 0x0,
|
||||
0x0, 0x0, 0xfe, 0x0, 0x0, 0x1, 0xfc, 0x0,
|
||||
0x0, 0x3, 0xf0, 0x0, 0x0, 0x7, 0xe0, 0x0,
|
||||
0x0, 0xf, 0xc0, 0x7f, 0xff, 0xef, 0x81, 0xff,
|
||||
0xff, 0xef, 0xf, 0xff, 0xff, 0xee, 0x3f, 0xff,
|
||||
0xff, 0xe8, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff,
|
||||
0xff, 0x0,
|
||||
|
||||
/* U+0036 "6" */
|
||||
0x1, 0xff, 0xff, 0xff, 0x1, 0xff, 0xff, 0xff,
|
||||
0xc1, 0x7f, 0xff, 0xff, 0xc1, 0xdf, 0xff, 0xff,
|
||||
0x80, 0xf7, 0xff, 0xff, 0x80, 0x7d, 0xff, 0xff,
|
||||
0x80, 0x3f, 0x0, 0x0, 0x0, 0x3f, 0x80, 0x0,
|
||||
0x0, 0x1f, 0xc0, 0x0, 0x0, 0xf, 0xe0, 0x0,
|
||||
0x0, 0x7, 0xe0, 0x0, 0x0, 0x3, 0xf0, 0x0,
|
||||
0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xfc, 0x0,
|
||||
0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x3f, 0x0,
|
||||
0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0xf, 0xc0,
|
||||
0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x7, 0xf0,
|
||||
0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1, 0xf8,
|
||||
0x0, 0x0, 0x0, 0xf9, 0xfc, 0x3f, 0x80, 0x7b,
|
||||
0xfe, 0x3f, 0xe0, 0x3b, 0xff, 0xbf, 0xf0, 0x1d,
|
||||
0xff, 0x9f, 0xfd, 0xcf, 0x7f, 0xc7, 0xf9, 0xe7,
|
||||
0xdf, 0xc3, 0xfb, 0xf3, 0xf0, 0x0, 0x3, 0xf9,
|
||||
0xf8, 0x0, 0x1, 0xf9, 0xfc, 0x0, 0x0, 0xfc,
|
||||
0xfe, 0x0, 0x0, 0x7e, 0x7f, 0x0, 0x0, 0x3f,
|
||||
0x3f, 0x0, 0x0, 0x1f, 0x9f, 0x80, 0x0, 0xf,
|
||||
0xcf, 0xc0, 0x0, 0x7, 0xe7, 0xe0, 0x0, 0x3,
|
||||
0xf3, 0xf0, 0x0, 0x1, 0xf9, 0xf8, 0x0, 0x1,
|
||||
0xfc, 0xfc, 0x0, 0x0, 0xfe, 0x7e, 0x0, 0x0,
|
||||
0x7f, 0x7f, 0x0, 0x0, 0x3f, 0x3f, 0x80, 0x0,
|
||||
0x1f, 0x9f, 0x80, 0x0, 0xf, 0xcf, 0x9f, 0xff,
|
||||
0xfb, 0xe7, 0x9f, 0xff, 0xfe, 0xf3, 0xbf, 0xff,
|
||||
0xff, 0xb8, 0xbf, 0xff, 0xff, 0xe8, 0x3f, 0xff,
|
||||
0xff, 0xf8, 0xf, 0xff, 0xff, 0xf0, 0x0,
|
||||
|
||||
/* U+0037 "7" */
|
||||
0x7, 0xff, 0xff, 0xfc, 0x7, 0xff, 0xff, 0xff,
|
||||
0x5, 0xff, 0xff, 0xff, 0x47, 0x7f, 0xff, 0xfe,
|
||||
0x73, 0xdf, 0xff, 0xfe, 0x79, 0xf7, 0xff, 0xfe,
|
||||
0x7c, 0xfc, 0x0, 0x0, 0x7c, 0xfe, 0x0, 0x0,
|
||||
0x7e, 0x7f, 0x0, 0x0, 0x3f, 0x3f, 0x80, 0x0,
|
||||
0x1f, 0x9f, 0x80, 0x0, 0xf, 0xcf, 0xc0, 0x0,
|
||||
0x7, 0xe7, 0xe0, 0x0, 0x3, 0xf3, 0xf0, 0x0,
|
||||
0x1, 0xf9, 0xf8, 0x0, 0x0, 0xfc, 0xfc, 0x0,
|
||||
0x0, 0xfe, 0x7e, 0x0, 0x0, 0x7f, 0x3f, 0x0,
|
||||
0x0, 0x3f, 0xbf, 0x80, 0x0, 0x1f, 0x9f, 0xc0,
|
||||
0x0, 0xf, 0xcf, 0xe0, 0x0, 0x7, 0xe7, 0xe0,
|
||||
0x0, 0x3, 0xf3, 0xe0, 0x0, 0x0, 0xf9, 0xe0,
|
||||
0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x7, 0x80,
|
||||
0x0, 0x0, 0xf, 0xc0, 0x0, 0x0, 0xf, 0xe0,
|
||||
0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x3, 0xf0,
|
||||
0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xfc,
|
||||
0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x3f,
|
||||
0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0xf,
|
||||
0xc0, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x7,
|
||||
0xf0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1,
|
||||
0xfc, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0,
|
||||
0x7e, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
|
||||
0xf, 0x80, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
|
||||
0x0, 0xe0, 0x0, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0038 "8" */
|
||||
0x1, 0xff, 0xff, 0xff, 0x0, 0x7f, 0xff, 0xff,
|
||||
0xf0, 0x17, 0xff, 0xff, 0xfc, 0x7, 0x7f, 0xff,
|
||||
0xfe, 0x60, 0xf7, 0xff, 0xff, 0x9e, 0x1f, 0x7f,
|
||||
0xff, 0xe7, 0xc3, 0xf0, 0x0, 0x1, 0xf0, 0xfe,
|
||||
0x0, 0x0, 0x7e, 0x1f, 0xc0, 0x0, 0xf, 0xc3,
|
||||
0xf8, 0x0, 0x1, 0xf8, 0x7e, 0x0, 0x0, 0x3f,
|
||||
0xf, 0xc0, 0x0, 0x7, 0xe1, 0xf8, 0x0, 0x0,
|
||||
0xfc, 0x3f, 0x0, 0x0, 0x1f, 0x87, 0xe0, 0x0,
|
||||
0x3, 0xf0, 0xfc, 0x0, 0x0, 0xfe, 0x1f, 0x80,
|
||||
0x0, 0x1f, 0xc3, 0xf0, 0x0, 0x3, 0xf8, 0x7e,
|
||||
0x0, 0x0, 0x7e, 0x1f, 0xc0, 0x0, 0xf, 0xc3,
|
||||
0xf8, 0x0, 0x1, 0xf8, 0x7e, 0x0, 0x0, 0x3f,
|
||||
0xf, 0x9f, 0xc3, 0xfb, 0xe1, 0xef, 0xf8, 0xff,
|
||||
0xbc, 0x3b, 0xff, 0xbf, 0xf3, 0x87, 0x7f, 0xe7,
|
||||
0xff, 0x70, 0xf7, 0xfc, 0x7f, 0x9e, 0x1f, 0x7f,
|
||||
0xf, 0xef, 0xc3, 0xf0, 0x0, 0x3, 0xf8, 0x7e,
|
||||
0x0, 0x0, 0x7e, 0x1f, 0xc0, 0x0, 0xf, 0xc3,
|
||||
0xf8, 0x0, 0x1, 0xf8, 0x7f, 0x0, 0x0, 0x3f,
|
||||
0xf, 0xc0, 0x0, 0x7, 0xe1, 0xf8, 0x0, 0x0,
|
||||
0xfc, 0x3f, 0x0, 0x0, 0x1f, 0x87, 0xe0, 0x0,
|
||||
0x3, 0xf0, 0xfc, 0x0, 0x0, 0x7e, 0x1f, 0x80,
|
||||
0x0, 0x1f, 0xc3, 0xf0, 0x0, 0x3, 0xf8, 0x7e,
|
||||
0x0, 0x0, 0x7f, 0x1f, 0xc0, 0x0, 0xf, 0xc3,
|
||||
0xf8, 0x0, 0x1, 0xf8, 0x7e, 0x0, 0x0, 0x3f,
|
||||
0xf, 0x9f, 0xff, 0xfb, 0xe1, 0xe7, 0xff, 0xff,
|
||||
0xbc, 0x3b, 0xff, 0xff, 0xfb, 0x82, 0xff, 0xff,
|
||||
0xff, 0xa0, 0x3f, 0xff, 0xff, 0xf8, 0x3, 0xff,
|
||||
0xff, 0xfc, 0x0,
|
||||
|
||||
/* U+0039 "9" */
|
||||
0x7, 0xff, 0xff, 0xfc, 0x7, 0xff, 0xff, 0xff,
|
||||
0x5, 0xff, 0xff, 0xff, 0x7, 0x7f, 0xff, 0xfe,
|
||||
0x63, 0xdf, 0xff, 0xfe, 0x79, 0xf7, 0xff, 0xfe,
|
||||
0x7c, 0xfc, 0x0, 0x0, 0x7c, 0xfe, 0x0, 0x0,
|
||||
0x7e, 0x7f, 0x0, 0x0, 0x3f, 0x3f, 0x80, 0x0,
|
||||
0x1f, 0x9f, 0x80, 0x0, 0xf, 0xcf, 0xc0, 0x0,
|
||||
0x7, 0xe7, 0xe0, 0x0, 0x3, 0xf3, 0xf0, 0x0,
|
||||
0x1, 0xf9, 0xf8, 0x0, 0x0, 0xfc, 0xfc, 0x0,
|
||||
0x0, 0xfe, 0x7e, 0x0, 0x0, 0x7f, 0x3f, 0x0,
|
||||
0x0, 0x3f, 0x9f, 0x80, 0x0, 0x1f, 0x9f, 0xc0,
|
||||
0x0, 0xf, 0xcf, 0xe0, 0x0, 0x7, 0xe7, 0xe0,
|
||||
0x0, 0x3, 0xf3, 0xe7, 0xf0, 0xfe, 0xf9, 0xef,
|
||||
0xf8, 0xff, 0xbc, 0xef, 0xfe, 0xff, 0xce, 0x7,
|
||||
0xfe, 0x7f, 0xf0, 0x1, 0xff, 0x1f, 0xe7, 0x80,
|
||||
0x7f, 0xf, 0xe7, 0xc0, 0x0, 0x0, 0x7, 0xe0,
|
||||
0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x3, 0xf0,
|
||||
0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0xfc,
|
||||
0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x3f,
|
||||
0x0, 0x0, 0x0, 0x1f, 0x80, 0x0, 0x0, 0xf,
|
||||
0xc0, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x7,
|
||||
0xf0, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1,
|
||||
0xfc, 0x0, 0x0, 0x0, 0xfc, 0x0, 0x0, 0x0,
|
||||
0x7e, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x7f, 0xff,
|
||||
0xef, 0x80, 0x7f, 0xff, 0xfb, 0xc0, 0xff, 0xff,
|
||||
0xfe, 0xe0, 0xff, 0xff, 0xff, 0xa0, 0xff, 0xff,
|
||||
0xff, 0xe0, 0x3f, 0xff, 0xff, 0xc0, 0x0,
|
||||
|
||||
/* U+003A ":" */
|
||||
0x1e, 0x3f, 0x3f, 0x3f, 0x3f, 0x1e, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0xfc, 0xfc,
|
||||
0xfc, 0xfc, 0x78
|
||||
};
|
||||
|
||||
|
||||
/*---------------------
|
||||
* GLYPH DESCRIPTION
|
||||
*--------------------*/
|
||||
|
||||
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
|
||||
{.bitmap_index = 0, .adv_w = 653, .box_w = 5, .box_h = 14, .ofs_x = 11, .ofs_y = 7},
|
||||
{.bitmap_index = 9, .adv_w = 0, .box_w = 6, .box_h = 6, .ofs_x = -5, .ofs_y = 0},
|
||||
{.bitmap_index = 14, .adv_w = 653, .box_w = 35, .box_h = 50, .ofs_x = 3, .ofs_y = 0},
|
||||
{.bitmap_index = 233, .adv_w = 653, .box_w = 10, .box_h = 45, .ofs_x = 28, .ofs_y = 2},
|
||||
{.bitmap_index = 290, .adv_w = 653, .box_w = 35, .box_h = 50, .ofs_x = 3, .ofs_y = 0},
|
||||
{.bitmap_index = 509, .adv_w = 653, .box_w = 33, .box_h = 50, .ofs_x = 5, .ofs_y = 0},
|
||||
{.bitmap_index = 716, .adv_w = 653, .box_w = 33, .box_h = 46, .ofs_x = 5, .ofs_y = 2},
|
||||
{.bitmap_index = 906, .adv_w = 653, .box_w = 31, .box_h = 50, .ofs_x = 5, .ofs_y = 0},
|
||||
{.bitmap_index = 1100, .adv_w = 653, .box_w = 33, .box_h = 50, .ofs_x = 3, .ofs_y = 0},
|
||||
{.bitmap_index = 1307, .adv_w = 653, .box_w = 33, .box_h = 48, .ofs_x = 5, .ofs_y = 2},
|
||||
{.bitmap_index = 1505, .adv_w = 653, .box_w = 35, .box_h = 50, .ofs_x = 3, .ofs_y = 0},
|
||||
{.bitmap_index = 1724, .adv_w = 653, .box_w = 33, .box_h = 50, .ofs_x = 5, .ofs_y = 0},
|
||||
{.bitmap_index = 1931, .adv_w = 160, .box_w = 8, .box_h = 27, .ofs_x = 1, .ofs_y = 11}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
* CHARACTER MAPPING
|
||||
*--------------------*/
|
||||
|
||||
static const uint8_t glyph_id_ofs_list_0[] = {
|
||||
0, 0, 1, 0, 2, 3, 4, 5,
|
||||
6, 7, 8, 9, 10, 11, 12
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
{
|
||||
{
|
||||
.range_start = 44, .range_length = 15, .glyph_id_start = 1,
|
||||
.unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 15, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*--------------------
|
||||
* ALL CUSTOM DATA
|
||||
*--------------------*/
|
||||
|
||||
#if LVGL_VERSION_MAJOR == 8
|
||||
/*Store all the custom data of the font*/
|
||||
static lv_font_fmt_txt_glyph_cache_t cache;
|
||||
#endif
|
||||
|
||||
#if LVGL_VERSION_MAJOR >= 8
|
||||
static const lv_font_fmt_txt_dsc_t font_dsc = {
|
||||
#else
|
||||
static lv_font_fmt_txt_dsc_t font_dsc = {
|
||||
#endif
|
||||
.glyph_bitmap = glyph_bitmap,
|
||||
.glyph_dsc = glyph_dsc,
|
||||
.cmaps = cmaps,
|
||||
.kern_dsc = NULL,
|
||||
.kern_scale = 0,
|
||||
.cmap_num = 1,
|
||||
.bpp = 1,
|
||||
.kern_classes = 0,
|
||||
.bitmap_format = 0,
|
||||
#if LVGL_VERSION_MAJOR == 8
|
||||
.cache = &cache
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
extern const lv_font_t lv_font_montserrat_12;
|
||||
|
||||
|
||||
/*-----------------
|
||||
* PUBLIC FONT
|
||||
*----------------*/
|
||||
|
||||
/*Initialize a public general font descriptor*/
|
||||
#if LVGL_VERSION_MAJOR >= 8
|
||||
const lv_font_t DSEG14C_BI_50px = {
|
||||
#else
|
||||
lv_font_t DSEG14C_BI_50px = {
|
||||
#endif
|
||||
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
|
||||
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
|
||||
.line_height = 50, /*The maximum line height required by the font*/
|
||||
.base_line = 0, /*Baseline measured from the bottom of the line*/
|
||||
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
|
||||
.subpx = LV_FONT_SUBPX_NONE,
|
||||
#endif
|
||||
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
|
||||
.underline_position = -6,
|
||||
.underline_thickness = 3,
|
||||
#endif
|
||||
.dsc = &font_dsc, /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||
#if LV_VERSION_CHECK(8, 2, 0) || LVGL_VERSION_MAJOR >= 9
|
||||
.fallback = &lv_font_montserrat_12,
|
||||
#endif
|
||||
.user_data = NULL,
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /*#if DSEG14C_BI_50PX*/
|
||||
924
components/user_fonts/InziuIosevka_Slab_CC_12px.c
Normal file
924
components/user_fonts/InziuIosevka_Slab_CC_12px.c
Normal file
@@ -0,0 +1,924 @@
|
||||
/*******************************************************************************
|
||||
* Size: 12 px
|
||||
* Bpp: 1
|
||||
* Opts: --bpp 1 --size 12 --no-compress --stride 1 --align 1 --font Inziu-IosevkaCC-Slab-J-Regular-04.ttf --range 0-254 --format lvgl -o InziuIosevka_Slab_CC_12px.c
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef __has_include
|
||||
#if __has_include("lvgl.h")
|
||||
#ifndef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#define LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#include "lvgl.h"
|
||||
#else
|
||||
#include "lvgl/lvgl.h"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef INZIUIOSEVKA_SLAB_CC_12PX
|
||||
#define INZIUIOSEVKA_SLAB_CC_12PX 1
|
||||
#endif
|
||||
|
||||
#if INZIUIOSEVKA_SLAB_CC_12PX
|
||||
|
||||
/*-----------------
|
||||
* BITMAPS
|
||||
*----------------*/
|
||||
|
||||
/*Store the image of the glyphs*/
|
||||
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
/* U+000D "\r" */
|
||||
0x0,
|
||||
|
||||
/* U+0020 " " */
|
||||
0x0,
|
||||
|
||||
/* U+0021 "!" */
|
||||
0x55, 0x50, 0xf0,
|
||||
|
||||
/* U+0022 "\"" */
|
||||
0xb6, 0xd0,
|
||||
|
||||
/* U+0023 "#" */
|
||||
0x52, 0x95, 0xf5, 0x29, 0x4a, 0xfa, 0x94, 0xa0,
|
||||
|
||||
/* U+0024 "$" */
|
||||
0x21, 0x1d, 0xda, 0x51, 0x86, 0x2d, 0x7c, 0x42,
|
||||
0x0,
|
||||
|
||||
/* U+0025 "%" */
|
||||
0x99, 0xa2, 0x24, 0x45, 0x99,
|
||||
|
||||
/* U+0026 "&" */
|
||||
0x64, 0xa5, 0x66, 0x36, 0xf3, 0x8b, 0xc0,
|
||||
|
||||
/* U+0027 "'" */
|
||||
0xf0,
|
||||
|
||||
/* U+0028 "(" */
|
||||
0x2, 0x44, 0x88, 0x88, 0x88, 0x84, 0x42,
|
||||
|
||||
/* U+0029 ")" */
|
||||
0x4, 0x22, 0x11, 0x11, 0x11, 0x12, 0x24,
|
||||
|
||||
/* U+002A "*" */
|
||||
0x21, 0x3e, 0xa5, 0x0,
|
||||
|
||||
/* U+002B "+" */
|
||||
0x21, 0x3e, 0x42, 0x0,
|
||||
|
||||
/* U+002C "," */
|
||||
0xf6, 0x0,
|
||||
|
||||
/* U+002D "-" */
|
||||
0xf0,
|
||||
|
||||
/* U+002E "." */
|
||||
0xf0,
|
||||
|
||||
/* U+002F "/" */
|
||||
0x11, 0x12, 0x22, 0x24, 0x44, 0x48, 0x88,
|
||||
|
||||
/* U+0030 "0" */
|
||||
0x74, 0x63, 0x3a, 0xd7, 0x31, 0xcb, 0x80,
|
||||
|
||||
/* U+0031 "1" */
|
||||
0x67, 0x8, 0x42, 0x10, 0x84, 0x27, 0xc0,
|
||||
|
||||
/* U+0032 "2" */
|
||||
0x72, 0x42, 0x11, 0x19, 0x88, 0x4f, 0xc0,
|
||||
|
||||
/* U+0033 "3" */
|
||||
0x72, 0x42, 0x33, 0xc, 0x21, 0x4b, 0x80,
|
||||
|
||||
/* U+0034 "4" */
|
||||
0x11, 0x8c, 0xa5, 0x4b, 0xe2, 0x11, 0xc0,
|
||||
|
||||
/* U+0035 "5" */
|
||||
0xfc, 0x61, 0xf, 0x4c, 0x21, 0x8b, 0x80,
|
||||
|
||||
/* U+0036 "6" */
|
||||
0x11, 0x11, 0x8f, 0x46, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+0037 "7" */
|
||||
0xfc, 0x84, 0x22, 0x10, 0x84, 0x42, 0x0,
|
||||
|
||||
/* U+0038 "8" */
|
||||
0x74, 0x63, 0x37, 0x2a, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+0039 "9" */
|
||||
0x74, 0x63, 0x18, 0xbc, 0x31, 0xdb, 0x80,
|
||||
|
||||
/* U+003A ":" */
|
||||
0xf0, 0x3c,
|
||||
|
||||
/* U+003B ";" */
|
||||
0xf0, 0x3d, 0x80,
|
||||
|
||||
/* U+003C "<" */
|
||||
0x0, 0x99, 0x88, 0x20, 0xc3,
|
||||
|
||||
/* U+003D "=" */
|
||||
0xf0, 0xf,
|
||||
|
||||
/* U+003E ">" */
|
||||
0x2, 0xc, 0x30, 0x89, 0x98,
|
||||
|
||||
/* U+003F "?" */
|
||||
0x74, 0x42, 0x11, 0x10, 0x80, 0x63, 0x0,
|
||||
|
||||
/* U+0040 "@" */
|
||||
0x74, 0x42, 0x1e, 0xd6, 0xb5, 0xad, 0x6b, 0xb0,
|
||||
|
||||
/* U+0041 "A" */
|
||||
0x30, 0xc3, 0xc, 0x31, 0x24, 0x9e, 0x4b, 0x30,
|
||||
|
||||
/* U+0042 "B" */
|
||||
0xf1, 0x24, 0x92, 0x49, 0xc4, 0xd1, 0x4f, 0xe0,
|
||||
|
||||
/* U+0043 "C" */
|
||||
0x74, 0xe1, 0x8, 0x42, 0x10, 0x9b, 0x80,
|
||||
|
||||
/* U+0044 "D" */
|
||||
0xf9, 0x34, 0x51, 0x45, 0x14, 0x51, 0x4f, 0xe0,
|
||||
|
||||
/* U+0045 "E" */
|
||||
0xfa, 0x50, 0x84, 0x39, 0x8, 0x4f, 0xc0,
|
||||
|
||||
/* U+0046 "F" */
|
||||
0xfa, 0x50, 0x84, 0x39, 0x8, 0x47, 0x0,
|
||||
|
||||
/* U+0047 "G" */
|
||||
0x74, 0x61, 0x8, 0x4e, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+0048 "H" */
|
||||
0xcd, 0x24, 0x92, 0x79, 0x24, 0x92, 0x4b, 0x30,
|
||||
|
||||
/* U+0049 "I" */
|
||||
0xe9, 0x24, 0x92, 0x5c,
|
||||
|
||||
/* U+004A "J" */
|
||||
0x71, 0x11, 0x11, 0x11, 0x9e,
|
||||
|
||||
/* U+004B "K" */
|
||||
0xed, 0x25, 0x14, 0x71, 0xc5, 0x12, 0x4b, 0xb0,
|
||||
|
||||
/* U+004C "L" */
|
||||
0xe2, 0x10, 0x84, 0x21, 0x8, 0x4f, 0xc0,
|
||||
|
||||
/* U+004D "M" */
|
||||
0xcd, 0x27, 0x9e, 0x79, 0x64, 0x92, 0x4b, 0x30,
|
||||
|
||||
/* U+004E "N" */
|
||||
0xcd, 0xa6, 0x9a, 0x69, 0xa5, 0x96, 0x5b, 0x20,
|
||||
|
||||
/* U+004F "O" */
|
||||
0x74, 0x63, 0x18, 0xc6, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+0050 "P" */
|
||||
0xf2, 0x52, 0x94, 0xb9, 0x8, 0x46, 0x0,
|
||||
|
||||
/* U+0051 "Q" */
|
||||
0x74, 0x63, 0x18, 0xc6, 0x31, 0x8b, 0x88, 0x30,
|
||||
|
||||
/* U+0052 "R" */
|
||||
0xf9, 0x14, 0x51, 0x45, 0xe5, 0x92, 0x4b, 0x90,
|
||||
|
||||
/* U+0053 "S" */
|
||||
0x69, 0x88, 0x42, 0x11, 0x96,
|
||||
|
||||
/* U+0054 "T" */
|
||||
0xfd, 0x48, 0x42, 0x10, 0x84, 0x23, 0x80,
|
||||
|
||||
/* U+0055 "U" */
|
||||
0xcd, 0x24, 0x92, 0x49, 0x24, 0x92, 0x48, 0xc0,
|
||||
|
||||
/* U+0056 "V" */
|
||||
0xcd, 0x24, 0x92, 0x48, 0xc3, 0xc, 0x30, 0xc0,
|
||||
|
||||
/* U+0057 "W" */
|
||||
0xcd, 0x24, 0x92, 0x49, 0xa7, 0x9e, 0x31, 0x40,
|
||||
|
||||
/* U+0058 "X" */
|
||||
0xcd, 0x24, 0x8c, 0x30, 0xc3, 0x12, 0x4b, 0x30,
|
||||
|
||||
/* U+0059 "Y" */
|
||||
0xee, 0x89, 0x11, 0x42, 0x82, 0x4, 0x8, 0x10,
|
||||
0x70,
|
||||
|
||||
/* U+005A "Z" */
|
||||
0xfc, 0x84, 0x42, 0x31, 0x8, 0x8f, 0xc0,
|
||||
|
||||
/* U+005B "[" */
|
||||
0xf8, 0x88, 0x88, 0x88, 0x88, 0x88, 0x8f,
|
||||
|
||||
/* U+005C "\\" */
|
||||
0x88, 0x84, 0x44, 0x42, 0x22, 0x21, 0x11,
|
||||
|
||||
/* U+005D "]" */
|
||||
0xf1, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1f,
|
||||
|
||||
/* U+005E "^" */
|
||||
0x6f, 0x90,
|
||||
|
||||
/* U+005F "_" */
|
||||
0xf0,
|
||||
|
||||
/* U+0060 "`" */
|
||||
0x88, 0x80,
|
||||
|
||||
/* U+0061 "a" */
|
||||
0x71, 0x20, 0x9e, 0x4a, 0x27, 0xc0,
|
||||
|
||||
/* U+0062 "b" */
|
||||
0xc1, 0x4, 0x1e, 0x45, 0x14, 0x51, 0x47, 0xe0,
|
||||
|
||||
/* U+0063 "c" */
|
||||
0x74, 0xe1, 0x8, 0x4d, 0xc0,
|
||||
|
||||
/* U+0064 "d" */
|
||||
0x18, 0x20, 0x9e, 0x8a, 0x28, 0xa2, 0x89, 0xf0,
|
||||
|
||||
/* U+0065 "e" */
|
||||
0x74, 0x63, 0xf8, 0x45, 0xc0,
|
||||
|
||||
/* U+0066 "f" */
|
||||
0x75, 0x4f, 0x44, 0x44, 0x4f,
|
||||
|
||||
/* U+0067 "g" */
|
||||
0x7c, 0x63, 0x17, 0x41, 0xd3, 0x9b, 0x80,
|
||||
|
||||
/* U+0068 "h" */
|
||||
0xc1, 0x4, 0x1c, 0x49, 0x24, 0x92, 0x4b, 0x30,
|
||||
|
||||
/* U+0069 "i" */
|
||||
0x60, 0x1, 0xc2, 0x10, 0x84, 0x27, 0xc0,
|
||||
|
||||
/* U+006A "j" */
|
||||
0x10, 0x7, 0x11, 0x11, 0x11, 0x19, 0x60,
|
||||
|
||||
/* U+006B "k" */
|
||||
0xc1, 0x4, 0x13, 0x51, 0x47, 0x14, 0x4b, 0xb0,
|
||||
|
||||
/* U+006C "l" */
|
||||
0xe1, 0x8, 0x42, 0x10, 0x84, 0x27, 0xc0,
|
||||
|
||||
/* U+006D "m" */
|
||||
0xfd, 0x6b, 0x5a, 0xd6, 0xa0,
|
||||
|
||||
/* U+006E "n" */
|
||||
0xf1, 0x24, 0x92, 0x49, 0x2c, 0xc0,
|
||||
|
||||
/* U+006F "o" */
|
||||
0x74, 0x63, 0x18, 0xc5, 0xc0,
|
||||
|
||||
/* U+0070 "p" */
|
||||
0xf9, 0x14, 0x51, 0x45, 0x17, 0x90, 0x43, 0x80,
|
||||
|
||||
/* U+0071 "q" */
|
||||
0x7e, 0x28, 0xa2, 0x8a, 0x27, 0x82, 0x8, 0x70,
|
||||
|
||||
/* U+0072 "r" */
|
||||
0xfa, 0x10, 0x84, 0x23, 0x80,
|
||||
|
||||
/* U+0073 "s" */
|
||||
0x74, 0xa0, 0xe1, 0x49, 0xc0,
|
||||
|
||||
/* U+0074 "t" */
|
||||
0x42, 0x11, 0xe4, 0x21, 0x8, 0x49, 0x80,
|
||||
|
||||
/* U+0075 "u" */
|
||||
0xc9, 0x24, 0x92, 0x49, 0x23, 0xc0,
|
||||
|
||||
/* U+0076 "v" */
|
||||
0xcd, 0x24, 0x92, 0x30, 0xc3, 0x0,
|
||||
|
||||
/* U+0077 "w" */
|
||||
0xcd, 0x24, 0x9a, 0x78, 0xc3, 0x0,
|
||||
|
||||
/* U+0078 "x" */
|
||||
0xcd, 0x23, 0xc, 0x31, 0x2c, 0xc0,
|
||||
|
||||
/* U+0079 "y" */
|
||||
0xcd, 0x24, 0x92, 0x30, 0xc3, 0x8, 0x21, 0x80,
|
||||
|
||||
/* U+007A "z" */
|
||||
0xfc, 0x8c, 0x44, 0x67, 0xe0,
|
||||
|
||||
/* U+007B "{" */
|
||||
0x36, 0x46, 0x22, 0xc6, 0x22, 0x44, 0x63,
|
||||
|
||||
/* U+007C "|" */
|
||||
0xff, 0xfc,
|
||||
|
||||
/* U+007D "}" */
|
||||
0xc6, 0x26, 0x44, 0x34, 0x44, 0x22, 0x6c,
|
||||
|
||||
/* U+007E "~" */
|
||||
0x1, 0xa9, 0x80,
|
||||
|
||||
/* U+00A0 " " */
|
||||
0x0,
|
||||
|
||||
/* U+00A1 "¡" */
|
||||
0xf0, 0x55, 0x50,
|
||||
|
||||
/* U+00A2 "¢" */
|
||||
0x23, 0xa7, 0x8, 0x42, 0x6e, 0x20,
|
||||
|
||||
/* U+00A3 "£" */
|
||||
0x32, 0x90, 0x8e, 0x21, 0x8, 0xc7, 0xc0,
|
||||
|
||||
/* U+00A4 "¤" */
|
||||
0xfc, 0x63, 0x1f, 0x80,
|
||||
|
||||
/* U+00A5 "¥" */
|
||||
0xcd, 0x24, 0x9c, 0x31, 0xe2, 0x1e, 0x20, 0xc0,
|
||||
|
||||
/* U+00A6 "¦" */
|
||||
0xfc, 0xfc,
|
||||
|
||||
/* U+00A7 "§" */
|
||||
0x74, 0x61, 0x6, 0x6e, 0x31, 0xd9, 0x82, 0x18,
|
||||
0xb8,
|
||||
|
||||
/* U+00A8 "¨" */
|
||||
0xf0,
|
||||
|
||||
/* U+00A9 "©" */
|
||||
0x3e, 0x31, 0xb7, 0x72, 0x99, 0xc, 0x86, 0x53,
|
||||
0xbb, 0x63, 0x1f, 0x0,
|
||||
|
||||
/* U+00AA "ª" */
|
||||
0x7f, 0x9f, 0xf,
|
||||
|
||||
/* U+00AB "«" */
|
||||
0x4a, 0xa9, 0x45, 0x28, 0xa0,
|
||||
|
||||
/* U+00AC "¬" */
|
||||
0xf1, 0x10,
|
||||
|
||||
/* U+00AD "" */
|
||||
0xf0,
|
||||
|
||||
/* U+00AE "®" */
|
||||
0x3e, 0x31, 0xb7, 0x72, 0x99, 0x4c, 0xc6, 0x53,
|
||||
0xab, 0x63, 0x1f, 0x0,
|
||||
|
||||
/* U+00AF "¯" */
|
||||
0xf0,
|
||||
|
||||
/* U+00B0 "°" */
|
||||
0xf7, 0x80,
|
||||
|
||||
/* U+00B1 "±" */
|
||||
0x21, 0x9, 0xf2, 0x10, 0x1f,
|
||||
|
||||
/* U+00B2 "²" */
|
||||
0x79, 0x16, 0x4f,
|
||||
|
||||
/* U+00B3 "³" */
|
||||
0x71, 0x31, 0x97,
|
||||
|
||||
/* U+00B4 "´" */
|
||||
0x2a, 0x0,
|
||||
|
||||
/* U+00B5 "µ" */
|
||||
0xc9, 0x24, 0x92, 0x49, 0x27, 0xd0, 0x43, 0x0,
|
||||
|
||||
/* U+00B6 "¶" */
|
||||
0x6d, 0x6b, 0x5a, 0xb4, 0xa5, 0x29, 0x40,
|
||||
|
||||
/* U+00B7 "·" */
|
||||
0xf0,
|
||||
|
||||
/* U+00B8 "¸" */
|
||||
0x47, 0x80,
|
||||
|
||||
/* U+00B9 "¹" */
|
||||
0xc9, 0x25, 0xc0,
|
||||
|
||||
/* U+00BA "º" */
|
||||
0xf9, 0x9f, 0xf,
|
||||
|
||||
/* U+00BB "»" */
|
||||
0xa2, 0x8a, 0x55, 0x2a, 0x80,
|
||||
|
||||
/* U+00BC "¼" */
|
||||
0x26, 0x22, 0x26, 0xf, 0x2, 0x66, 0x62,
|
||||
|
||||
/* U+00BD "½" */
|
||||
0x23, 0x8, 0x42, 0x38, 0x1f, 0x3, 0x84, 0x44,
|
||||
0x38,
|
||||
|
||||
/* U+00BE "¾" */
|
||||
0x62, 0x62, 0x60, 0xf0, 0x26, 0xaf, 0x20,
|
||||
|
||||
/* U+00BF "¿" */
|
||||
0x63, 0x0, 0x42, 0x22, 0x10, 0x8b, 0x80,
|
||||
|
||||
/* U+00C0 "À" */
|
||||
0x20, 0x80, 0xc, 0x30, 0xc3, 0xc, 0x49, 0x27,
|
||||
0x92, 0xcc,
|
||||
|
||||
/* U+00C1 "Á" */
|
||||
0x10, 0x40, 0xc, 0x30, 0xc3, 0xc, 0x49, 0x27,
|
||||
0x92, 0xcc,
|
||||
|
||||
/* U+00C2 "Â" */
|
||||
0x0, 0xc0, 0xc, 0x30, 0xc3, 0xc, 0x49, 0x27,
|
||||
0x92, 0xcc,
|
||||
|
||||
/* U+00C3 "Ã" */
|
||||
0x1, 0xa1, 0xc, 0x30, 0xc3, 0xc, 0x49, 0x27,
|
||||
0x92, 0xcc,
|
||||
|
||||
/* U+00C4 "Ä" */
|
||||
0x78, 0x3, 0xc, 0x30, 0xc3, 0x12, 0x49, 0xe4,
|
||||
0xb3,
|
||||
|
||||
/* U+00C5 "Å" */
|
||||
0x30, 0xc3, 0xc, 0x30, 0xc3, 0xc, 0x49, 0x27,
|
||||
0x92, 0xcc,
|
||||
|
||||
/* U+00C6 "Æ" */
|
||||
0x3c, 0xd3, 0xc, 0x39, 0x45, 0x1c, 0x57, 0xf0,
|
||||
|
||||
/* U+00C7 "Ç" */
|
||||
0x79, 0x88, 0x88, 0x88, 0x97, 0x22, 0x60,
|
||||
|
||||
/* U+00C8 "È" */
|
||||
0x41, 0x1, 0xf4, 0xa1, 0x8, 0x72, 0x10, 0x9f,
|
||||
0x80,
|
||||
|
||||
/* U+00C9 "É" */
|
||||
0x11, 0x81, 0xf4, 0xa1, 0x8, 0x72, 0x10, 0x9f,
|
||||
0x80,
|
||||
|
||||
/* U+00CA "Ê" */
|
||||
0x23, 0x91, 0xf4, 0xa1, 0x8, 0x72, 0x10, 0x9f,
|
||||
0x80,
|
||||
|
||||
/* U+00CB "Ë" */
|
||||
0x78, 0x3e, 0x94, 0x21, 0xe, 0x42, 0x13, 0xf0,
|
||||
|
||||
/* U+00CC "Ì" */
|
||||
0x88, 0x74, 0x92, 0x49, 0x2e,
|
||||
|
||||
/* U+00CD "Í" */
|
||||
0x28, 0x74, 0x92, 0x49, 0x2e,
|
||||
|
||||
/* U+00CE "Î" */
|
||||
0x22, 0x80, 0xe2, 0x10, 0x84, 0x21, 0x8, 0x47,
|
||||
0x0,
|
||||
|
||||
/* U+00CF "Ï" */
|
||||
0xf0, 0x72, 0x22, 0x22, 0x22, 0x27,
|
||||
|
||||
/* U+00D0 "Ð" */
|
||||
0xf9, 0x34, 0x51, 0x47, 0xd4, 0x51, 0x4f, 0xe0,
|
||||
|
||||
/* U+00D1 "Ñ" */
|
||||
0x1, 0xa1, 0x33, 0x69, 0xa6, 0x9a, 0x69, 0x65,
|
||||
0x96, 0xc8,
|
||||
|
||||
/* U+00D2 "Ò" */
|
||||
0x41, 0x8, 0xe8, 0xc6, 0x31, 0x8c, 0x63, 0x17,
|
||||
0x0,
|
||||
|
||||
/* U+00D3 "Ó" */
|
||||
0x11, 0x8, 0xe8, 0xc6, 0x31, 0x8c, 0x63, 0x17,
|
||||
0x0,
|
||||
|
||||
/* U+00D4 "Ô" */
|
||||
0x22, 0x80, 0xe8, 0xc6, 0x31, 0x8c, 0x63, 0x17,
|
||||
0x0,
|
||||
|
||||
/* U+00D5 "Õ" */
|
||||
0x3, 0x80, 0xe8, 0xc6, 0x31, 0x8c, 0x63, 0x17,
|
||||
0x0,
|
||||
|
||||
/* U+00D6 "Ö" */
|
||||
0xf0, 0x1d, 0x18, 0xc6, 0x31, 0x8c, 0x62, 0xe0,
|
||||
|
||||
/* U+00D7 "×" */
|
||||
0x85, 0x23, 0xc, 0x4b, 0x30,
|
||||
|
||||
/* U+00D8 "Ø" */
|
||||
0x3, 0xe7, 0x3b, 0xd6, 0xbd, 0xce, 0x7c, 0x0,
|
||||
|
||||
/* U+00D9 "Ù" */
|
||||
0x20, 0x80, 0x33, 0x49, 0x24, 0x92, 0x49, 0x24,
|
||||
0x92, 0x30,
|
||||
|
||||
/* U+00DA "Ú" */
|
||||
0x10, 0x40, 0x33, 0x49, 0x24, 0x92, 0x49, 0x24,
|
||||
0x92, 0x30,
|
||||
|
||||
/* U+00DB "Û" */
|
||||
0x31, 0xe0, 0x33, 0x49, 0x24, 0x92, 0x49, 0x24,
|
||||
0x92, 0x30,
|
||||
|
||||
/* U+00DC "Ü" */
|
||||
0x78, 0xc, 0xd2, 0x49, 0x24, 0x92, 0x49, 0x24,
|
||||
0x8c,
|
||||
|
||||
/* U+00DD "Ý" */
|
||||
0x8, 0x20, 0x7, 0x74, 0x48, 0x8a, 0x14, 0x10,
|
||||
0x20, 0x40, 0x83, 0x80,
|
||||
|
||||
/* U+00DE "Þ" */
|
||||
0xc2, 0x1c, 0x94, 0xa5, 0x2e, 0x46, 0x0,
|
||||
|
||||
/* U+00DF "ß" */
|
||||
0x31, 0x24, 0x92, 0x49, 0x44, 0xd1, 0x4f, 0x60,
|
||||
|
||||
/* U+00E0 "à" */
|
||||
0x40, 0x80, 0x1c, 0x48, 0x27, 0x92, 0x89, 0xf0,
|
||||
|
||||
/* U+00E1 "á" */
|
||||
0x10, 0xc2, 0x1c, 0x48, 0x27, 0x92, 0x89, 0xf0,
|
||||
|
||||
/* U+00E2 "â" */
|
||||
0x31, 0x64, 0x1c, 0x48, 0x27, 0x92, 0x89, 0xf0,
|
||||
|
||||
/* U+00E3 "ã" */
|
||||
0x69, 0x60, 0x1c, 0x48, 0x27, 0x92, 0x89, 0xf0,
|
||||
|
||||
/* U+00E4 "ä" */
|
||||
0x78, 0x0, 0x1c, 0x48, 0x27, 0x92, 0x89, 0xf0,
|
||||
|
||||
/* U+00E5 "å" */
|
||||
0x30, 0xc3, 0x1c, 0x48, 0x27, 0x92, 0x89, 0xf0,
|
||||
|
||||
/* U+00E6 "æ" */
|
||||
0x7d, 0x4b, 0xfa, 0x57, 0xe0,
|
||||
|
||||
/* U+00E7 "ç" */
|
||||
0x79, 0x88, 0x89, 0x72, 0x26,
|
||||
|
||||
/* U+00E8 "è" */
|
||||
0x41, 0x8, 0xe8, 0xc7, 0xf0, 0x8b, 0x80,
|
||||
|
||||
/* U+00E9 "é" */
|
||||
0x11, 0x8, 0xe8, 0xc7, 0xf0, 0x8b, 0x80,
|
||||
|
||||
/* U+00EA "ê" */
|
||||
0x22, 0x80, 0xe8, 0xc7, 0xf0, 0x8b, 0x80,
|
||||
|
||||
/* U+00EB "ë" */
|
||||
0xf0, 0x0, 0xe8, 0xc7, 0xf0, 0x8b, 0x80,
|
||||
|
||||
/* U+00EC "ì" */
|
||||
0x41, 0x9, 0xc2, 0x10, 0x84, 0x27, 0xc0,
|
||||
|
||||
/* U+00ED "í" */
|
||||
0x11, 0x1, 0xc2, 0x10, 0x84, 0x27, 0xc0,
|
||||
|
||||
/* U+00EE "î" */
|
||||
0x62, 0x81, 0xc2, 0x10, 0x84, 0x27, 0xc0,
|
||||
|
||||
/* U+00EF "ï" */
|
||||
0xf0, 0x1, 0xc2, 0x10, 0x84, 0x27, 0xc0,
|
||||
|
||||
/* U+00F0 "ð" */
|
||||
0x41, 0xe, 0xa7, 0xc6, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+00F1 "ñ" */
|
||||
0x29, 0x60, 0x3c, 0x49, 0x24, 0x92, 0x4b, 0x30,
|
||||
|
||||
/* U+00F2 "ò" */
|
||||
0x41, 0x8, 0xe8, 0xc6, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+00F3 "ó" */
|
||||
0x11, 0x8, 0xe8, 0xc6, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+00F4 "ô" */
|
||||
0x22, 0x80, 0xe8, 0xc6, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+00F5 "õ" */
|
||||
0x6d, 0x80, 0xe8, 0xc6, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+00F6 "ö" */
|
||||
0xf0, 0x0, 0xe8, 0xc6, 0x31, 0x8b, 0x80,
|
||||
|
||||
/* U+00F7 "÷" */
|
||||
0x30, 0x0, 0x3f, 0x0, 0x3, 0x0,
|
||||
|
||||
/* U+00F8 "ø" */
|
||||
0x7c, 0xef, 0x5e, 0xe7, 0xc0,
|
||||
|
||||
/* U+00F9 "ù" */
|
||||
0x20, 0x80, 0x32, 0x49, 0x24, 0x92, 0x48, 0xf0,
|
||||
|
||||
/* U+00FA "ú" */
|
||||
0x10, 0x40, 0x32, 0x49, 0x24, 0x92, 0x48, 0xf0,
|
||||
|
||||
/* U+00FB "û" */
|
||||
0x31, 0xe0, 0x32, 0x49, 0x24, 0x92, 0x48, 0xf0,
|
||||
|
||||
/* U+00FC "ü" */
|
||||
0x78, 0x0, 0x32, 0x49, 0x24, 0x92, 0x48, 0xf0,
|
||||
|
||||
/* U+00FD "ý" */
|
||||
0x18, 0x40, 0x33, 0x49, 0x24, 0x8c, 0x30, 0xc2,
|
||||
0x8, 0x60,
|
||||
|
||||
/* U+00FE "þ" */
|
||||
0xc1, 0x4, 0x1e, 0x45, 0x14, 0x51, 0x45, 0xe4,
|
||||
0x10, 0xe0
|
||||
};
|
||||
|
||||
|
||||
/*---------------------
|
||||
* GLYPH DESCRIPTION
|
||||
*--------------------*/
|
||||
|
||||
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
|
||||
{.bitmap_index = 0, .adv_w = 192, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1, .adv_w = 96, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2, .adv_w = 96, .box_w = 2, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 5, .adv_w = 96, .box_w = 3, .box_h = 4, .ofs_x = 1, .ofs_y = 6},
|
||||
{.bitmap_index = 7, .adv_w = 96, .box_w = 5, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 15, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
|
||||
{.bitmap_index = 24, .adv_w = 96, .box_w = 4, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 29, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 36, .adv_w = 96, .box_w = 1, .box_h = 4, .ofs_x = 3, .ofs_y = 6},
|
||||
{.bitmap_index = 37, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
|
||||
{.bitmap_index = 44, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 51, .adv_w = 96, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = 6},
|
||||
{.bitmap_index = 55, .adv_w = 96, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = 2},
|
||||
{.bitmap_index = 59, .adv_w = 96, .box_w = 2, .box_h = 5, .ofs_x = 2, .ofs_y = -3},
|
||||
{.bitmap_index = 61, .adv_w = 96, .box_w = 4, .box_h = 1, .ofs_x = 1, .ofs_y = 4},
|
||||
{.bitmap_index = 62, .adv_w = 96, .box_w = 2, .box_h = 2, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 63, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 70, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 77, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 84, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 91, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 98, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 105, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 112, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 119, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 126, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 133, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 140, .adv_w = 96, .box_w = 2, .box_h = 7, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 142, .adv_w = 96, .box_w = 2, .box_h = 10, .ofs_x = 2, .ofs_y = -3},
|
||||
{.bitmap_index = 145, .adv_w = 96, .box_w = 5, .box_h = 8, .ofs_x = 1, .ofs_y = 1},
|
||||
{.bitmap_index = 150, .adv_w = 96, .box_w = 4, .box_h = 4, .ofs_x = 1, .ofs_y = 3},
|
||||
{.bitmap_index = 152, .adv_w = 96, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 157, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 164, .adv_w = 96, .box_w = 5, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
|
||||
{.bitmap_index = 172, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 180, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 188, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 195, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 203, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 210, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 217, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 224, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 232, .adv_w = 96, .box_w = 3, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 236, .adv_w = 96, .box_w = 4, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 241, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 249, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 256, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 264, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 272, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 279, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 286, .adv_w = 96, .box_w = 5, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 294, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 302, .adv_w = 96, .box_w = 4, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 307, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 314, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 322, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 330, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 338, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 346, .adv_w = 96, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 355, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 362, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 369, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 376, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 383, .adv_w = 96, .box_w = 4, .box_h = 3, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 385, .adv_w = 96, .box_w = 4, .box_h = 1, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 386, .adv_w = 96, .box_w = 3, .box_h = 3, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 388, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 394, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 402, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 407, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 415, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 420, .adv_w = 96, .box_w = 4, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 425, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 432, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 440, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 447, .adv_w = 96, .box_w = 4, .box_h = 13, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 454, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 462, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 469, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 474, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 480, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 485, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 493, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 501, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 506, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 511, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 518, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 524, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 530, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 536, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 542, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 550, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 555, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 562, .adv_w = 96, .box_w = 1, .box_h = 14, .ofs_x = 3, .ofs_y = -2},
|
||||
{.bitmap_index = 564, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 571, .adv_w = 96, .box_w = 6, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 574, .adv_w = 96, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 575, .adv_w = 96, .box_w = 2, .box_h = 10, .ofs_x = 2, .ofs_y = -3},
|
||||
{.bitmap_index = 578, .adv_w = 96, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = -1},
|
||||
{.bitmap_index = 584, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 591, .adv_w = 192, .box_w = 5, .box_h = 5, .ofs_x = 3, .ofs_y = 2},
|
||||
{.bitmap_index = 595, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 603, .adv_w = 96, .box_w = 1, .box_h = 14, .ofs_x = 3, .ofs_y = -2},
|
||||
{.bitmap_index = 605, .adv_w = 192, .box_w = 5, .box_h = 14, .ofs_x = 3, .ofs_y = -2},
|
||||
{.bitmap_index = 614, .adv_w = 96, .box_w = 4, .box_h = 1, .ofs_x = 1, .ofs_y = 8},
|
||||
{.bitmap_index = 615, .adv_w = 192, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 627, .adv_w = 96, .box_w = 4, .box_h = 6, .ofs_x = 1, .ofs_y = 2},
|
||||
{.bitmap_index = 630, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 1},
|
||||
{.bitmap_index = 635, .adv_w = 96, .box_w = 4, .box_h = 3, .ofs_x = 1, .ofs_y = 2},
|
||||
{.bitmap_index = 637, .adv_w = 96, .box_w = 4, .box_h = 1, .ofs_x = 1, .ofs_y = 4},
|
||||
{.bitmap_index = 638, .adv_w = 192, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 650, .adv_w = 96, .box_w = 4, .box_h = 1, .ofs_x = 1, .ofs_y = 8},
|
||||
{.bitmap_index = 651, .adv_w = 96, .box_w = 3, .box_h = 3, .ofs_x = 2, .ofs_y = 7},
|
||||
{.bitmap_index = 653, .adv_w = 192, .box_w = 5, .box_h = 8, .ofs_x = 4, .ofs_y = 0},
|
||||
{.bitmap_index = 658, .adv_w = 96, .box_w = 4, .box_h = 6, .ofs_x = 1, .ofs_y = 4},
|
||||
{.bitmap_index = 661, .adv_w = 96, .box_w = 4, .box_h = 6, .ofs_x = 1, .ofs_y = 4},
|
||||
{.bitmap_index = 664, .adv_w = 96, .box_w = 3, .box_h = 3, .ofs_x = 2, .ofs_y = 7},
|
||||
{.bitmap_index = 666, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 674, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 681, .adv_w = 192, .box_w = 2, .box_h = 2, .ofs_x = 5, .ofs_y = 4},
|
||||
{.bitmap_index = 682, .adv_w = 96, .box_w = 3, .box_h = 3, .ofs_x = 2, .ofs_y = -3},
|
||||
{.bitmap_index = 684, .adv_w = 96, .box_w = 3, .box_h = 6, .ofs_x = 2, .ofs_y = 4},
|
||||
{.bitmap_index = 687, .adv_w = 96, .box_w = 4, .box_h = 6, .ofs_x = 1, .ofs_y = 2},
|
||||
{.bitmap_index = 690, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 695, .adv_w = 96, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 702, .adv_w = 96, .box_w = 5, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 711, .adv_w = 96, .box_w = 4, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 718, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 725, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 735, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 745, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 755, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 765, .adv_w = 96, .box_w = 6, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 774, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 784, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 792, .adv_w = 96, .box_w = 4, .box_h = 13, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 799, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 808, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 817, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 826, .adv_w = 96, .box_w = 5, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 834, .adv_w = 96, .box_w = 3, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 839, .adv_w = 96, .box_w = 3, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 844, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 853, .adv_w = 96, .box_w = 4, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 859, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 867, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 877, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 886, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 895, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 904, .adv_w = 96, .box_w = 5, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 913, .adv_w = 96, .box_w = 5, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 921, .adv_w = 192, .box_w = 6, .box_h = 6, .ofs_x = 3, .ofs_y = 2},
|
||||
{.bitmap_index = 926, .adv_w = 96, .box_w = 5, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
|
||||
{.bitmap_index = 934, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 944, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 954, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 964, .adv_w = 96, .box_w = 6, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 973, .adv_w = 96, .box_w = 7, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 985, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 992, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1000, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1008, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1016, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1024, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1032, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1040, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1048, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1053, .adv_w = 96, .box_w = 4, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 1058, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1065, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1072, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1079, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1086, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1093, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1100, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1107, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1114, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1121, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1129, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1136, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1143, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1150, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1157, .adv_w = 96, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1164, .adv_w = 192, .box_w = 6, .box_h = 7, .ofs_x = 3, .ofs_y = 1},
|
||||
{.bitmap_index = 1170, .adv_w = 96, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1175, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1183, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1191, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1199, .adv_w = 96, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1207, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 1217, .adv_w = 96, .box_w = 6, .box_h = 13, .ofs_x = 0, .ofs_y = -3}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
* CHARACTER MAPPING
|
||||
*--------------------*/
|
||||
|
||||
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
{
|
||||
{
|
||||
.range_start = 13, .range_length = 1, .glyph_id_start = 1,
|
||||
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
|
||||
},
|
||||
{
|
||||
.range_start = 32, .range_length = 95, .glyph_id_start = 2,
|
||||
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
|
||||
},
|
||||
{
|
||||
.range_start = 160, .range_length = 95, .glyph_id_start = 97,
|
||||
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*--------------------
|
||||
* ALL CUSTOM DATA
|
||||
*--------------------*/
|
||||
|
||||
#if LVGL_VERSION_MAJOR == 8
|
||||
/*Store all the custom data of the font*/
|
||||
static lv_font_fmt_txt_glyph_cache_t cache;
|
||||
#endif
|
||||
|
||||
#if LVGL_VERSION_MAJOR >= 8
|
||||
static const lv_font_fmt_txt_dsc_t font_dsc = {
|
||||
#else
|
||||
static lv_font_fmt_txt_dsc_t font_dsc = {
|
||||
#endif
|
||||
.glyph_bitmap = glyph_bitmap,
|
||||
.glyph_dsc = glyph_dsc,
|
||||
.cmaps = cmaps,
|
||||
.kern_dsc = NULL,
|
||||
.kern_scale = 0,
|
||||
.cmap_num = 3,
|
||||
.bpp = 1,
|
||||
.kern_classes = 0,
|
||||
.bitmap_format = 0,
|
||||
#if LVGL_VERSION_MAJOR == 8
|
||||
.cache = &cache
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
extern const lv_font_t lv_font_montserrat_12;
|
||||
|
||||
|
||||
/*-----------------
|
||||
* PUBLIC FONT
|
||||
*----------------*/
|
||||
|
||||
/*Initialize a public general font descriptor*/
|
||||
#if LVGL_VERSION_MAJOR >= 8
|
||||
const lv_font_t InziuIosevka_Slab_CC_12px = {
|
||||
#else
|
||||
lv_font_t InziuIosevka_Slab_CC_12px = {
|
||||
#endif
|
||||
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
|
||||
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
|
||||
.line_height = 16, /*The maximum line height required by the font*/
|
||||
.base_line = 3, /*Baseline measured from the bottom of the line*/
|
||||
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
|
||||
.subpx = LV_FONT_SUBPX_NONE,
|
||||
#endif
|
||||
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
|
||||
.underline_position = -2,
|
||||
.underline_thickness = 1,
|
||||
#endif
|
||||
.dsc = &font_dsc, /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||
#if LV_VERSION_CHECK(8, 2, 0) || LVGL_VERSION_MAJOR >= 9
|
||||
.fallback = &lv_font_montserrat_12,
|
||||
#endif
|
||||
.user_data = NULL,
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /*#if INZIUIOSEVKA_SLAB_CC_12PX*/
|
||||
1036
components/user_fonts/InziuIosevka_Slab_CC_16px.c
Normal file
1036
components/user_fonts/InziuIosevka_Slab_CC_16px.c
Normal file
File diff suppressed because it is too large
Load Diff
1136
components/user_fonts/InziuIosevka_Slab_CC_20px.c
Normal file
1136
components/user_fonts/InziuIosevka_Slab_CC_20px.c
Normal file
File diff suppressed because it is too large
Load Diff
1289
components/user_fonts/InziuIosevka_Slab_CC_24px.c
Normal file
1289
components/user_fonts/InziuIosevka_Slab_CC_24px.c
Normal file
File diff suppressed because it is too large
Load Diff
1641
components/user_fonts/InziuIosevka_Slab_CC_32px.c
Normal file
1641
components/user_fonts/InziuIosevka_Slab_CC_32px.c
Normal file
File diff suppressed because it is too large
Load Diff
26
components/user_fonts/user_fonts.h
Normal file
26
components/user_fonts/user_fonts.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef USER_FONTS_H
|
||||
#define USER_FONTS_H
|
||||
|
||||
#include "lvgl.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* DSEG14 Classic Bold Italic — segmented display digits only (0-9 : ; , .) */
|
||||
extern const lv_font_t DSEG14C_BI_32px;
|
||||
extern const lv_font_t DSEG14C_BI_40px;
|
||||
extern const lv_font_t DSEG14C_BI_50px;
|
||||
|
||||
/* Inziu Iosevka Slab CC — monospace, Latin range 0-254 */
|
||||
extern const lv_font_t InziuIosevka_Slab_CC_12px;
|
||||
extern const lv_font_t InziuIosevka_Slab_CC_16px;
|
||||
extern const lv_font_t InziuIosevka_Slab_CC_20px;
|
||||
extern const lv_font_t InziuIosevka_Slab_CC_24px;
|
||||
extern const lv_font_t InziuIosevka_Slab_CC_32px;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user