V2.4
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,377 @@
|
||||
/**
|
||||
* @file images.h
|
||||
* @brief Image resource table generated by WCHGUIDesigner.
|
||||
* @note Byte order: Big Endian
|
||||
*/
|
||||
|
||||
#ifndef _IMAGES_H_
|
||||
#define _IMAGES_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
typedef enum {
|
||||
IMAGE_NONE = 0xFFFF,
|
||||
// === Raw images (0b000) ===
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0030 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 0),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0031 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 1),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0032 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 2),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0033 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 3),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0034 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 4),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0035 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 5),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0036 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 6),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0037 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 7),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0038 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 8),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0039 = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 9),
|
||||
IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_003A = MAKE_IMAGE_ID(IMAGE_TYPE_RAW, 10),
|
||||
// === CLUT images (0b010) ===
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 11),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 12),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 13),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 14),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 15),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 16),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 17),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 18),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 19),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 20),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGESETTING1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 21),
|
||||
IMAGE_RES_IMG_TPL_MAIN_PAGESETTING2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 22),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT00 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 23),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT01 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 24),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT02 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 25),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT03 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 26),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT04 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 27),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT05 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 28),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT06 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 29),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT07 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 30),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT08 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 31),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT09 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 32),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT10 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 33),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT11 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 34),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT12 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 35),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT13 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 36),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT14 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 37),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT15 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 38),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT16 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 39),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT17 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 40),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT18 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 41),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT19 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 42),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT20 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 43),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT21 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 44),
|
||||
IMAGE_RES_IMG_TPL_MAIN_CON1 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 45),
|
||||
IMAGE_RES_IMG_TPL_MAIN_CON2 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 46),
|
||||
IMAGE_RES_IMG_TPL_MAIN_CON3 = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 47),
|
||||
IMAGE_RES_IMG_TPL_MAIN_BG = MAKE_IMAGE_ID(IMAGE_TYPE_CLUT, 48),
|
||||
} image_index_t;
|
||||
|
||||
static const image_info_t image_table[] = {
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0030
|
||||
.addr = 0x0001DED4,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0031
|
||||
.addr = 0x0001E0DC,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0032
|
||||
.addr = 0x0001E2E4,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0033
|
||||
.addr = 0x0001E4EC,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0034
|
||||
.addr = 0x0001E6F4,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0035
|
||||
.addr = 0x0001E8FC,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0036
|
||||
.addr = 0x0001EB04,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0037
|
||||
.addr = 0x0001ED0C,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0038
|
||||
.addr = 0x0001EF14,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0039
|
||||
.addr = 0x0001F11C,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_003A
|
||||
.addr = 0x0001F324,
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.data_size = 520,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG1
|
||||
.addr = 0x00000000,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG2
|
||||
.addr = 0x00001E3C,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR1
|
||||
.addr = 0x00003C78,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR2
|
||||
.addr = 0x00005AB4,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA1
|
||||
.addr = 0x000078F0,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA2
|
||||
.addr = 0x0000972C,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL1
|
||||
.addr = 0x0000B568,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL2
|
||||
.addr = 0x0000D3A4,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL1
|
||||
.addr = 0x0000F1E0,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL2
|
||||
.addr = 0x0001101C,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGESETTING1
|
||||
.addr = 0x00012E58,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_PAGESETTING2
|
||||
.addr = 0x00014C94,
|
||||
.width = 73,
|
||||
.height = 99,
|
||||
.data_size = 7739,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT00
|
||||
.addr = 0x00016AD0,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT01
|
||||
.addr = 0x00016F74,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT02
|
||||
.addr = 0x00017418,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT03
|
||||
.addr = 0x000178BC,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT04
|
||||
.addr = 0x00017D60,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT05
|
||||
.addr = 0x00018204,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT06
|
||||
.addr = 0x000186A8,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT07
|
||||
.addr = 0x00018B4C,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT08
|
||||
.addr = 0x00018FF0,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT09
|
||||
.addr = 0x00019494,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT10
|
||||
.addr = 0x00019938,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT11
|
||||
.addr = 0x00019DDC,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT12
|
||||
.addr = 0x0001A280,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT13
|
||||
.addr = 0x0001A724,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT14
|
||||
.addr = 0x0001ABC8,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT15
|
||||
.addr = 0x0001B06C,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT16
|
||||
.addr = 0x0001B510,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT17
|
||||
.addr = 0x0001B9B4,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT18
|
||||
.addr = 0x0001BE58,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT19
|
||||
.addr = 0x0001C2FC,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT20
|
||||
.addr = 0x0001C7A0,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BAT21
|
||||
.addr = 0x0001CC44,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_CON1
|
||||
.addr = 0x0001D0E8,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_CON2
|
||||
.addr = 0x0001D58C,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_CON3
|
||||
.addr = 0x0001DA30,
|
||||
.width = 26,
|
||||
.height = 26,
|
||||
.data_size = 1188,
|
||||
},
|
||||
{ // IMAGE_RES_IMG_TPL_MAIN_BG
|
||||
.addr = 0x0001F52C,
|
||||
.width = 320,
|
||||
.height = 240,
|
||||
.data_size = 77312,
|
||||
},
|
||||
};
|
||||
|
||||
#define RAW_IMAGE_COUNT 11
|
||||
#define RLE_IMAGE_COUNT 0
|
||||
#define CLUT_IMAGE_COUNT 38
|
||||
#define CLUT4_IMAGE_COUNT 0
|
||||
#define IMAGE_COUNT 49
|
||||
|
||||
static inline const image_info_t* get_image(image_index_t index) {
|
||||
uint16_t idx = IMAGE_GET_INDEX(index);
|
||||
if (idx >= IMAGE_COUNT) return NULL;
|
||||
return &image_table[idx];
|
||||
}
|
||||
|
||||
#endif /* _IMAGES_H_ */
|
||||
@@ -0,0 +1,170 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : wui_asset.c
|
||||
* Author : WCH
|
||||
* Version : V1.2.0
|
||||
* Date : 2026/07/30
|
||||
* Description : This file is auto-generated by WUI Designer Tool.
|
||||
* : Contains WUI asset resources (strings, images, fonts).
|
||||
*********************************************************************************
|
||||
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
||||
* Attention: This software (modified or not) and binary are used for
|
||||
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
|
||||
*******************************************************************************/
|
||||
|
||||
#include "wui_asset.h"
|
||||
#include <stddef.h>
|
||||
|
||||
#include "LCD_Font.h"
|
||||
const wui_bitfont_t wui_font_6x12 = { 6, 12, 0x20, 95, (const uint8_t*)asc2_1206 };
|
||||
const wui_bitfont_t wui_font_8x16 = { 8, 16, 0x20, 95, (const uint8_t*)asc2_1608 };
|
||||
|
||||
/*******************************************************************************
|
||||
* STRING RESOURCES
|
||||
******************************************************************************/
|
||||
|
||||
/* Maps string IDs to string pointers */
|
||||
static const char* wui_string_table[WUI_STR_COUNT] = {
|
||||
[WUI_STR_NONE] = NULL,
|
||||
[WUI_STR_MAIN_MAIN_TIME] = "12:34",
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Get string by ID
|
||||
* @param id - String ID
|
||||
* @return String pointer, or NULL if not found
|
||||
*/
|
||||
const char* wui_get_string(wui_str_id_t id)
|
||||
{
|
||||
if (id > 0 && id < WUI_STR_COUNT)
|
||||
{
|
||||
return wui_string_table[id];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* IMAGE TABLE RESOURCES
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
static const uint16_t wui_imgtable_main_main_battery[] = {
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT00,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT01,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT02,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT03,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT04,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT05,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT06,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT07,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT08,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT09,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT10,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT11,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT12,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT13,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT14,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT15,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT16,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT17,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT18,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT19,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT20,
|
||||
IMAGE_RES_IMG_TPL_MAIN_BAT21,
|
||||
};
|
||||
|
||||
static const uint16_t wui_imgtable_main_main_connection[] = {
|
||||
IMAGE_RES_IMG_TPL_MAIN_CON1,
|
||||
IMAGE_RES_IMG_TPL_MAIN_CON2,
|
||||
IMAGE_RES_IMG_TPL_MAIN_CON3,
|
||||
};
|
||||
|
||||
/* Maps image table IDs to image ID arrays */
|
||||
static const uint16_t* wui_imgtable_list[WUI_IMGTABLE_COUNT] = {
|
||||
[WUI_IMGTABLE_NONE] = NULL,
|
||||
[WUI_IMGTABLE_MAIN_MAIN_BATTERY] = wui_imgtable_main_main_battery,
|
||||
[WUI_IMGTABLE_MAIN_MAIN_CONNECTION] = wui_imgtable_main_main_connection,
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Get image table by ID
|
||||
* @param id - Image table ID
|
||||
* @return Image table pointer, or NULL if not found
|
||||
*/
|
||||
const uint16_t* wui_get_imgtable(wui_imgtable_id_t id)
|
||||
{
|
||||
if (id > 0 && id < WUI_IMGTABLE_COUNT)
|
||||
{
|
||||
return wui_imgtable_list[id];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* FONT RESOURCES
|
||||
******************************************************************************/
|
||||
|
||||
/**
|
||||
* @brief Font table for WUI
|
||||
* @details Maps font IDs to font structures
|
||||
*/
|
||||
static const wui_font_t wui_font_table[WUI_FONT_COUNT] = {
|
||||
[WUI_FONT_NONE] = {0},
|
||||
[WUI_FONT_WUI_PAGE_MAIN_MAIN_TIME] = {
|
||||
.cnt = 10,
|
||||
.start_char = '0',
|
||||
.width = 10,
|
||||
.height = 26,
|
||||
.first_img_id = IMAGE_ART_WUI_PAGE_MAIN_MAIN_TIME_0030,
|
||||
},
|
||||
};
|
||||
|
||||
const wui_font_t* wui_get_font(wui_font_id_t id)
|
||||
{
|
||||
if (id > 0 && id < WUI_FONT_COUNT)
|
||||
{
|
||||
return &wui_font_table[id];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* BITMAP FONT RESOURCES
|
||||
******************************************************************************/
|
||||
|
||||
/* Maps bitmap font IDs to font structures */
|
||||
static const wui_bitfont_t* wui_bitmap_font_table[WUI_BITMAP_FONT_COUNT] = {
|
||||
[WUI_BITMAP_FONT_DEFAULT] = &wui_font_8x16,
|
||||
[WUI_BITMAP_FONT_6X12] = &wui_font_6x12,
|
||||
[WUI_BITMAP_FONT_8X16] = &wui_font_8x16,
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Get bitmap font by ID
|
||||
* @param id - Bitmap font ID
|
||||
* @return Bitmap font structure pointer, or default font if not found
|
||||
*/
|
||||
const wui_bitfont_t* wui_get_bitmap_font(wui_bitmap_font_id_t id)
|
||||
{
|
||||
if (id > 0 && id < WUI_BITMAP_FONT_COUNT) {
|
||||
return wui_bitmap_font_table[id];
|
||||
}
|
||||
return wui_bitmap_font_table[WUI_BITMAP_FONT_DEFAULT];
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* @fn wui_get_image
|
||||
*
|
||||
* @brief Get image information by index.
|
||||
*
|
||||
* @param index - Image index.
|
||||
*
|
||||
* @return Pointer to image information structure.
|
||||
*/
|
||||
const image_info_t* wui_get_image(uint32_t index)
|
||||
{
|
||||
// return get_image(index);
|
||||
uint16_t idx = IMAGE_GET_INDEX(index);
|
||||
if (idx >= IMAGE_COUNT) return NULL;
|
||||
return &image_table[idx];
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : wui_asset.h
|
||||
* Author : WCH
|
||||
* Version : V1.2.0
|
||||
* Date : 2026/07/30
|
||||
* Description : Asset management functions
|
||||
*********************************************************************************/
|
||||
|
||||
#ifndef WUI_ASSET_H
|
||||
#define WUI_ASSET_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "wui.h"
|
||||
#include "images.h"
|
||||
#include "wui_widget.h"
|
||||
|
||||
enum
|
||||
{
|
||||
WUI_STR_NONE = 0,
|
||||
WUI_STR_MAIN_MAIN_TIME,
|
||||
WUI_STR_COUNT
|
||||
};
|
||||
|
||||
const char* wui_get_string(wui_str_id_t id);
|
||||
|
||||
enum
|
||||
{
|
||||
WUI_FONT_NONE = 0,
|
||||
WUI_FONT_WUI_PAGE_MAIN_MAIN_TIME,
|
||||
WUI_FONT_COUNT
|
||||
};
|
||||
|
||||
const wui_font_t* wui_get_font(wui_font_id_t id);
|
||||
|
||||
enum
|
||||
{
|
||||
WUI_IMGTABLE_NONE = 0,
|
||||
WUI_IMGTABLE_MAIN_MAIN_BATTERY,
|
||||
WUI_IMGTABLE_MAIN_MAIN_CONNECTION,
|
||||
WUI_IMGTABLE_COUNT
|
||||
};
|
||||
|
||||
const uint16_t* wui_get_imgtable(wui_imgtable_id_t id);
|
||||
|
||||
|
||||
enum {
|
||||
WUI_BITMAP_FONT_DEFAULT = 0,
|
||||
WUI_BITMAP_FONT_6X12,
|
||||
WUI_BITMAP_FONT_8X16,
|
||||
|
||||
WUI_BITMAP_FONT_COUNT
|
||||
};
|
||||
|
||||
const wui_bitfont_t* wui_get_bitmap_font(wui_bitmap_font_id_t id);
|
||||
|
||||
const image_info_t* wui_get_image(uint32_t index);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,22 @@
|
||||
#include "wui_page.h"
|
||||
#include "wui.h"
|
||||
#include "images.h"
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
const wui_page_desc_t wui_pages[WUI_PAGE_COUNT] = {
|
||||
[WUI_PAGE_NONE] = {
|
||||
.bg_color = RGB888_TO_RGB565(0, 0, 0),
|
||||
.page_name = "None",
|
||||
.page_init = wui_page_none_init,
|
||||
.page_loop = wui_page_none_loop,
|
||||
.user_data = NULL,
|
||||
},
|
||||
[WUI_PAGE_MAIN] = {
|
||||
.bg_color = RGB888_TO_RGB565(0, 0, 0),
|
||||
.page_name = "Menu Page",
|
||||
.page_init = wui_page_main_init,
|
||||
.page_loop = wui_page_main_loop,
|
||||
.user_data = NULL,
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
#ifndef WUI_PAGE_H
|
||||
#define WUI_PAGE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "stddef.h"
|
||||
#include "wui.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
WUI_PAGE_NONE = 0,
|
||||
WUI_PAGE_MAIN,
|
||||
WUI_PAGE_COUNT,
|
||||
} wui_page_t;
|
||||
|
||||
#define WUI_START_PAGE WUI_PAGE_MAIN
|
||||
|
||||
void wui_page_none_init(void);
|
||||
void wui_page_none_loop(void);
|
||||
|
||||
void wui_page_main_init(void);
|
||||
void wui_page_main_loop(void);
|
||||
|
||||
extern const wui_page_desc_t wui_pages[WUI_PAGE_COUNT];
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,80 @@
|
||||
#include "wui_user/wui_page_main.h"
|
||||
|
||||
// ================= Template Page =================
|
||||
// Template: main menu
|
||||
// Template interaction logic is generated from known template IDs.
|
||||
|
||||
// ================= Template Logic Hooks =================
|
||||
|
||||
#define MENU_COUNT 6
|
||||
|
||||
static const uint8_t menu_widget_ids[MENU_COUNT] = {
|
||||
MAIN_MAIN_SETTING,
|
||||
MAIN_MAIN_MODE,
|
||||
MAIN_MAIN_ANIM,
|
||||
MAIN_MAIN_REAL_DATA,
|
||||
MAIN_MAIN_LIGHT_COLOR,
|
||||
MAIN_MAIN_COLOR_CFG,
|
||||
};
|
||||
|
||||
static const wui_page_t menu_pages[MENU_COUNT] = {
|
||||
WUI_PAGE_MAIN,
|
||||
WUI_PAGE_MAIN,
|
||||
WUI_PAGE_MAIN,
|
||||
WUI_PAGE_MAIN,
|
||||
WUI_PAGE_MAIN,
|
||||
WUI_PAGE_MAIN,
|
||||
};
|
||||
|
||||
static uint8_t main_saved_selection = 0;
|
||||
static uint8_t current_menu = 0;
|
||||
|
||||
static void menu_set(uint8_t index, uint8_t on)
|
||||
{
|
||||
if (index < MENU_COUNT)
|
||||
{
|
||||
if (on)
|
||||
{
|
||||
wui_widget_button_press(menu_widget_ids[index]);
|
||||
}
|
||||
else
|
||||
{
|
||||
wui_widget_button_release(menu_widget_ids[index]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void main_on_key(uint32_t key)
|
||||
{
|
||||
if (key == 'a')
|
||||
{
|
||||
menu_set(current_menu, 0);
|
||||
current_menu = (current_menu == 0) ? MENU_COUNT - 1 : current_menu - 1;
|
||||
menu_set(current_menu, 1);
|
||||
}
|
||||
else if (key == 'd')
|
||||
{
|
||||
menu_set(current_menu, 0);
|
||||
current_menu = (current_menu + 1 >= MENU_COUNT) ? 0 : current_menu + 1;
|
||||
menu_set(current_menu, 1);
|
||||
}
|
||||
else if (key == 'b')
|
||||
{
|
||||
main_saved_selection = current_menu;
|
||||
wui_page_switch(menu_pages[current_menu]);
|
||||
}
|
||||
}
|
||||
|
||||
// ================= Page Functions =================
|
||||
|
||||
void wui_page_main_init(void)
|
||||
{
|
||||
wui_page_init(widgets_main, sizeof(widgets_main) / sizeof(widgets_main[0]));
|
||||
current_menu = main_saved_selection;
|
||||
menu_set(current_menu, 1);
|
||||
wui_register_key_handler(main_on_key);
|
||||
}
|
||||
|
||||
void wui_page_main_loop(void)
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
#ifndef WUI_PAGE_MAIN_H
|
||||
#define WUI_PAGE_MAIN_H
|
||||
|
||||
#include "wui.h"
|
||||
#include "wui_user/wui_page.h"
|
||||
#include "wui_widget.h"
|
||||
#include "images.h"
|
||||
#include "wui_asset.h"
|
||||
#include <stdio.h>
|
||||
|
||||
// ================= Widget ID Enum =================
|
||||
typedef enum
|
||||
{
|
||||
MAIN_MAIN_BG_BLACK,
|
||||
MAIN_MAIN_BG,
|
||||
MAIN_MAIN_TIME,
|
||||
MAIN_MAIN_CONNECTION,
|
||||
MAIN_MAIN_BATTERY,
|
||||
MAIN_MAIN_SETTING,
|
||||
MAIN_MAIN_MODE,
|
||||
MAIN_MAIN_ANIM,
|
||||
MAIN_MAIN_REAL_DATA,
|
||||
MAIN_MAIN_LIGHT_COLOR,
|
||||
MAIN_MAIN_COLOR_CFG,
|
||||
} main_widget_id_t;
|
||||
|
||||
// ================= Declarative Widgets =================
|
||||
static const wui_widget_desc_t widgets_main[] = {
|
||||
[MAIN_MAIN_BG_BLACK] = {
|
||||
.widget_id = MAIN_MAIN_BG_BLACK,
|
||||
.type = Wui_w_Rect,
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.w = 320,
|
||||
.h = 240,
|
||||
.props.rect = {
|
||||
.color = RGB888_TO_RGB565(0, 0, 0),
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_BG] = {
|
||||
.widget_id = MAIN_MAIN_BG,
|
||||
.type = Wui_w_StaticImage,
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.w = 320,
|
||||
.h = 240,
|
||||
.props.staticimg = {
|
||||
.img_id = IMAGE_RES_IMG_TPL_MAIN_BG,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_TIME] = {
|
||||
.widget_id = MAIN_MAIN_TIME,
|
||||
.type = Wui_w_ExString,
|
||||
.x = 12,
|
||||
.y = 4,
|
||||
.w = 50,
|
||||
.h = 26,
|
||||
.props.exstring = {
|
||||
.str_id = WUI_STR_MAIN_MAIN_TIME,
|
||||
.font_id = WUI_FONT_WUI_PAGE_MAIN_MAIN_TIME,
|
||||
.bg_color = RGB888_TO_RGB565(0, 0, 0),
|
||||
.align = WUI_EXSTRING_ALIGN_LEFT,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_CONNECTION] = {
|
||||
.widget_id = MAIN_MAIN_CONNECTION,
|
||||
.type = Wui_w_MultiState,
|
||||
.x = 119,
|
||||
.y = 4,
|
||||
.w = 26,
|
||||
.h = 26,
|
||||
.props.multistate = {
|
||||
.imgtable_id = WUI_IMGTABLE_MAIN_MAIN_CONNECTION,
|
||||
.state_count = 3,
|
||||
.default_state = 2,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_BATTERY] = {
|
||||
.widget_id = MAIN_MAIN_BATTERY,
|
||||
.type = Wui_w_MultiState,
|
||||
.x = 280,
|
||||
.y = 4,
|
||||
.w = 26,
|
||||
.h = 26,
|
||||
.props.multistate = {
|
||||
.imgtable_id = WUI_IMGTABLE_MAIN_MAIN_BATTERY,
|
||||
.state_count = 22,
|
||||
.default_state = 0,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_SETTING] = {
|
||||
.widget_id = MAIN_MAIN_SETTING,
|
||||
.type = Wui_w_Button,
|
||||
.x = 24,
|
||||
.y = 42,
|
||||
.w = 73,
|
||||
.h = 99,
|
||||
.props.button = {
|
||||
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGESETTING2,
|
||||
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGESETTING1,
|
||||
.is_pressed = 0,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_MODE] = {
|
||||
.widget_id = MAIN_MAIN_MODE,
|
||||
.type = Wui_w_Button,
|
||||
.x = 127,
|
||||
.y = 42,
|
||||
.w = 73,
|
||||
.h = 99,
|
||||
.props.button = {
|
||||
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL2,
|
||||
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGEMODEL1,
|
||||
.is_pressed = 0,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_ANIM] = {
|
||||
.widget_id = MAIN_MAIN_ANIM,
|
||||
.type = Wui_w_Button,
|
||||
.x = 226,
|
||||
.y = 42,
|
||||
.w = 73,
|
||||
.h = 99,
|
||||
.props.button = {
|
||||
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL2,
|
||||
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGEANIMAL1,
|
||||
.is_pressed = 0,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_REAL_DATA] = {
|
||||
.widget_id = MAIN_MAIN_REAL_DATA,
|
||||
.type = Wui_w_Button,
|
||||
.x = 24,
|
||||
.y = 141,
|
||||
.w = 73,
|
||||
.h = 99,
|
||||
.props.button = {
|
||||
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA2,
|
||||
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGERELDATA1,
|
||||
.is_pressed = 0,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_LIGHT_COLOR] = {
|
||||
.widget_id = MAIN_MAIN_LIGHT_COLOR,
|
||||
.type = Wui_w_Button,
|
||||
.x = 127,
|
||||
.y = 141,
|
||||
.w = 73,
|
||||
.h = 99,
|
||||
.props.button = {
|
||||
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR2,
|
||||
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCOLOR1,
|
||||
.is_pressed = 0,
|
||||
},
|
||||
},
|
||||
|
||||
[MAIN_MAIN_COLOR_CFG] = {
|
||||
.widget_id = MAIN_MAIN_COLOR_CFG,
|
||||
.type = Wui_w_Button,
|
||||
.x = 226,
|
||||
.y = 141,
|
||||
.w = 73,
|
||||
.h = 99,
|
||||
.props.button = {
|
||||
.pressed_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG2,
|
||||
.normal_img_id = IMAGE_RES_IMG_TPL_MAIN_PAGELIGHTCFG1,
|
||||
.is_pressed = 0,
|
||||
},
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif // WUI_PAGE_MAIN_H
|
||||
@@ -0,0 +1,16 @@
|
||||
#include "wui_user/wui_page_none.h"
|
||||
|
||||
static void none_on_key(uint32_t key)
|
||||
{
|
||||
wui_page_switch(WUI_START_PAGE);
|
||||
}
|
||||
|
||||
void wui_page_none_init()
|
||||
{
|
||||
wui_page_init(widgets_none, sizeof(widgets_none) / sizeof(widgets_none[0]));
|
||||
wui_register_key_handler(none_on_key);
|
||||
}
|
||||
|
||||
void wui_page_none_loop()
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef WUI_PAGE_NONE_H
|
||||
#define WUI_PAGE_NONE_H
|
||||
|
||||
#include "wui.h"
|
||||
#include "wui_user/wui_page.h"
|
||||
#include "wui_widget.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
WIDGET_NONE_BG = 0,
|
||||
} none_widget_id_t;
|
||||
|
||||
static const wui_widget_desc_t widgets_none[] = {
|
||||
[WIDGET_NONE_BG] = {
|
||||
.widget_id = WIDGET_NONE_BG,
|
||||
.type = Wui_w_Rect,
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.w = LCD_WIDTH,
|
||||
.h = LCD_HEIGHT,
|
||||
.props.rect = {
|
||||
.color = LCD_black,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
#endif // WUI_PAGE_NONE_H
|
||||
Reference in New Issue
Block a user