Compare commits
27 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
7138123201 | |
|
|
f1e4177e92 | |
|
|
4544f8706a | |
|
|
c4852aca5d | |
|
|
4d0b015a07 | |
|
|
68aec080c8 | |
|
|
c4969c895c | |
|
|
e11ec36ca5 | |
|
|
0e5a8efdd8 | |
|
|
45686415a7 | |
|
|
50e847e2ee | |
|
|
8c941905e7 | |
|
|
23c2dee80f | |
|
|
0a0bd9b3ea | |
|
|
280aa1f752 | |
|
|
f80c16dbef | |
|
|
7c76b8302a | |
|
|
f076d1714a | |
|
|
a02379104d | |
|
|
0bf9b77a4a | |
|
|
8a7e8169a2 | |
|
|
bce08be772 | |
|
|
141f232b91 | |
|
|
766f7ee0ba | |
|
|
029313ce99 | |
|
|
d1f1a2cc87 | |
|
|
5daf5e794b |
128
APP/app_log.c
128
APP/app_log.c
|
|
@ -14,13 +14,15 @@ static char s_debug_level = 'D';
|
|||
static char s_cmd_buf[48];
|
||||
static uint8_t s_cmd_len;
|
||||
|
||||
/* RTT 二进制烧录:将 ui0902_res.bin 写到 W25Q128 @ UI0902_RES_BASE */
|
||||
/* RTT 二进制烧录:写到 W25Q128(ui0902 或本地曲目) */
|
||||
static uint8_t s_flash_mode;
|
||||
static uint32_t s_flash_base;
|
||||
static uint32_t s_flash_addr;
|
||||
static uint32_t s_flash_remain;
|
||||
static uint32_t s_flash_last_sector;
|
||||
static uint16_t s_flash_page_len;
|
||||
static uint8_t s_flash_page[256];
|
||||
static char s_flash_ok_tag[24];
|
||||
|
||||
uint8_t app_log_flash_busy(void)
|
||||
{
|
||||
|
|
@ -61,7 +63,7 @@ static void app_log_flash_feed(const uint8_t *data, unsigned len)
|
|||
unsigned i;
|
||||
|
||||
for (i = 0; i < len && s_flash_remain > 0U; i++) {
|
||||
if (s_flash_page_len == 0U && s_flash_addr == UI0902_RES_BASE && i == 0U) {
|
||||
if (s_flash_page_len == 0U && s_flash_addr == s_flash_base && i == 0U) {
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, "FLASH_RX\n");
|
||||
}
|
||||
s_flash_page[s_flash_page_len++] = data[i];
|
||||
|
|
@ -73,34 +75,42 @@ static void app_log_flash_feed(const uint8_t *data, unsigned len)
|
|||
|
||||
if (s_flash_remain == 0U && s_flash_mode) {
|
||||
s_flash_mode = 0U;
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, "FLASH_UI0902_OK\n");
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, s_flash_ok_tag);
|
||||
UI_DrawModeSelectScreen();
|
||||
}
|
||||
}
|
||||
|
||||
static void app_log_flash_start(uint32_t size)
|
||||
static void app_log_flash_start_at(uint32_t base, uint32_t size, const char *go_tag, const char *ok_tag)
|
||||
{
|
||||
char msg[64];
|
||||
char msg[80];
|
||||
|
||||
if (size == 0U || size > (2U * 1024U * 1024U)) {
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, "FLASH_UI0902_ERR size\n");
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, "FLASH_ERR size\n");
|
||||
return;
|
||||
}
|
||||
|
||||
s_flash_mode = 1U;
|
||||
s_flash_addr = UI0902_RES_BASE;
|
||||
s_flash_base = base;
|
||||
s_flash_addr = base;
|
||||
s_flash_remain = size;
|
||||
s_flash_last_sector = 0xFFFFFFFFUL;
|
||||
s_flash_page_len = 0U;
|
||||
s_cmd_len = 0U;
|
||||
s_cmd_buf[0] = '\0';
|
||||
strncpy(s_flash_ok_tag, ok_tag, sizeof(s_flash_ok_tag) - 1U);
|
||||
s_flash_ok_tag[sizeof(s_flash_ok_tag) - 1U] = '\0';
|
||||
|
||||
snprintf(msg, sizeof(msg),
|
||||
"FLASH_UI0902_GO base=0x%08lX size=%lu\n",
|
||||
(unsigned long)UI0902_RES_BASE, (unsigned long)size);
|
||||
"%s base=0x%08lX size=%lu\n",
|
||||
go_tag, (unsigned long)base, (unsigned long)size);
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, msg);
|
||||
}
|
||||
|
||||
static void app_log_flash_start(uint32_t size)
|
||||
{
|
||||
app_log_flash_start_at(UI0902_RES_BASE, size, "FLASH_UI0902_GO", "FLASH_UI0902_OK\n");
|
||||
}
|
||||
|
||||
static void app_log_slot_store(const char *line)
|
||||
{
|
||||
uint16_t idx = s_head;
|
||||
|
|
@ -264,6 +274,106 @@ uint8_t app_log_try_command(const char *cmd)
|
|||
app_log_flash_start(size);
|
||||
return 1U;
|
||||
}
|
||||
if (strncmp(cmd, "flash haitian ", 14) == 0) {
|
||||
uint32_t size = (uint32_t)strtoul(cmd + 14, NULL, 10);
|
||||
app_log_flash_start_at(FLASH_ADDR_SONG_HAITIAN, size,
|
||||
"FLASH_HAITIAN_GO", "FLASH_HAITIAN_OK\n");
|
||||
return 1U;
|
||||
}
|
||||
if (strncmp(cmd, "tone status", 11) == 0) {
|
||||
uint8_t hdr[16];
|
||||
uint8_t name[40];
|
||||
uint8_t cur_hdr[16];
|
||||
char *pname;
|
||||
char line[192];
|
||||
const char *map;
|
||||
W25Q128_Read(hdr, FLASH_ADDR_SONG_HAITIAN, 16);
|
||||
W25Q128_Read(name, FLASH_ADDR_SONG_HAITIAN + 1280 + 4, 32);
|
||||
name[32] = 0;
|
||||
W25Q128_Read(cur_hdr, (uint32_t)ADDRESS, 16);
|
||||
pname = AutoBandTop1_GetPresetName();
|
||||
if (ADDRESS == EXTFLASH_BIN1_RHYTHM_ADDR)
|
||||
map = "BIN1_RHYTHM";
|
||||
else if (ADDRESS == EXTFLASH_BIN2_SONG_HAITIAN_ADDR)
|
||||
map = "BIN2_SONG_HAITIAN";
|
||||
else if (ADDRESS == EXTFLASH_BIN3_UNIVERSAL_ADDR)
|
||||
map = "BIN3_UNIVERSAL";
|
||||
else
|
||||
map = "UNKNOWN";
|
||||
snprintf(line, sizeof(line),
|
||||
"TONE tab=%u sw=%u addr=0x%08lX map=%s songidx=%u rhyt=%u\n",
|
||||
(unsigned)mGuiData[GUI_TAB_INDEX].Current,
|
||||
(unsigned)mGuiData[GUI_AUTOBAND_SW].Current,
|
||||
(unsigned long)ADDRESS, map,
|
||||
(unsigned)ParamGuiData[EXPRESS_MODE_PARAM].Current,
|
||||
(unsigned)ParamGuiData[SONG_MODE_PARAM].Current);
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, line);
|
||||
snprintf(line, sizeof(line),
|
||||
"TONE map BIN1=0x%08lX BIN2=0x%08lX BIN3=0x%08lX\n",
|
||||
(unsigned long)EXTFLASH_BIN1_RHYTHM_ADDR,
|
||||
(unsigned long)EXTFLASH_BIN2_SONG_HAITIAN_ADDR,
|
||||
(unsigned long)EXTFLASH_BIN3_UNIVERSAL_ADDR);
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, line);
|
||||
snprintf(line, sizeof(line),
|
||||
"TONE @ADDRESS magic=%02X%02X%02X%02X cnt=%lu\n",
|
||||
cur_hdr[0], cur_hdr[1], cur_hdr[2], cur_hdr[3],
|
||||
(unsigned long)(cur_hdr[12] | (cur_hdr[13] << 8) |
|
||||
(cur_hdr[14] << 16) | (cur_hdr[15] << 24)));
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, line);
|
||||
snprintf(line, sizeof(line),
|
||||
"TONE @BIN2 magic=%02X%02X%02X%02X max=%lu cnt=%lu name=%.16s\n",
|
||||
hdr[0], hdr[1], hdr[2], hdr[3],
|
||||
(unsigned long)(hdr[8] | (hdr[9] << 8) | (hdr[10] << 16) | (hdr[11] << 24)),
|
||||
(unsigned long)(hdr[12] | (hdr[13] << 8) | (hdr[14] << 16) | (hdr[15] << 24)),
|
||||
(char *)name);
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, line);
|
||||
snprintf(line, sizeof(line),
|
||||
"TONE loaded name=%s count=%d\n",
|
||||
pname ? pname : "(null)",
|
||||
AutoBandTop1_GetPresetItemCount());
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, line);
|
||||
return 1U;
|
||||
}
|
||||
if (strncmp(cmd, "tone reload", 11) == 0) {
|
||||
char line[96];
|
||||
UI_ReloadTonePreset();
|
||||
snprintf(line, sizeof(line),
|
||||
"TONE_RELOAD addr=0x%08lX name=%s\n",
|
||||
(unsigned long)ADDRESS,
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "(null)");
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, line);
|
||||
return 1U;
|
||||
}
|
||||
if (strncmp(cmd, "tone local", 10) == 0) {
|
||||
char line[128];
|
||||
int ret;
|
||||
mGuiData[GUI_TAB_INDEX].Current = 1; /* 专业 */
|
||||
mGuiData[GUI_AUTOBAND_SW].Current = 1; /* 本地曲目 */
|
||||
ParamGuiData[EXPRESS_MODE_PARAM].Current = 0;
|
||||
UI_ApplyToneAddress();
|
||||
AutoBandTop1_Stop();
|
||||
StartFlag = 0;
|
||||
ret = AutoBandTop1_LoadPresetItemFromFlash(0);
|
||||
snprintf(line, sizeof(line),
|
||||
"TONE_LOCAL ret=%d addr=0x%08lX map=BIN2@0x%08lX name=%s count=%d %s\n",
|
||||
ret, (unsigned long)ADDRESS,
|
||||
(unsigned long)EXTFLASH_BIN2_SONG_HAITIAN_ADDR,
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "(null)",
|
||||
AutoBandTop1_GetPresetItemCount(),
|
||||
(ADDRESS == EXTFLASH_BIN2_SONG_HAITIAN_ADDR) ? "OK" : "MISMATCH");
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, line);
|
||||
return 1U;
|
||||
}
|
||||
if (strncmp(cmd, "tone pick", 9) == 0) {
|
||||
/* 模拟专业+本地曲目拨片(无和弦板) */
|
||||
mGuiData[GUI_TAB_INDEX].Current = 1;
|
||||
mGuiData[GUI_AUTOBAND_SW].Current = 1;
|
||||
KEY_ID_1629 = 0; /* 走默认和弦兜底 */
|
||||
StartFlag = 0;
|
||||
Pick_Handle();
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, "TONE_PICK_DONE\n");
|
||||
return 1U;
|
||||
}
|
||||
if (strncmp(cmd, "flash erase chip", 16) == 0) {
|
||||
SEGGER_RTT_WriteString(APP_LOG_RTT_CHANNEL, "FLASH_ERASE_BEGIN\n");
|
||||
LOG_I("FLASH", "W25Q128 chip erase start");
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const char CHS8Table[][2] = {
|
|||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xB8,0xE8}, // 歌 17
|
||||
{0xC7,0xFA}, // 曲 18
|
||||
{0xD7,0xD4}, // 自 19
|
||||
|
|
@ -66,7 +66,7 @@ const char CHS11Table[][2] = {
|
|||
{0xD2,0xF4}, // 音
|
||||
{0xC9,0xAB}, // 色
|
||||
{0xD1,0xA1}, // 选
|
||||
{0xD2,0xE9}, // 择
|
||||
{0xD4,0xF1}, // 择
|
||||
{0xB8,0xE8}, // 歌
|
||||
{0xC7,0xFA}, // 曲
|
||||
{0xD7,0xD4}, // 自
|
||||
|
|
@ -121,7 +121,7 @@ const char CHS12Table[][2] = {
|
|||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xB8,0xE8}, // 歌 17
|
||||
{0xC7,0xFA}, // 曲 18
|
||||
{0xD7,0xD4}, // 自 19
|
||||
|
|
@ -174,12 +174,12 @@ const char CHS13Table[][2] = {
|
|||
{0xC4,0xA3}, // 模 4
|
||||
{0xCA,0xBD}, // 式 5
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xCF,0xD2}, // 弦 8
|
||||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 11
|
||||
{0xD2,0xE9}, // 择 12
|
||||
{0xD4,0xF1}, // 择 12
|
||||
{0xD1,0xDD}, // 演 13
|
||||
{0xD7,0xE0}, // 奏 14
|
||||
{0xB6,0xCE}, // 段 15
|
||||
|
|
@ -361,12 +361,12 @@ const char CHS15Table[][2] = {
|
|||
{0xC4,0xA3}, // 模 4
|
||||
{0xCA,0xBD}, // 式 5
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xCF,0xD2}, // 弦 8
|
||||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 11
|
||||
{0xD2,0xE9}, // 择 12
|
||||
{0xD4,0xF1}, // 择 12
|
||||
{0xD1,0xDD}, // 演 13
|
||||
{0xD7,0xE0}, // 奏 14
|
||||
{0xB6,0xCE}, // 段 15
|
||||
|
|
@ -547,12 +547,12 @@ const char CHS16Table[][2] = {
|
|||
{0xC4,0xA3}, // 模 4
|
||||
{0xCA,0xBD}, // 式 5
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xCF,0xD2}, // 弦 8
|
||||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 11
|
||||
{0xD2,0xE9}, // 择 12
|
||||
{0xD4,0xF1}, // 择 12
|
||||
{0xD1,0xDD}, // 演 13
|
||||
{0xD7,0xE0}, // 奏 14
|
||||
{0xB6,0xCE}, // 段 15
|
||||
|
|
|
|||
|
|
@ -320,6 +320,7 @@
|
|||
<state>$PROJ_DIR$\..\..\device\W25Q128</state>
|
||||
<state>$PROJ_DIR$\..\..\device\LCD_ILI9341</state>
|
||||
<state>$PROJ_DIR$\..\..\device\TM1617</state>
|
||||
<state>$PROJ_DIR$\..\..\..\project\inc</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCStdIncCheck</name>
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "includes.h"
|
||||
#include "W25Q128.h"
|
||||
#include "Drv_TM1617_RGB.h"
|
||||
#include "UI0902_Res_Addr.h"
|
||||
/* private includes ----------------------------------------------------------*/
|
||||
/* add user code begin private includes */
|
||||
|
||||
|
|
@ -84,7 +85,7 @@ void JumpToApplication(void);
|
|||
|
||||
uint8_t TM1617KeyValue = 0;
|
||||
static uint32_t PowerKeyCount = 0;
|
||||
static uint8_t long_press_locked = 0; // 长按锁定,防止一直触发
|
||||
static uint8_t long_press_locked = 0; // ???????????????????
|
||||
/* add user code end 0 */
|
||||
|
||||
flag_status BSP_GetPowerKey (void)
|
||||
|
|
@ -130,15 +131,15 @@ int main(void)
|
|||
|
||||
TM1617_GPIO_Init();
|
||||
|
||||
/* 短暂等待总线稳定;默认跳转 App。
|
||||
* 仅当开机时按住 KEY_MAIN_A 才进入 USB 升级模式。
|
||||
* (旧逻辑:仅 KEY_NULL 才跳 App,复位后按键误读会永久卡在 Boot 黑屏) */
|
||||
/* ????????????????????? App??
|
||||
* ???????????? KEY_MAIN_A ????? USB ????????
|
||||
* ??????????? KEY_NULL ???? App????λ??????????????? Boot ?????? */
|
||||
wk_delay_ms(50);
|
||||
TM1617KeyValue = TM1617_ScanFkey();
|
||||
if (TM1617KeyValue != KEY_MAIN_A)
|
||||
{
|
||||
JumpToApplication();
|
||||
/* 若 App 向量无效则继续走升级模式 */
|
||||
/* ?? App ??????Ч????????????? */
|
||||
}
|
||||
|
||||
/* init spi1 function. */
|
||||
|
|
@ -161,8 +162,24 @@ int main(void)
|
|||
LCD_Init();
|
||||
wk_delay_ms(10);
|
||||
/* USER CODE BEGIN 2 */
|
||||
LCD_BLK_Set();
|
||||
LCD_ShowChinese_AutoAlign(0, 240,150 ,(uint8_t*)"\xC9\xFD\xBC\xB6\xC4\xA3\xCA\xBD\x00",LCD_ALIGN_CENTER, RED, WHITE, 0, 24);
|
||||
LCD_BLK_Set();
|
||||
/* 烧录模式全屏图:UI0902_FLASH_MODE @ 外置 Flash;未烧资源时黑底兜底 */
|
||||
{
|
||||
uint8_t peek[4];
|
||||
W25Q128_Read(peek, UI0902_FLASH_MODE_ADDR, 4);
|
||||
if (!(peek[0] == 0xFF && peek[1] == 0xFF && peek[2] == 0xFF && peek[3] == 0xFF))
|
||||
{
|
||||
LCD_WR_PIC_FROM_FLASH(0, 0, UI0902_FLASH_MODE_W, UI0902_FLASH_MODE_H,
|
||||
UI0902_FLASH_MODE_ADDR);
|
||||
}
|
||||
else
|
||||
{
|
||||
LCD_FillByColor(0, 0, 240, 320, BLACK);
|
||||
LCD_ShowChinese_AutoAlign(0, 240, 150,
|
||||
(uint8_t *)"\xC9\xD5\xC2\xBC\xC4\xA3\xCA\xBD\x00",
|
||||
LCD_ALIGN_CENTER, WHITE, BLACK, 0, 24);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* add user code end 2 */
|
||||
|
|
@ -173,7 +190,7 @@ int main(void)
|
|||
/* add user code begin 3 */
|
||||
if(BSP_GetPowerKey() == 0)
|
||||
{
|
||||
// 按键按下
|
||||
// ????????
|
||||
if (PowerKeyCount < 200 && long_press_locked == 0)
|
||||
{
|
||||
PowerKeyCount++;
|
||||
|
|
@ -247,10 +264,10 @@ void JumpToApplication(void)
|
|||
|
||||
if (((*(__IO uint32_t*)FIRMWARE_START_ADDR) & 0x2FFE0000 ) == 0x20000000)
|
||||
{
|
||||
/* 跳转到用户应用代码区 */
|
||||
/* ???????????????? */
|
||||
JumpAddress = *(__IO uint32_t*) (FIRMWARE_START_ADDR + 4);
|
||||
Jump_To_Application = (pFunction) JumpAddress;
|
||||
/* 初始化用户应用程序的堆栈指针 */
|
||||
/* ??????????ó????????? */
|
||||
__set_MSP(*(__IO uint32_t*) FIRMWARE_START_ADDR);
|
||||
SCB->VTOR = FIRMWARE_START_ADDR;
|
||||
Jump_To_Application();
|
||||
|
|
|
|||
|
|
@ -42,10 +42,10 @@ const LEBEL_UI UI_Label[] = {
|
|||
LCD_ALIGN_CENTER,WHITE,BLACK,UI0902_FONT_HERO, GUI_SPEED},
|
||||
/* 0819:TAB/行标题11、曲目正文13 */
|
||||
{UI0902_MARGIN_X, UI0902_CONTENT_W, UI0902_MODE_Y, UI0902_MODE_H,
|
||||
(const uint8_t*)"\xB8\xE8\xC7\xFA\xD1\xA1\xD2\xE9", LCD_ALIGN_LEFT,WHITE,BLACK,UI0902_FONT_LABEL,
|
||||
(const uint8_t*)"\xB8\xE8\xC7\xFA\xD1\xA1\xD4\xF1", LCD_ALIGN_LEFT,WHITE,BLACK,UI0902_FONT_LABEL,
|
||||
LCD_ALIGN_CENTER,WHITE,BLACK,UI0902_FONT_BODY,GUI_MODE_PARAM},
|
||||
{UI0902_MARGIN_X, UI0902_CONTENT_W, UI0902_TIMBRE_Y, UI0902_TIMBRE_H,
|
||||
(const uint8_t*)"\xCF\xD2\xD2\xF4\xC9\xAB\xD1\xA1\xD2\xE9",LCD_ALIGN_LEFT,WHITE,BLACK,UI0902_FONT_LABEL,
|
||||
(const uint8_t*)"\xCF\xD2\xD2\xF4\xC9\xAB\xD1\xA1\xD4\xF1",LCD_ALIGN_LEFT,WHITE,BLACK,UI0902_FONT_LABEL,
|
||||
LCD_ALIGN_CENTER,WHITE,BLACK,UI0902_FONT_BODY,GUI_TIMBRE_SELECT},
|
||||
/* 0819:演奏段落 字号13 */
|
||||
{UI0902_MARGIN_X, UI0902_CONTENT_W, UI0902_SECTION_Y, UI0902_SECTION_H,
|
||||
|
|
@ -101,7 +101,7 @@ int16_t MIC_VOL_MAP[11]= {-9000,-7000,-5000,-3000,-1000,1000,3000,5000,7000,9000
|
|||
|
||||
uint8_t TOUCH_AREA_NUM = (sizeof(Touch_Areas)/sizeof(Touch_AreaTypeDef));
|
||||
|
||||
const uint8_t Version[3] = {0,2,1}; /* major.minor.patch — 0.2.1: keep mixer/master vol across power cycle */
|
||||
const uint8_t Version[3] = {0,2,6}; /* major.minor.patch — 0.2.6: local song 2.bin from Doc/音色文件/0908/2ss_2.bin */
|
||||
|
||||
uint8_t Led = 8;
|
||||
bool PressFlag = 0;
|
||||
|
|
@ -180,11 +180,11 @@ bool powon = false;
|
|||
void System_PowerOn(void)
|
||||
{
|
||||
LOG_I("PWR", "power_on begin");
|
||||
/* 控制电源硬件 */
|
||||
/* 控制电源硬件;蓝牙按 NVM/系统设置开关恢复,勿强制常开 */
|
||||
BSP_MainPowerEnable(1);
|
||||
BSP_DreamCorePowerEnable(1);
|
||||
BSP_HT7178PowerEnable(1);
|
||||
BSP_BlueToothPowerEnable(1);
|
||||
BSP_BlueToothPowerEnable((uint8_t)(mGuiData[GUI_BL_SW].Current ? 1 : 0));
|
||||
powon = true; /* 更新开机标志 */
|
||||
|
||||
/* 先通知 UI 亮屏,避免外设初始化阻塞导致长时间黑屏 */
|
||||
|
|
@ -212,13 +212,14 @@ static void PowerOff(void)
|
|||
powon = false; /* 更新关机标志 */
|
||||
StopFullTask();
|
||||
|
||||
/* 关机前把当前调音台推子写入 NVM 镜像,保证再次开机保持音量 */
|
||||
/* 关机前把当前调音台推子与蓝牙开关写入 NVM,保证再次开机保持 */
|
||||
{
|
||||
NvmParam_Type *nvm = drv_nvm_param_ptr();
|
||||
nvm->param.BandVol = faders[0].val;
|
||||
nvm->param.StringVol = faders[1].val;
|
||||
nvm->param.MIcVol = faders[2].val;
|
||||
nvm->param.MicRev = faders[3].val;
|
||||
nvm->param.BluetoothSW = (uint8_t)(mGuiData[GUI_BL_SW].Current ? 1 : 0);
|
||||
}
|
||||
nvm_ret = drv_nvm_save_to_flash();
|
||||
LOG_I("PWR", "nvm_save=%u", (unsigned)nvm_ret);
|
||||
|
|
@ -774,21 +775,48 @@ void Pick_Handle()
|
|||
break;
|
||||
|
||||
case 2:
|
||||
if(StartFlag == 0) //当播放了之后,拨片不再起作用
|
||||
/* 普通:节奏/本地曲目均用 StartWithNote;切库后允许再次拨片起奏 */
|
||||
if (StartFlag == 0 || mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
{
|
||||
StartFlag = 1;
|
||||
AutoBandTop1_Stop();
|
||||
AutoBandTop1_SetLoopMode(0,1);
|
||||
AutoBandTop1_SetRunVar(mGuiData[GUI_PLAY_SECTION].Current);
|
||||
/* 起调必须用 0x3C+移调;勿用和弦音区 MIDI(如 48),否则本地曲目起奏异常 */
|
||||
midi = 0x3C + mGuiData[GUI_TRANSPOSE].Current;
|
||||
AutoBandTop1_StartWithNote(midi);
|
||||
AutoBandTop1_StartWithNotes(midi_note_buff, note_cnt);
|
||||
if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
LOG_I("pick", "local/normal root=%u name=%s", midi,
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "?");
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
StartFlag = 1;
|
||||
AutoBandTop1_SetPiecePlayMode(1,0,1920);
|
||||
AutoBandTop1_StartWithNotes(midi_note_buff, note_cnt);
|
||||
AutoBandTop1_SetLoopMode(0,1);
|
||||
if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
{
|
||||
/* 本地曲目:与普通模式同一套起奏(0x3C 根音 + 和弦音) */
|
||||
AutoBandTop1_Stop();
|
||||
AutoBandTop1_SetLoopMode(0,1);
|
||||
AutoBandTop1_SetRunVar(mGuiData[GUI_PLAY_SECTION].Current);
|
||||
midi = 0x3C + mGuiData[GUI_TRANSPOSE].Current;
|
||||
AutoBandTop1_StartWithNote(midi);
|
||||
AutoBandTop1_StartWithNotes(midi_note_buff, note_cnt);
|
||||
LOG_I("pick", "local/expert root=%u name=%s sw=%u tab=%u",
|
||||
midi,
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "?",
|
||||
(unsigned)mGuiData[GUI_AUTOBAND_SW].Current,
|
||||
(unsigned)mGuiData[GUI_TAB_INDEX].Current);
|
||||
}
|
||||
else
|
||||
{
|
||||
AutoBandTop1_SetPiecePlayMode(1,0,1920);
|
||||
AutoBandTop1_StartWithNotes(midi_note_buff, note_cnt);
|
||||
AutoBandTop1_SetLoopMode(0,1);
|
||||
LOG_I("pick", "expert/rhythm piece name=%s",
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "?");
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
StartFlag = 1;
|
||||
|
|
@ -1239,8 +1267,10 @@ uint8_t GetChordNotesByType(uint8_t MIDI_Index,uint8_t type,uint8_t *buff)
|
|||
for (i = 0; i < n; i++)
|
||||
buff[i] += mGuiData[GUI_TRANSPOSE].Current;
|
||||
|
||||
/* 音师:所有调的 #四级 — 整组和弦低八度,音域压在一个八度内 */
|
||||
if (chord_type_index_map[MIDI_Index].PitchOffset == 2)
|
||||
/* 音师:仅所有调的 #四级(键 10~12 + 升)— 整组低八度,音域压在一个八度内
|
||||
* 最低音 = #IV,最高音 ≤ 自然 IV。勿对六级等其它升号和弦套用。 */
|
||||
if (MIDI_Index >= 10 && MIDI_Index <= 12 &&
|
||||
chord_type_index_map[MIDI_Index].PitchOffset == 2)
|
||||
{
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
#include <stdlib.h>
|
||||
#include "includes.h"
|
||||
MidiFifoSeq_t m_MidiSendFifo;
|
||||
#define PRESET_BUFFER_SIZE (1024*40)
|
||||
#define PRESET_BUFFER_SIZE (1024*41) /* 2s.res compressed HKTK preset 39760 bytes */
|
||||
static int m_presetCount = 0;
|
||||
static uint8_t pStoreBuffer[PRESET_BUFFER_SIZE];
|
||||
//static uint8_t* pStoreBuffer;
|
||||
|
|
@ -76,9 +76,60 @@ static void Func_CallBack_PitchWheel(int channel,int cc,int value)
|
|||
mymidififo_InQueue(&m_MidiSendFifo,&midimsg);
|
||||
}
|
||||
|
||||
/* Flash Map 0903:对照 ExtFlash_Tone_Addr.h / Doc/.../FLASH_MAP.txt */
|
||||
static const char *ToneFlashMapBank(uint32_t abs)
|
||||
{
|
||||
if (abs >= EXTFLASH_BIN1_RHYTHM_ADDR &&
|
||||
abs < EXTFLASH_BIN1_RHYTHM_ADDR + EXTFLASH_BIN1_RHYTHM_SIZE)
|
||||
return "BIN1_RHYTHM";
|
||||
if (abs >= EXTFLASH_BIN2_SONG_HAITIAN_ADDR &&
|
||||
abs < EXTFLASH_BIN2_SONG_HAITIAN_ADDR + EXTFLASH_BIN2_SONG_HAITIAN_SIZE)
|
||||
return "BIN2_SONG_HAITIAN";
|
||||
if (abs >= EXTFLASH_BIN3_UNIVERSAL_ADDR &&
|
||||
abs < EXTFLASH_BIN3_UNIVERSAL_ADDR + EXTFLASH_BIN3_UNIVERSAL_SIZE)
|
||||
return "BIN3_UNIVERSAL";
|
||||
if (abs >= FLASH_ADDR_AUTOBAND_LEGACY &&
|
||||
abs < FLASH_ADDR_AUTOBAND_LEGACY + 0x10000UL)
|
||||
return "LEGACY_AUTOBAND";
|
||||
return "OUT_OF_MAP";
|
||||
}
|
||||
|
||||
static uint32_t s_flash_rd_last_base = 0xFFFFFFFFu;
|
||||
static uint16_t s_flash_rd_log_cnt = 0;
|
||||
|
||||
static int Func_CallBack_ReadFlash(int address,int length,uint8_t* pOutput)
|
||||
{
|
||||
W25Q128_Read(pOutput, (uint32_t)ADDRESS+address, length);
|
||||
uint32_t base = (uint32_t)ADDRESS;
|
||||
uint32_t abs = base + (uint32_t)address;
|
||||
const char *bank;
|
||||
|
||||
if (base != s_flash_rd_last_base) {
|
||||
s_flash_rd_last_base = base;
|
||||
s_flash_rd_log_cnt = 0;
|
||||
LOG_I("FLASH_RD", "bank base=0x%08X map=%s (BIN1=0x%08X BIN2=0x%08X BIN3=0x%08X)",
|
||||
(unsigned)base,
|
||||
ToneFlashMapBank(base),
|
||||
(unsigned)EXTFLASH_BIN1_RHYTHM_ADDR,
|
||||
(unsigned)EXTFLASH_BIN2_SONG_HAITIAN_ADDR,
|
||||
(unsigned)EXTFLASH_BIN3_UNIVERSAL_ADDR);
|
||||
}
|
||||
|
||||
bank = ToneFlashMapBank(abs);
|
||||
/* 加载阶段打印前若干次 + 每次 offset==0;避免播放期刷屏 */
|
||||
if (s_flash_rd_log_cnt < 16u || address == 0) {
|
||||
LOG_I("FLASH_RD", "abs=0x%08X off=%d len=%d map=%s",
|
||||
(unsigned)abs, address, length, bank);
|
||||
if (s_flash_rd_log_cnt < 0xFFFFu)
|
||||
s_flash_rd_log_cnt++;
|
||||
if (s_flash_rd_log_cnt == 16u)
|
||||
LOG_I("FLASH_RD", "further reads omitted (same base)");
|
||||
} else if (bank[0] == 'O') {
|
||||
/* 读到 Map 外:始终告警 */
|
||||
LOG_W("FLASH_RD", "OUT_OF_MAP abs=0x%08X off=%d len=%d base=0x%08X",
|
||||
(unsigned)abs, address, length, (unsigned)base);
|
||||
}
|
||||
|
||||
W25Q128_Read(pOutput, abs, length);
|
||||
return 0;
|
||||
}
|
||||
//
|
||||
|
|
@ -97,11 +148,14 @@ void App_Auto_Init(void)
|
|||
int ret = AutoBandTop1_LoadPresetItemFromFlash(0);
|
||||
if (ret != 0)
|
||||
{
|
||||
LOG_E("AUTO", "LoadPreset fail ret=%d addr=0x%08X",
|
||||
ret, (unsigned)ADDRESS);
|
||||
LOG_E("AUTO", "LoadPreset fail ret=%d addr=0x%08X map=%s",
|
||||
ret, (unsigned)ADDRESS, ToneFlashMapBank((uint32_t)ADDRESS));
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_I("AUTO", "LoadPreset ok name=%s addr=0x%08X map=%s",
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "?",
|
||||
(unsigned)ADDRESS, ToneFlashMapBank((uint32_t)ADDRESS));
|
||||
AutoBandTop1_ChangeBPM(mGuiData[1].Current);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,10 @@ void UI_ExpertMode_Init(void)
|
|||
mGuiData[GUI_TAB_LAST_INDEX].Current = mGuiData[GUI_TAB_INDEX].Current;
|
||||
//mGuiData[GUI_AUTOBAND_SW].Current = 1;
|
||||
UI_ReloadTonePreset(); /* 必须在 TAB=专业 之后换库,否则仍是万能 3.bin */
|
||||
Show_home_UI();
|
||||
if (CurrUIProcress == UI_SongMode_Process)
|
||||
Show_home_UI_Diff();
|
||||
else
|
||||
Show_home_UI();
|
||||
pCurrentTouch_Area = Touch_Areas;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,10 @@ void UI_FreeMode_Init(void)
|
|||
mGuiData[GUI_TAB_LAST_INDEX].Current = mGuiData[GUI_TAB_INDEX].Current;
|
||||
//mGuiData[GUI_AUTOBAND_SW].Current = 1;
|
||||
UI_ReloadTonePreset(); /* TAB=普通 后再加载 1.bin */
|
||||
Show_home_UI();
|
||||
if (CurrUIProcress == UI_SongMode_Process)
|
||||
Show_home_UI_Diff();
|
||||
else
|
||||
Show_home_UI();
|
||||
pCurrentTouch_Area = Touch_Areas;
|
||||
}
|
||||
|
||||
|
|
|
|||
95
UI/UI_Idle.c
95
UI/UI_Idle.c
|
|
@ -19,56 +19,37 @@ void RGB_Y_TO_G()
|
|||
#define UI_MODE_SCREEN_WIDTH 240
|
||||
#define UI_MODE_SCREEN_HEIGHT 320
|
||||
|
||||
/* 模式选择页焦点:0=万能 1=普通 2=专业,默认选中万能(与规范一致) */
|
||||
static uint8_t s_mode_select_focus = 0;
|
||||
|
||||
extern bool InModeFlag;
|
||||
|
||||
/* 0902/0819:三行模式撑满状态栏下方至底边(无底栏),222x88 @ y=43/135/225 */
|
||||
/* 0902-01:行高88、行距92;顶边与模式主页移调/速度(CARD_Y=48)对齐,分割线居中 */
|
||||
#define UI0902_MODE_ROW_X 9
|
||||
#define UI0902_MODE_ROW_W 222
|
||||
#define UI0902_MODE_ROW_H 88
|
||||
#define UI0902_MODE_ROW_Y0 43
|
||||
#define UI0902_MODE_ROW_DY 92
|
||||
#define UI0902_MODE_ROW_Y0 UI0902_CARD_Y /* 48,与移调/速度顶对齐 */
|
||||
#define UI0902_MODE_ROW_DY 92 /* 48 / 140 / 232 */
|
||||
|
||||
static const uint32_t s_mode_row_addr[3][2] = {
|
||||
{ UI0902_ROW_UNIVERSAL_NOT_ADDR, UI0902_ROW_UNIVERSAL_SEL_ADDR }, /* 0 万能 */
|
||||
{ UI0902_ROW_NORMAL_NOT_ADDR, UI0902_ROW_NORMAL_SEL_ADDR }, /* 1 普通 */
|
||||
{ UI0902_ROW_EXPERT_NOT_ADDR, UI0902_ROW_EXPERT_SEL_ADDR }, /* 2 专业 */
|
||||
/* 模式页不显示焦点:三行均用未选中资源;单击直接进入 */
|
||||
static const uint32_t s_mode_row_addr[3] = {
|
||||
UI0902_ROW_UNIVERSAL_NOT_ADDR, /* 0 万能 */
|
||||
UI0902_ROW_NORMAL_NOT_ADDR, /* 1 普通 */
|
||||
UI0902_ROW_EXPERT_NOT_ADDR, /* 2 专业 */
|
||||
};
|
||||
|
||||
static void UI_DrawModeSelectButton(uint16_t y, uint8_t idx, uint8_t focused)
|
||||
{
|
||||
LCD_WR_PIC_FROM_FLASH(UI0902_MODE_ROW_X, y, UI0902_MODE_ROW_W, UI0902_MODE_ROW_H,
|
||||
s_mode_row_addr[idx][focused ? 1 : 0]);
|
||||
}
|
||||
|
||||
static void UI_ModeSelect_DrawButtonAt(uint8_t idx)
|
||||
{
|
||||
if (idx > 2)
|
||||
return;
|
||||
UI_DrawModeSelectButton((uint16_t)(UI0902_MODE_ROW_Y0 + idx * UI0902_MODE_ROW_DY),
|
||||
idx, s_mode_select_focus == idx);
|
||||
}
|
||||
|
||||
static void UI_ModeSelect_SetFocus(uint8_t idx)
|
||||
{
|
||||
uint8_t prev;
|
||||
|
||||
if (idx > 2 || idx == s_mode_select_focus)
|
||||
return;
|
||||
prev = s_mode_select_focus;
|
||||
s_mode_select_focus = idx;
|
||||
/* 只重绘新旧两个按钮,避免整页三键闪烁 */
|
||||
UI_ModeSelect_DrawButtonAt(prev);
|
||||
UI_ModeSelect_DrawButtonAt(idx);
|
||||
}
|
||||
|
||||
static void UI_ModeSelect_DrawButtons(void)
|
||||
{
|
||||
UI_ModeSelect_DrawButtonAt(0);
|
||||
UI_ModeSelect_DrawButtonAt(1);
|
||||
UI_ModeSelect_DrawButtonAt(2);
|
||||
uint8_t i;
|
||||
for (i = 0; i < 3; i++) {
|
||||
uint16_t y = (uint16_t)(UI0902_MODE_ROW_Y0 + i * UI0902_MODE_ROW_DY);
|
||||
LCD_WR_PIC_FROM_FLASH(UI0902_MODE_ROW_X, y,
|
||||
UI0902_MODE_ROW_W, UI0902_MODE_ROW_H,
|
||||
s_mode_row_addr[i]);
|
||||
/* 万能模式素材顶部有残留近白横线(相对行内 y=7/8),盖成行底色 */
|
||||
if (i == 0) {
|
||||
LCD_FillByColor(UI0902_MODE_ROW_X, (uint16_t)(y + 7),
|
||||
(uint16_t)(UI0902_MODE_ROW_X + UI0902_MODE_ROW_W),
|
||||
(uint16_t)(y + 9), UI0902_ROW_BG);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UI_ReturnToModeSelect(void)
|
||||
|
|
@ -76,7 +57,6 @@ void UI_ReturnToModeSelect(void)
|
|||
StartFlag = 0;
|
||||
InModeFlag = false;
|
||||
AutoBandTop1_Stop();
|
||||
s_mode_select_focus = 0;
|
||||
CallUI_Idle();
|
||||
UI_DrawModeSelectScreen();
|
||||
}
|
||||
|
|
@ -93,10 +73,10 @@ void UI_DrawModeSelectScreen(void)
|
|||
}
|
||||
|
||||
const Touch_AreaTypeDef Touch_ModeSelect_Areas[] = {
|
||||
/* Flag=按钮序号(0万能/1普通/2专业);ID=进入 TAB。三行撑满,无底栏 */
|
||||
{ 9, 231, 43, 130, 0, 0, 0, NULL },
|
||||
{ 9, 231, 135, 222, 1, 0, 2, NULL },
|
||||
{ 9, 231, 225, 312, 2, 0, 1, NULL },
|
||||
/* Flag=按钮序号(0万能/1普通/2专业);ID=进入 TAB。全宽便于命中;Y 与 MODE_ROW_* 一致 */
|
||||
{ 0, 239, 48, 135, 0, 0, 0, NULL },
|
||||
{ 0, 239, 140, 227, 1, 0, 2, NULL },
|
||||
{ 0, 239, 232, 319, 2, 0, 1, NULL },
|
||||
};
|
||||
|
||||
#define TOUCH_AREA_MODE_SELECT_NUM (sizeof(Touch_ModeSelect_Areas)/sizeof(Touch_AreaTypeDef))
|
||||
|
|
@ -140,8 +120,8 @@ void LoadConfig(void)
|
|||
void Touch_Mode_Select_Action(int8_t FLAG, uint8_t ID, uint8_t areaIndex)
|
||||
{
|
||||
(void)areaIndex;
|
||||
(void)FLAG;
|
||||
StartTask();
|
||||
s_mode_select_focus = (uint8_t)FLAG;
|
||||
/* ID 为 TAB 索引:0=万能(Song) 1=专业(Expert) 2=普通(Free) */
|
||||
mGuiData[GUI_TAB_INDEX].Current = ID;
|
||||
InModeFlag = true;
|
||||
|
|
@ -184,7 +164,6 @@ void IdleProcess(DisplayTaskMessage_Type msg)
|
|||
app_adc_sync_volume(vol);
|
||||
Send_volume(vol);
|
||||
|
||||
s_mode_select_focus = 0;
|
||||
UI_DrawModeSelectScreen();
|
||||
TM1629D_AllLedOn(LED_COLOR_G);
|
||||
TM1629D_UpdateDisplay(0);
|
||||
|
|
@ -221,20 +200,16 @@ void IdleProcess(DisplayTaskMessage_Type msg)
|
|||
msg.LoByte >= Touch_ModeSelect_Areas[k].y_min && msg.LoByte <= Touch_ModeSelect_Areas[k].y_max )
|
||||
{
|
||||
hit = 1U;
|
||||
uint8_t row = (uint8_t)Touch_ModeSelect_Areas[k].Flag;
|
||||
LOG_I("UI", "mode_select hit area=%u row=%u focus=%u x=%u y=%u",
|
||||
(unsigned)k, (unsigned)row, (unsigned)s_mode_select_focus,
|
||||
LOG_I("UI", "mode_select hit area=%u row=%u x=%u y=%u",
|
||||
(unsigned)k,
|
||||
(unsigned)Touch_ModeSelect_Areas[k].Flag,
|
||||
(unsigned)msg.HiByte, (unsigned)msg.LoByte);
|
||||
/* 已聚焦 → 进入;未聚焦 → 切蓝焦点,再点一次进入 */
|
||||
if (row == s_mode_select_focus) {
|
||||
if (now - s_last_enter_ms < 300U)
|
||||
break;
|
||||
s_last_enter_ms = now;
|
||||
Touch_Mode_Select_Action(Touch_ModeSelect_Areas[k].Flag,
|
||||
Touch_ModeSelect_Areas[k].ID, k);
|
||||
} else {
|
||||
UI_ModeSelect_SetFocus(row);
|
||||
}
|
||||
/* 单击直接进入对应模式主页 */
|
||||
if (now - s_last_enter_ms < 300U)
|
||||
break;
|
||||
s_last_enter_ms = now;
|
||||
Touch_Mode_Select_Action(Touch_ModeSelect_Areas[k].Flag,
|
||||
Touch_ModeSelect_Areas[k].ID, k);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ const Touch_AreaTypeDef Touch_SystemSetting_Areas[] =
|
|||
|
||||
GUI_SWITCH mGuiData_SystemSETTING[] = {
|
||||
{ 0, 0, 2, GUI_VERSION},
|
||||
{ 0, 0, 1, GUI_BLUETOOTH_SW},
|
||||
{ 1, 0, 1, GUI_BLUETOOTH_SW}, /* 默认开;开机由 NVM BluetoothSW 覆盖 */
|
||||
/* 手册:15/30/45/60 分钟 + 不自动;默认 15 分钟(index 0) */
|
||||
{ 0, 0, 4, GUI_AUTOCLOSE},
|
||||
{ 0, 0, 1, GUI_RESTORE},
|
||||
|
|
|
|||
107
UI/UI_SongMode.c
107
UI/UI_SongMode.c
|
|
@ -68,6 +68,21 @@ void Show_home_UI(void)
|
|||
//LCD_BLK_Set();
|
||||
}
|
||||
|
||||
/* 三模式主页互切:只重绘变化区,避免整屏清导致闪烁 */
|
||||
void Show_home_UI_Diff(void)
|
||||
{
|
||||
const LEBEL_UI *mode = &UI_Label[GUI_MODE_PARAM];
|
||||
|
||||
UI_ClearFocus();
|
||||
/* 清 TAB/标题条,避免万能↔普通/专业互切留下残影 */
|
||||
LCD_FillByColor(mode->x, mode->y,
|
||||
(uint16_t)(mode->x + mode->w),
|
||||
(uint16_t)(mode->y + UI0902_TAB_H + 4),
|
||||
UI0902_BG_COLOR);
|
||||
label_ModeSelece_ui(mode, &mGuiData[GUI_MODE_PARAM]);
|
||||
label_Tab_Select_ui(&UI_Label[GUI_PLAY_SECTION], &mGuiData[GUI_TAB_INDEX]);
|
||||
}
|
||||
|
||||
int8_t delta = 0;
|
||||
void Touch_Action(int8_t FLAG, uint8_t ID, uint8_t areaIndex,uint8_t value)
|
||||
{
|
||||
|
|
@ -107,15 +122,15 @@ void Touch_Action(int8_t FLAG, uint8_t ID, uint8_t areaIndex,uint8_t value)
|
|||
{
|
||||
switch(mGuiData[GUI_TAB_INDEX].Current)
|
||||
{
|
||||
case 2:
|
||||
case 0: /* 万能:和弦走向转调触发 */
|
||||
{
|
||||
uint8_t midi = 0x3c;
|
||||
midi += mGuiData[GUI_TRANSPOSE].Current;
|
||||
AutoBandTop1_Note_On(midi,0x3c); // AutoBand 模块未加入工程
|
||||
AutoBandTop1_Note_On(midi,0x3c);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 0:
|
||||
case 1: /* 专业 */
|
||||
case 2: /* 普通 */
|
||||
/* 音师:快转调只换和弦音,伴奏不重头 */
|
||||
Accomp_UpdatePlayingChord();
|
||||
break;
|
||||
|
|
@ -148,50 +163,43 @@ void Touch_Action(int8_t FLAG, uint8_t ID, uint8_t areaIndex,uint8_t value)
|
|||
case GUI_MODE_PARAM:
|
||||
{
|
||||
GUI_SWITCH *pCurData =NULL;
|
||||
uint8_t tab = (uint8_t)mGuiData[GUI_TAB_INDEX].Current;
|
||||
|
||||
if (tab == 0)
|
||||
pCurData = &ParamGuiData[ALL_MODE_PARAM];
|
||||
else if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
pCurData = &ParamGuiData[EXPRESS_MODE_PARAM];
|
||||
else
|
||||
pCurData = &ParamGuiData[SONG_MODE_PARAM];
|
||||
|
||||
switch(mGuiData[GUI_TAB_INDEX].Current)
|
||||
{
|
||||
case 0: case 1:
|
||||
if(mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
{
|
||||
pCurData = &ParamGuiData[EXPRESS_MODE_PARAM];
|
||||
}
|
||||
else
|
||||
{
|
||||
pCurData = &ParamGuiData[SONG_MODE_PARAM];
|
||||
}
|
||||
break;
|
||||
case 2: pCurData = &ParamGuiData[ALL_MODE_PARAM]; break;
|
||||
}
|
||||
last_value = pCurData->Current;
|
||||
GUI_Item_AjustLoopValue(pCurData, FLAG);
|
||||
if (!UI_SetFocus(GUI_MODE_PARAM))
|
||||
show_Param(&UI_Label[GUI_MODE_PARAM], pCurData);
|
||||
switch(mGuiData[GUI_TAB_INDEX].Current)
|
||||
{
|
||||
case 0: case 1:
|
||||
if(mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
{
|
||||
UI_ApplyToneAddress();
|
||||
AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[EXPRESS_MODE_PARAM].Current);
|
||||
}
|
||||
else
|
||||
{
|
||||
UI_ApplyToneAddress();
|
||||
AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[SONG_MODE_PARAM].Current);
|
||||
|
||||
}
|
||||
break;
|
||||
case 2: AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[ALL_MODE_PARAM].Current); break;
|
||||
}
|
||||
|
||||
switch(mGuiData[GUI_TAB_INDEX].Current)
|
||||
{
|
||||
case 0: nvm->param.Param1 = ParamGuiData[SONG_MODE_PARAM].Current; break; // 姝屾<E5A79D>????
|
||||
case 1: nvm->param.Param2 = ParamGuiData[EXPRESS_MODE_PARAM].Current;
|
||||
break; // 涓撳<E6B693>????
|
||||
case 2: nvm->param.Param3 = ParamGuiData[ALL_MODE_PARAM].Current; break; // 涓囪<E6B693>????
|
||||
}
|
||||
|
||||
UI_ApplyToneAddress();
|
||||
int ret = 0;
|
||||
if (tab == 0)
|
||||
ret = AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[ALL_MODE_PARAM].Current);
|
||||
else if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
ret = AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[EXPRESS_MODE_PARAM].Current);
|
||||
else
|
||||
ret = AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[SONG_MODE_PARAM].Current);
|
||||
if (ret != 0)
|
||||
LOG_E("tone", "load preset failed tab=%d sw=%d ret=%d addr=0x%08X",
|
||||
tab, mGuiData[GUI_AUTOBAND_SW].Current, ret, (unsigned)ADDRESS);
|
||||
else
|
||||
LOG_I("tone", "load preset ok tab=%d sw=%d name=%s addr=0x%08X",
|
||||
tab, mGuiData[GUI_AUTOBAND_SW].Current,
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "?",
|
||||
(unsigned)ADDRESS);
|
||||
|
||||
if (tab == 0)
|
||||
nvm->param.Param3 = ParamGuiData[ALL_MODE_PARAM].Current;
|
||||
else if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
nvm->param.Param2 = ParamGuiData[EXPRESS_MODE_PARAM].Current;
|
||||
else
|
||||
nvm->param.Param1 = ParamGuiData[SONG_MODE_PARAM].Current;
|
||||
}
|
||||
break;
|
||||
case GUI_TIMBRE_SELECT:
|
||||
|
|
@ -214,7 +222,14 @@ void Touch_Action(int8_t FLAG, uint8_t ID, uint8_t areaIndex,uint8_t value)
|
|||
|
||||
if(ID == GUI_AUTOBAND_SW)
|
||||
{
|
||||
/* 万能无节奏/本地 TAB,忽略该触控 */
|
||||
if (mGuiData[GUI_TAB_INDEX].Current == 0)
|
||||
return;
|
||||
if (mGuiData[ID].Current == value)
|
||||
return;
|
||||
mGuiData[ID].Current = value;
|
||||
StartFlag = 0;
|
||||
AutoBandTop1_Stop();
|
||||
UI_ReloadTonePreset();
|
||||
if (!UI_SetFocus(GUI_MODE_PARAM))
|
||||
label_ModeSelece_ui(&UI_Label[GUI_MODE_PARAM],&mGuiData[GUI_MODE_PARAM]);
|
||||
|
|
@ -293,7 +308,11 @@ void UI_SongMode_Init(void)
|
|||
mGuiData[GUI_TAB_INDEX].Current = 0;
|
||||
mGuiData[GUI_TAB_LAST_INDEX].Current = mGuiData[GUI_TAB_INDEX].Current;
|
||||
UI_ReloadTonePreset(); /* TAB=万能 后再加载 3.bin */
|
||||
Show_home_UI();
|
||||
/* 已在主页互切用差分;从 Idle/设置进入仍整页 */
|
||||
if (CurrUIProcress == UI_SongMode_Process)
|
||||
Show_home_UI_Diff();
|
||||
else
|
||||
Show_home_UI();
|
||||
pCurrentTouch_Area = Touch_Areas;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,11 +71,11 @@ void UI_DrawSysModeSelectScreen(void)
|
|||
LCD_FillByColor(0, 0, 240, 320, UI0902_BG_COLOR);
|
||||
label_top();
|
||||
|
||||
/* 调音台 */
|
||||
UI_Hub_DrawCard(UI0902_HUB_CARD_Y0, gImage_mixer, 40, 40,
|
||||
/* 调音台:0907 素材 13(34x33 推子图标) */
|
||||
UI_Hub_DrawCard(UI0902_HUB_CARD_Y0, gImage_mixer, 34, 33,
|
||||
(const uint8_t *)"\xB5\xF7\xD2\xF4\xCC\xA8");
|
||||
/* 系统设置 */
|
||||
UI_Hub_DrawCard(UI0902_HUB_CARD_Y1, gImage_SystemSetting, 40, 40,
|
||||
/* 系统设置:0907 素材 14(33x33 齿轮图标) */
|
||||
UI_Hub_DrawCard(UI0902_HUB_CARD_Y1, gImage_SystemSetting, 33, 33,
|
||||
(const uint8_t *)"\xCF\xB5\xCD\xB3\xC9\xE8\xD6\xC3");
|
||||
|
||||
Draw_Bottom_Bar(UI0902_NAV_SETTING, 0);
|
||||
|
|
|
|||
329
UI/UI_global.c
329
UI/UI_global.c
|
|
@ -109,32 +109,90 @@ void CallUI_RestoreSelect(void) {
|
|||
LOG_I("UI", "page Restore");
|
||||
}
|
||||
|
||||
/* 音师:节奏类型→1.bin,本地曲目→2.bin,万能节奏→3.bin(不再用 AutoBand legacy) */
|
||||
/* 音师:万能→3.bin;普通/专业:节奏→1.bin、本地曲目→2.bin */
|
||||
void UI_ApplyToneAddress(void)
|
||||
{
|
||||
if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
{
|
||||
ADDRESS = FLASH_ADDR_SONG_HAITIAN; /* 本地曲目 → 2.bin */
|
||||
return;
|
||||
}
|
||||
uint32_t expect = 0;
|
||||
const char *map_name = "?";
|
||||
|
||||
switch (mGuiData[GUI_TAB_INDEX].Current)
|
||||
{
|
||||
case 1: ADDRESS = FLASH_ADDR_MODE_EXPERT; break; /* 专业 → 1.bin */
|
||||
case 2: ADDRESS = FLASH_ADDR_MODE_NORMAL; break; /* 普通 → 1.bin */
|
||||
default: ADDRESS = FLASH_ADDR_MODE_UNIVERSAL; break; /* 万能 → 3.bin */
|
||||
case 0: /* 万能:和弦走向库 */
|
||||
ADDRESS = FLASH_ADDR_MODE_UNIVERSAL;
|
||||
expect = EXTFLASH_BIN3_UNIVERSAL_ADDR;
|
||||
map_name = "BIN3_UNIVERSAL";
|
||||
break;
|
||||
case 1: /* 专业 */
|
||||
if (mGuiData[GUI_AUTOBAND_SW].Current) {
|
||||
ADDRESS = FLASH_ADDR_SONG_HAITIAN;
|
||||
expect = EXTFLASH_BIN2_SONG_HAITIAN_ADDR;
|
||||
map_name = "BIN2_SONG_HAITIAN";
|
||||
} else {
|
||||
ADDRESS = FLASH_ADDR_MODE_EXPERT;
|
||||
expect = EXTFLASH_BIN1_RHYTHM_ADDR;
|
||||
map_name = "BIN1_RHYTHM";
|
||||
}
|
||||
break;
|
||||
case 2: /* 普通 */
|
||||
if (mGuiData[GUI_AUTOBAND_SW].Current) {
|
||||
ADDRESS = FLASH_ADDR_SONG_HAITIAN;
|
||||
expect = EXTFLASH_BIN2_SONG_HAITIAN_ADDR;
|
||||
map_name = "BIN2_SONG_HAITIAN";
|
||||
} else {
|
||||
ADDRESS = FLASH_ADDR_MODE_NORMAL;
|
||||
expect = EXTFLASH_BIN1_RHYTHM_ADDR;
|
||||
map_name = "BIN1_RHYTHM";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ADDRESS = FLASH_ADDR_MODE_UNIVERSAL;
|
||||
expect = EXTFLASH_BIN3_UNIVERSAL_ADDR;
|
||||
map_name = "BIN3_UNIVERSAL";
|
||||
break;
|
||||
}
|
||||
|
||||
LOG_I("tone", "ADDRESS=0x%08X map=%s expect=0x%08X tab=%u sw=%u %s",
|
||||
(unsigned)ADDRESS, map_name, (unsigned)expect,
|
||||
(unsigned)mGuiData[GUI_TAB_INDEX].Current,
|
||||
(unsigned)mGuiData[GUI_AUTOBAND_SW].Current,
|
||||
(ADDRESS == expect) ? "OK" : "MISMATCH");
|
||||
}
|
||||
|
||||
void UI_ReloadTonePreset(void)
|
||||
{
|
||||
UI_ApplyToneAddress();
|
||||
/* 换库前先停,避免播放中改 relocate 指针 */
|
||||
AutoBandTop1_Stop();
|
||||
StartFlag = 0;
|
||||
/* 万能:和弦走向 */
|
||||
if (mGuiData[GUI_TAB_INDEX].Current == 0)
|
||||
{
|
||||
int ret = AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[ALL_MODE_PARAM].Current);
|
||||
LOG_I("tone", "load universal idx=%d ret=%d name=%s addr=0x%08X map=BIN3@0x%08X",
|
||||
ParamGuiData[ALL_MODE_PARAM].Current, ret,
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "?",
|
||||
(unsigned)ADDRESS, (unsigned)EXTFLASH_BIN3_UNIVERSAL_ADDR);
|
||||
return;
|
||||
}
|
||||
/* 普通/专业:本地曲目或节奏类型 */
|
||||
if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
{
|
||||
GUI_SWITCH *local = &ParamGuiData[EXPRESS_MODE_PARAM];
|
||||
local->Max = (LOCAL_SONG_COUNT > 0) ? (uint16_t)(LOCAL_SONG_COUNT - 1) : 0;
|
||||
if (local->Current > local->Max)
|
||||
local->Current = local->Max;
|
||||
AutoBandTop1_LoadPresetItemFromFlash(local->Current);
|
||||
int ret = AutoBandTop1_LoadPresetItemFromFlash(local->Current);
|
||||
if (ret != 0)
|
||||
LOG_E("tone", "load local song idx=%d failed ret=%d addr=0x%08X map=BIN2@0x%08X",
|
||||
local->Current, ret, (unsigned)ADDRESS,
|
||||
(unsigned)EXTFLASH_BIN2_SONG_HAITIAN_ADDR);
|
||||
else
|
||||
LOG_I("tone", "local song idx=%d name=%s addr=0x%08X map=BIN2@0x%08X %s",
|
||||
local->Current,
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "?",
|
||||
(unsigned)ADDRESS,
|
||||
(unsigned)EXTFLASH_BIN2_SONG_HAITIAN_ADDR,
|
||||
(ADDRESS == EXTFLASH_BIN2_SONG_HAITIAN_ADDR) ? "OK" : "MISMATCH");
|
||||
{
|
||||
int bin_n = AutoBandTop1_GetPresetItemCount();
|
||||
if (bin_n != LOCAL_SONG_COUNT)
|
||||
|
|
@ -142,14 +200,15 @@ void UI_ReloadTonePreset(void)
|
|||
}
|
||||
return;
|
||||
}
|
||||
switch (mGuiData[GUI_TAB_INDEX].Current)
|
||||
{
|
||||
case 2:
|
||||
AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[ALL_MODE_PARAM].Current);
|
||||
break;
|
||||
default:
|
||||
AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[SONG_MODE_PARAM].Current);
|
||||
break;
|
||||
int ret = AutoBandTop1_LoadPresetItemFromFlash(ParamGuiData[SONG_MODE_PARAM].Current);
|
||||
LOG_I("tone", "load rhythm idx=%d ret=%d name=%s addr=0x%08X map=BIN1@0x%08X %s",
|
||||
ParamGuiData[SONG_MODE_PARAM].Current, ret,
|
||||
AutoBandTop1_GetPresetName() ? AutoBandTop1_GetPresetName() : "?",
|
||||
(unsigned)ADDRESS,
|
||||
(unsigned)EXTFLASH_BIN1_RHYTHM_ADDR,
|
||||
(ADDRESS == EXTFLASH_BIN1_RHYTHM_ADDR) ? "OK" : "MISMATCH");
|
||||
(void)ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -226,15 +285,22 @@ uint8_t UI_SetFocus(uint8_t widget_id)
|
|||
return 1;
|
||||
}
|
||||
|
||||
void UI_DrawStatusSepLine(void)
|
||||
{
|
||||
/* 与模式选择/各模式主页统一:需求稿分割线 y=36,1px 厚 */
|
||||
LCD_FillByColor(0, UI0902_STATUS_SEP_Y, 240,
|
||||
(uint16_t)(UI0902_STATUS_SEP_Y + UI0902_SEP_LINE_THICK),
|
||||
UI0902_STATUS_SEP_COLOR);
|
||||
}
|
||||
|
||||
void label_top()
|
||||
{
|
||||
const uint16_t btn_color = /*DARKLGRAY*/0x2988;
|
||||
LCD_FillByColor(0, 0, 240, UI_STATUS_BAR_H, UI0902_BG_COLOR);
|
||||
/* 音量条:渐变 + 圆角(见 Draw_Volume_Bar) */
|
||||
Draw_Volume_Bar(UI0902_VOL_X, UI0902_VOL_Y, level, 1, WHITE, GRAY);
|
||||
LCD_DrawLine(0, 26, 240, 26, btn_color);
|
||||
Show_BL_Icon(mGuiData[GUI_BL_SW].Current);
|
||||
Show_Battery_Icon(usb_charging_state);
|
||||
UI_DrawStatusSepLine();
|
||||
}
|
||||
|
||||
/* 小节选择刷新(占位,实际绘制在 UI_SongMode 内部) */
|
||||
|
|
@ -294,26 +360,37 @@ void UI_GotoCurrentModePage(void)
|
|||
}
|
||||
}
|
||||
|
||||
/* 蓝牙图标:设计稿居中 */
|
||||
/* 蓝牙图标:按系统开关显示;关则清空区域不画图标 */
|
||||
void Show_BL_Icon(uint8_t value)
|
||||
{
|
||||
static int8_t s_bt_pwr = -1;
|
||||
uint8_t on = value ? 1u : 0u;
|
||||
|
||||
/* Fill 终点为开区间,传 W/H 本身;高度须停在分割线之上 */
|
||||
LCD_FillByColor(UI0902_BT_X, UI0902_BT_Y,
|
||||
UI0902_BT_X + UI0902_BT_W - 1,
|
||||
UI0902_BT_Y + UI0902_BT_H - 1, UI0902_BG_COLOR);
|
||||
if (value)
|
||||
UI0902_BT_X + UI0902_BT_W,
|
||||
UI0902_BT_Y + UI0902_BT_H, UI0902_BG_COLOR);
|
||||
if (on)
|
||||
{
|
||||
LCD_WR_PIC_Trans(UI0902_BT_X, UI0902_BT_Y, UI0902_BT_W, UI0902_BT_H,
|
||||
gImage_UI0902_Bluetooth_11x17, BLACK);
|
||||
}
|
||||
BSP_BlueToothPowerEnable(value);
|
||||
if (s_bt_pwr != (int8_t)on)
|
||||
{
|
||||
s_bt_pwr = (int8_t)on;
|
||||
BSP_BlueToothPowerEnable(on);
|
||||
}
|
||||
UI_DrawStatusSepLine();
|
||||
}
|
||||
|
||||
void Draw_Status_Battery_Icon(uint8_t battery_percent)
|
||||
{
|
||||
uint8_t Info[8];
|
||||
uint16_t fill_w;
|
||||
uint16_t slot_w;
|
||||
uint16_t actual_w;
|
||||
uint16_t max_w;
|
||||
uint16_t group_w;
|
||||
uint16_t clear_x;
|
||||
uint16_t bat_x;
|
||||
uint16_t text_x;
|
||||
uint16_t text_y;
|
||||
|
|
@ -325,34 +402,38 @@ void Draw_Status_Battery_Icon(uint8_t battery_percent)
|
|||
|
||||
sprintf((char *)Info, "%d%%", battery_percent);
|
||||
actual_w = (uint16_t)(strlen((char *)Info) * adv);
|
||||
/* 固定按「100%」占位,右对齐,切换位数时图标不跳、% 不被切 */
|
||||
slot_w = (uint16_t)(4u * adv);
|
||||
|
||||
bat_x = (uint16_t)(240 - UI0902_BATTERY_RIGHT_MARGIN - slot_w
|
||||
- UI0902_BATTERY_TEXT_GAP - UI0902_BATTERY_W);
|
||||
text_x = (uint16_t)(bat_x + UI0902_BATTERY_W + UI0902_BATTERY_TEXT_GAP
|
||||
+ (slot_w - actual_w));
|
||||
/* 图标与百分比紧贴;整组右对齐。「100%」变位数时图标左移,不拉开字距 */
|
||||
max_w = (uint16_t)(4u * adv);
|
||||
group_w = (uint16_t)(UI0902_BATTERY_W + UI0902_BATTERY_TEXT_GAP + actual_w);
|
||||
bat_x = (uint16_t)(240 - UI0902_BATTERY_RIGHT_MARGIN - group_w);
|
||||
text_x = (uint16_t)(bat_x + UI0902_BATTERY_W + UI0902_BATTERY_TEXT_GAP);
|
||||
text_y = (uint16_t)(UI0902_BATTERY_Y
|
||||
+ ((int16_t)UI0902_BATTERY_H - (int16_t)UI0902_BATTERY_TEXT_SIZE) / 2);
|
||||
if ((int16_t)text_y < 0)
|
||||
text_y = 0;
|
||||
|
||||
LCD_FillByColor(bat_x > 2 ? (uint16_t)(bat_x - 2) : 0, 0, 240, UI_STATUS_BAR_H,
|
||||
UI0902_BG_COLOR);
|
||||
clear_x = (uint16_t)(240 - UI0902_BATTERY_RIGHT_MARGIN
|
||||
- UI0902_BATTERY_W - UI0902_BATTERY_TEXT_GAP - max_w);
|
||||
if (clear_x > 2)
|
||||
clear_x = (uint16_t)(clear_x - 2);
|
||||
else
|
||||
clear_x = 0;
|
||||
LCD_FillByColor(clear_x, 0, 240, UI0902_STATUS_SEP_Y, UI0902_BG_COLOR);
|
||||
|
||||
/* 实心电量条:内腔约 x+3..x+23(宽21),勿盖住右侧壳壁 */
|
||||
fill_w = (uint16_t)((21UL * battery_percent) / 100);
|
||||
/* 内腔约 y+2..y+9 / x+3..x+23;上下左右各留 1px,电量不贴外壳 */
|
||||
fill_w = (uint16_t)((19UL * battery_percent) / 100);
|
||||
if (fill_w > 0) {
|
||||
fill_x1 = (uint16_t)(bat_x + 3);
|
||||
fill_y1 = (uint16_t)(UI0902_BATTERY_Y + 2);
|
||||
fill_x2 = (uint16_t)(fill_x1 + fill_w - 1);
|
||||
fill_y2 = (uint16_t)(fill_y1 + 7);
|
||||
fill_x1 = (uint16_t)(bat_x + 4);
|
||||
fill_y1 = (uint16_t)(UI0902_BATTERY_Y + 3);
|
||||
fill_x2 = (uint16_t)(fill_x1 + fill_w);
|
||||
fill_y2 = (uint16_t)(fill_y1 + 6);
|
||||
LCD_FillByColor(fill_x1, fill_y1, fill_x2, fill_y2, WHITE);
|
||||
}
|
||||
LCD_WR_PIC_Trans(bat_x, UI0902_BATTERY_Y, UI0902_BATTERY_W, UI0902_BATTERY_H,
|
||||
gImage_UI0902_BatteryOutline_29x12, BLACK);
|
||||
LCD_ShowString(text_x, text_y, Info, WHITE, UI0902_BG_COLOR,
|
||||
UI0902_BATTERY_TEXT_SIZE, 0);
|
||||
UI_DrawStatusSepLine();
|
||||
}
|
||||
|
||||
void Show_Battery_Icon(uint8_t flag)
|
||||
|
|
@ -458,7 +539,7 @@ void Refresh_Transpose(const LEBEL_UI *UI, GUI_SWITCH * Group)
|
|||
{
|
||||
uint16_t c_top, c_bot;
|
||||
uint16_t cx = (UI->Id == GUI_SPEED) ? UI0902_CARD_TEXT_CX_R : UI0902_CARD_TEXT_CX_L;
|
||||
uint16_t value_y, sub_y, x1, x2, content_w, clear_w, clear_h;
|
||||
uint16_t value_y, value_y0, sub_y, x1, x2, content_w, clear_w, clear_h;
|
||||
char Textstr1[20] = {0,};
|
||||
const uint8_t *sub_txt = (UI->Id == GUI_SPEED) ? (const uint8_t *)"BPM" : (const uint8_t *)"KEY";
|
||||
UI_GetFocusGrad(UI->Id, &c_top, &c_bot);
|
||||
|
|
@ -470,23 +551,24 @@ void Refresh_Transpose(const LEBEL_UI *UI, GUI_SWITCH * Group)
|
|||
clear_w = content_w;
|
||||
if (clear_w < UI0902_CARD_VALUE_W)
|
||||
clear_w = UI0902_CARD_VALUE_W;
|
||||
value_y = UI_CardTextDrawY(UI0902_CARD_VALUE_Y, UI0902_CARD_VALUE_H,
|
||||
UI0902_CARD_VALUE_LH, UI0902_CARD_VALUE_SIZE);
|
||||
value_y0 = UI_CardTextDrawY(UI0902_CARD_VALUE_Y, UI0902_CARD_VALUE_H,
|
||||
UI0902_CARD_VALUE_LH, UI0902_CARD_VALUE_SIZE);
|
||||
value_y = (uint16_t)((int16_t)value_y0 + UI0902_CARD_VALUE_OY);
|
||||
/* 清区高度保证主值完整;不得侵入 KEY/BPM 行 */
|
||||
clear_h = (uint16_t)(UI0902_CARD_VALUE_H + 1);
|
||||
if (clear_h < (uint16_t)(UI0902_CARD_VALUE_SIZE + 1))
|
||||
clear_h = (uint16_t)(UI0902_CARD_VALUE_SIZE + 1);
|
||||
if (value_y + clear_h > UI0902_CARD_SUB_Y)
|
||||
clear_h = (uint16_t)(UI0902_CARD_SUB_Y - value_y);
|
||||
x1 = UI_CardTextBoxX1(cx, clear_w, clear_w);
|
||||
x2 = UI_CardTextBoxX2(cx, clear_w, clear_w);
|
||||
x1 = (uint16_t)(UI_CardTextBoxX1(cx, clear_w, clear_w) + UI0902_CARD_VALUE_OX);
|
||||
x2 = (uint16_t)(UI_CardTextBoxX2(cx, clear_w, clear_w) + UI0902_CARD_VALUE_OX);
|
||||
LCD_FillRoundRectGradient(
|
||||
x1, value_y,
|
||||
(uint16_t)(x2 - x1 + 1),
|
||||
clear_h,
|
||||
0, c_top, c_bot);
|
||||
x1 = UI_CardTextBoxX1(cx, UI0902_CARD_VALUE_W, content_w);
|
||||
x2 = UI_CardTextBoxX2(cx, UI0902_CARD_VALUE_W, content_w);
|
||||
x1 = (uint16_t)(UI_CardTextBoxX1(cx, UI0902_CARD_VALUE_W, content_w) + UI0902_CARD_VALUE_OX);
|
||||
x2 = (uint16_t)(UI_CardTextBoxX2(cx, UI0902_CARD_VALUE_W, content_w) + UI0902_CARD_VALUE_OX);
|
||||
LCD_ShowString_AutoAlign_Gradient(
|
||||
x1, x2, value_y,
|
||||
(const uint8_t*)Textstr1,
|
||||
|
|
@ -535,9 +617,14 @@ void Refresh_Mode1Select(uint8_t last_data, LEBEL_UI *UI, GUI_SWITCH *Group)
|
|||
// 重点:根<EFBC9A>?当前选中的模式(2/3/4)找到<E689BE>?<3F>应数据结构<E7BB93>?
|
||||
switch(mGuiData[GUI_TAB_INDEX].Current)
|
||||
{
|
||||
case 0: pCurData = &ParamGuiData[SONG_MODE_PARAM]; break; // 歌曲
|
||||
case 1: pCurData = &ParamGuiData[EXPRESS_MODE_PARAM]; break; // 专家
|
||||
case 2: pCurData = &ParamGuiData[ALL_MODE_PARAM]; break; // 万能
|
||||
case 0: pCurData = &ParamGuiData[ALL_MODE_PARAM]; break; /* 万能:和弦走向 */
|
||||
case 1: /* 专业 */
|
||||
case 2: /* 普通 */
|
||||
if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
pCurData = &ParamGuiData[EXPRESS_MODE_PARAM];
|
||||
else
|
||||
pCurData = &ParamGuiData[SONG_MODE_PARAM];
|
||||
break;
|
||||
//default: pCurData = &mGuiData[GUI_MODE1_SELECT];
|
||||
}
|
||||
// 清除旧数字(清除的是旧值,不是当前值)
|
||||
|
|
@ -589,7 +676,7 @@ void label_Tranzpose_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
|
|||
|
||||
GET_Num_Str(mGuiData[UI->Id].Current, 0, (char*)Textstr, UI->Id);
|
||||
content_w = (uint16_t)(strlen((char*)Textstr) * UI0902_ASCII_W(UI0902_CARD_VALUE_SIZE));
|
||||
/* 主值 */
|
||||
/* 主值基准位:三角仍按此中线;字母单独右移/上移 */
|
||||
value_y = UI_CardTextDrawY(UI0902_CARD_VALUE_Y, UI0902_CARD_VALUE_H,
|
||||
UI0902_CARD_VALUE_LH, UI0902_CARD_VALUE_SIZE);
|
||||
x1 = UI_CardTextBoxX1(cx, UI0902_CARD_VALUE_W, content_w);
|
||||
|
|
@ -599,7 +686,10 @@ void label_Tranzpose_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
|
|||
UI_DrawTriLeft(UI->x + 5, chev_cy);
|
||||
UI_DrawTriRight((uint16_t)(UI->x + UI->w - 5 - UI0902_TRI_R_W), chev_cy);
|
||||
LCD_ShowString_AutoAlign_Gradient(
|
||||
x1, x2, value_y, Textstr,
|
||||
(uint16_t)(x1 + UI0902_CARD_VALUE_OX),
|
||||
(uint16_t)(x2 + UI0902_CARD_VALUE_OX),
|
||||
(uint16_t)((int16_t)value_y + UI0902_CARD_VALUE_OY),
|
||||
Textstr,
|
||||
LCD_ALIGN_CENTER, UI->Text_fc, c_top, c_bot, UI0902_CARD_VALUE_SIZE);
|
||||
|
||||
/* KEY:独立行;先清底再画,保证不被主值残影叠住 */
|
||||
|
|
@ -657,7 +747,10 @@ void label_Speed_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
|
|||
gImage_UI0902_BtnPlus_23x22, BLACK);
|
||||
|
||||
LCD_ShowString_AutoAlign_Gradient(
|
||||
x1, x2, value_y, Textstr,
|
||||
(uint16_t)(x1 + UI0902_CARD_VALUE_OX),
|
||||
(uint16_t)(x2 + UI0902_CARD_VALUE_OX),
|
||||
(uint16_t)((int16_t)value_y + UI0902_CARD_VALUE_OY),
|
||||
Textstr,
|
||||
LCD_ALIGN_CENTER, UI->Text_fc, c_top, c_bot, UI0902_CARD_VALUE_SIZE);
|
||||
|
||||
sub_y = UI_CardTextDrawY(UI0902_CARD_SUB_Y, UI0902_CARD_SUB_H,
|
||||
|
|
@ -673,54 +766,45 @@ void label_Speed_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
|
|||
x1, x2, sub_y, (const uint8_t*)"BPM",
|
||||
LCD_ALIGN_CENTER, UI->Text_fc, c_top, c_bot, UI0902_CARD_SUB_SIZE);
|
||||
}
|
||||
// <EFBFBD><EFBFBD><EFBFBD>棺ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>autobandֵ<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
||||
// 万能:和弦走向;普通/专业:节奏类型 | 本地曲目
|
||||
void label_ModeSelece_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
|
||||
{
|
||||
char *str;
|
||||
GUI_SWITCH *paramCurData = NULL;
|
||||
uint16_t c_top, c_bot;
|
||||
uint8_t tab = (uint8_t)mGuiData[GUI_TAB_INDEX].Current;
|
||||
UI_GetFocusGrad(GUI_MODE_PARAM, &c_top, &c_bot);
|
||||
switch(mGuiData[GUI_TAB_INDEX].Current)
|
||||
{
|
||||
case 0: paramCurData = &ParamGuiData[SONG_MODE_PARAM]; break;
|
||||
case 1: paramCurData = &ParamGuiData[EXPRESS_MODE_PARAM]; break;
|
||||
case 2: paramCurData = &ParamGuiData[ALL_MODE_PARAM]; break;
|
||||
}
|
||||
(void)Group;
|
||||
|
||||
LCD_FillRoundRectGradient(UI->x, UI->y+UI0902_TAB_H+4, UI->w, UI->h-UI0902_TAB_H-4, UI0902_RADIUS_CARD, c_top, c_bot);
|
||||
switch(mGuiData[GUI_TAB_INDEX].Current) {
|
||||
case 0:case 1:
|
||||
Draw_Tab_Mode_Menu(UI, &mGuiData[GUI_AUTOBAND_SW]);
|
||||
break;
|
||||
case 2:
|
||||
/* 普通模式无 TAB:标题画在曲目行上方(与音色行一致),对齐 0902-04 */
|
||||
str = (char*)"\xBA\xCD\xCF\xD2\xD7\xDF\xCF\xF2";
|
||||
{
|
||||
uint16_t row_y = (uint16_t)(UI->y + UI0902_TAB_H + 4);
|
||||
uint16_t lab_y = (row_y > 15) ? (uint16_t)(row_y - 15) : 0;
|
||||
LCD_FillByColor(UI->x, lab_y, UI->x + UI->w, (uint16_t)(row_y - 1), UI0902_BG_COLOR);
|
||||
LCD_ShowChinese_AutoAlign(
|
||||
|
||||
if (tab == 0)
|
||||
{
|
||||
/* 万能:无 TAB,标题「和弦走向」 */
|
||||
str = (char*)"\xBA\xCD\xCF\xD2\xD7\xDF\xCF\xF2";
|
||||
{
|
||||
uint16_t row_y = (uint16_t)(UI->y + UI0902_TAB_H + 4);
|
||||
uint16_t lab_y = (row_y > 15) ? (uint16_t)(row_y - 15) : 0;
|
||||
LCD_FillByColor(UI->x, lab_y, UI->x + UI->w, (uint16_t)(row_y - 1), UI0902_BG_COLOR);
|
||||
LCD_ShowChinese_AutoAlign(
|
||||
UI->x, UI->x+UI->w, lab_y,
|
||||
(uint8_t *)str, UI->Tab_Align, UI->Tab_fc, UI0902_BG_COLOR, 0, UI->Tab_size
|
||||
);
|
||||
}
|
||||
break;
|
||||
);
|
||||
}
|
||||
paramCurData = &ParamGuiData[ALL_MODE_PARAM];
|
||||
}
|
||||
switch(mGuiData[GUI_TAB_INDEX].Current)
|
||||
else
|
||||
{
|
||||
case 0: case 1:
|
||||
if(mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
{
|
||||
paramCurData = &ParamGuiData[EXPRESS_MODE_PARAM];
|
||||
}else
|
||||
{
|
||||
paramCurData = &ParamGuiData[SONG_MODE_PARAM];
|
||||
}
|
||||
break;
|
||||
case 2: paramCurData = &ParamGuiData[ALL_MODE_PARAM]; break;
|
||||
/* 普通/专业:节奏类型 | 本地曲目 */
|
||||
Draw_Tab_Mode_Menu(UI, &mGuiData[GUI_AUTOBAND_SW]);
|
||||
if (mGuiData[GUI_AUTOBAND_SW].Current)
|
||||
paramCurData = &ParamGuiData[EXPRESS_MODE_PARAM];
|
||||
else
|
||||
paramCurData = &ParamGuiData[SONG_MODE_PARAM];
|
||||
}
|
||||
|
||||
show_Param(&UI_Label[GUI_MODE_PARAM], paramCurData);
|
||||
{
|
||||
/* 箭头与曲目行垂直中心对齐 */
|
||||
uint16_t row_cy = UI->y + UI0902_TAB_H + 4 + (UI->h - UI0902_TAB_H - 4) / 2;
|
||||
UI_DrawTriLeft(UI->x + 5, row_cy);
|
||||
UI_DrawTriRight((uint16_t)(UI->x + UI->w - 5 - UI0902_TRI_R_W), row_cy);
|
||||
|
|
@ -831,10 +915,13 @@ void Draw_Bottom_Bar(uint8_t sel, uint8_t first_back)
|
|||
uint8_t i;
|
||||
|
||||
(void)first_back;
|
||||
LCD_FillByColor(0, 263, 240, 320, UI0902_BG_COLOR);
|
||||
/* mode.png:段落钮与底栏之间横线分隔 */
|
||||
LCD_DrawLine(0, UI0902_SEP_LINE_Y, 239, UI0902_SEP_LINE_Y, UI0902_SEP_LINE_COLOR);
|
||||
LCD_DrawLine(0, UI0902_SEP_LINE_Y + 1, 239, UI0902_SEP_LINE_Y + 1, UI0902_SEP_LINE_COLOR);
|
||||
/* 从段落钮底边之下清屏,勿切掉按钮底圆角(钮 y=231..264) */
|
||||
LCD_FillByColor(0, (uint16_t)(UI0902_SECTION_Y + UI0902_SECTION_BTN_H),
|
||||
240, 320, UI0902_BG_COLOR);
|
||||
/* mode.png:段落钮与底栏之间横线分隔(与顶栏同色同厚) */
|
||||
LCD_FillByColor(0, UI0902_SEP_LINE_Y, 240,
|
||||
(uint16_t)(UI0902_SEP_LINE_Y + UI0902_SEP_LINE_THICK),
|
||||
UI0902_SEP_LINE_COLOR);
|
||||
|
||||
if (sel == UI0902_NAV_UNIVERSAL) { icons[0] = gImage_Nav_Universal_Sel; ws[0] = 36; hs[0] = 28; }
|
||||
else { icons[0] = gImage_Nav_Universal_Not; ws[0] = 36; hs[0] = 28; }
|
||||
|
|
@ -1070,8 +1157,10 @@ void RestoreSetting(void)
|
|||
|
||||
mGuiData[GUI_PLAY_SECTION].Current = 0;
|
||||
|
||||
/* 出厂默认蓝牙开(已由 static_value 写入 NVM/GUI) */
|
||||
mGuiData_SystemSETTING[GUI_BLUETOOTH_SW].Current = 1;
|
||||
mGuiData[GUI_BL_SW].Current = 1;
|
||||
nvm->param.BluetoothSW = 1;
|
||||
BSP_BlueToothPowerEnable(1);
|
||||
|
||||
ApplyAutoCloseIndex(mGuiData_SystemSETTING[GUI_AUTOCLOSE].Current);
|
||||
|
|
@ -1097,6 +1186,10 @@ void Draw_System_Item_List(const LEBEL_UI *UI, GUI_SWITCH *Group)
|
|||
uint16_t val_x2 = UI->x + row_w - 18;
|
||||
uint16_t chev_cy = UI->y + UI->h / 2;
|
||||
|
||||
/* 先清整块外接矩形为页面底色,避免焦点蓝圆角残留四角描边 */
|
||||
LCD_FillByColor(UI->x, UI->y, (uint16_t)(UI->x + row_w), (uint16_t)(UI->y + UI->h),
|
||||
UI0902_BG_COLOR);
|
||||
|
||||
if (UI_IsFocused(Group->Id))
|
||||
{
|
||||
c_top = START_COLOR;
|
||||
|
|
@ -1119,47 +1212,65 @@ void Draw_System_Item_List(const LEBEL_UI *UI, GUI_SWITCH *Group)
|
|||
/* 0902-07:芯片图标(系统设置图标-10) */
|
||||
LCD_WR_PIC_FROM_FLASH_Trans(UI->x+12, UI->y + (UI->h - 19) / 2, 20, 19, UI0902_ICON_SYS_LANG_ADDR);
|
||||
sprintf (Info, "%d.%d.%d", Version[0], Version[1],Version[2]);
|
||||
/* 0902-07:右侧凹槽版本框 */
|
||||
LCD_FillRoundRect(UI->x + 148, UI->y + (UI->h - 22) / 2, 54, 22, 4, UI0902_BG_COLOR);
|
||||
LCD_ShowString_AutoAlign(UI->x + 148, UI->x + 202,
|
||||
UI->y + (UI->h - value_sz) / 2,
|
||||
(const uint8_t*)Info, LCD_ALIGN_CENTER, WHITE, UI0902_BG_COLOR, 0, value_sz);
|
||||
/* 版本框右缘与蓝牙/自动关机右三角右缘(val_x2)对齐 */
|
||||
{
|
||||
const uint16_t ver_box_w = 54;
|
||||
const uint16_t ver_x1 = (uint16_t)(val_x2 - ver_box_w);
|
||||
LCD_FillRoundRect(ver_x1, UI->y + (UI->h - 22) / 2, ver_box_w, 22, 4, UI0902_BG_COLOR);
|
||||
LCD_ShowString_AutoAlign(ver_x1, val_x2,
|
||||
UI->y + (UI->h - value_sz) / 2,
|
||||
(const uint8_t*)Info, LCD_ALIGN_CENTER, WHITE, UI0902_BG_COLOR, 0, value_sz);
|
||||
}
|
||||
break;
|
||||
case GUI_BLUETOOTH_SW:
|
||||
LCD_WR_PIC_FROM_FLASH_Trans(UI->x+7, UI->y + (UI->h - 33) / 2, 34, 33, UI0902_ICON_SET_BLUETOOTH_ADDR);
|
||||
LCD_DrawChevron_Left(val_x1 + 8, chev_cy, 5, 2, WHITE);
|
||||
/* 素材:系统设置图标-11(白蓝牙符);Flash 槽名 RESTORE,尺寸 13x21 */
|
||||
LCD_WR_PIC_FROM_FLASH_Trans(UI->x + 12,
|
||||
(uint16_t)(UI->y + (UI->h - UI0902_ICON_SYS_RESTORE_H) / 2),
|
||||
UI0902_ICON_SYS_RESTORE_W, UI0902_ICON_SYS_RESTORE_H,
|
||||
UI0902_ICON_SYS_RESTORE_ADDR);
|
||||
UI_DrawTriLeft(val_x1, chev_cy);
|
||||
if(Group->Current)
|
||||
LCD_ShowChinese_AutoAlign_Gradient(val_x1 + 14, val_x2 - 14, text_y,(const uint8_t*)"\xCA\xC7",LCD_ALIGN_CENTER, WHITE,c_top, c_bot,value_sz);
|
||||
LCD_ShowChinese_AutoAlign_Gradient(val_x1 + UI0902_TRI_L_W, val_x2 - UI0902_TRI_R_W, text_y,(const uint8_t*)"\xCA\xC7",LCD_ALIGN_CENTER, WHITE,c_top, c_bot,value_sz);
|
||||
else
|
||||
LCD_ShowChinese_AutoAlign_Gradient(val_x1 + 14, val_x2 - 14, text_y,(const uint8_t*)"\xB9\xD8",LCD_ALIGN_CENTER, WHITE,c_top, c_bot,value_sz);
|
||||
LCD_DrawChevron_Right(val_x2 - 8, chev_cy, 5, 2, WHITE);
|
||||
LCD_ShowChinese_AutoAlign_Gradient(val_x1 + UI0902_TRI_L_W, val_x2 - UI0902_TRI_R_W, text_y,(const uint8_t*)"\xB9\xD8",LCD_ALIGN_CENTER, WHITE,c_top, c_bot,value_sz);
|
||||
UI_DrawTriRight((uint16_t)(val_x2 - UI0902_TRI_R_W), chev_cy);
|
||||
BSP_BlueToothPowerEnable (Group->Current);
|
||||
mGuiData[GUI_BL_SW].Current = Group->Current;
|
||||
nvm->param.BluetoothSW = (uint8_t)(Group->Current ? 1 : 0);
|
||||
drv_nvm_save_to_flash();
|
||||
break;
|
||||
case GUI_AUTOCLOSE:
|
||||
/* 0902-07:电源图标;档位按手册 15/30/45/60/不自动 */
|
||||
/* 素材:系统设置图标-12(电源符 / ABOUT 槽 18x21) */
|
||||
LCD_WR_PIC_FROM_FLASH_Trans(UI->x+12, UI->y + (UI->h - 21) / 2, 18, 21, UI0902_ICON_SYS_ABOUT_ADDR);
|
||||
ApplyAutoCloseIndex(Group->Current);
|
||||
LCD_DrawChevron_Left(val_x1 + 4, chev_cy, 5, 2, WHITE);
|
||||
UI_DrawTriLeft(val_x1, chev_cy);
|
||||
if(Group->Current != 4)
|
||||
{
|
||||
sprintf (Info, "%d",AutoCloseTime);
|
||||
LCD_ShowString_AutoAlign_Gradient(val_x1 + 12, val_x2 - 36, text_y, (const uint8_t*)Info, LCD_ALIGN_RIGHT, WHITE, c_top, c_bot, value_sz);
|
||||
LCD_ShowChinese_AutoAlign_Gradient(val_x2 - 34, val_x2 - 12, text_y, (const uint8_t*)"\xB7\xD6\xD6\xD3", LCD_ALIGN_LEFT, WHITE, c_top, c_bot, value_sz);
|
||||
/* 与蓝牙「关」相同:数值在左右三角之间水平居中;数字相对标签下移 2px */
|
||||
LCD_ShowString_AutoAlign_Gradient(val_x1 + UI0902_TRI_L_W, val_x2 - UI0902_TRI_R_W,
|
||||
(uint16_t)(text_y + 2),
|
||||
(const uint8_t *)Info, LCD_ALIGN_CENTER,
|
||||
WHITE, c_top, c_bot, value_sz);
|
||||
}else
|
||||
{
|
||||
/* 手册「不自动」;字库无「不」,界面用稿面「关机」 */
|
||||
LCD_ShowChinese_AutoAlign_Gradient(val_x1 + 12, val_x2 - 12, text_y,
|
||||
LCD_ShowChinese_AutoAlign_Gradient(val_x1 + UI0902_TRI_L_W, val_x2 - UI0902_TRI_R_W, text_y,
|
||||
(const uint8_t*)"\xB9\xD8\xBB\xFA",
|
||||
LCD_ALIGN_CENTER, WHITE, c_top, c_bot, value_sz);
|
||||
}
|
||||
LCD_DrawChevron_Right(val_x2 - 8, chev_cy, 5, 2, WHITE);
|
||||
UI_DrawTriRight((uint16_t)(val_x2 - UI0902_TRI_R_W), chev_cy);
|
||||
nvm->param.AutoCloseTime = Group->Current;
|
||||
drv_nvm_save_to_flash();
|
||||
break;
|
||||
case GUI_RESTORE:
|
||||
LCD_WR_PIC_FROM_FLASH_Trans(UI->x+13, UI->y + (UI->h - 21) / 2, 13, 21, UI0902_ICON_SYS_RESTORE_ADDR);
|
||||
LCD_DrawChevron_Right((uint16_t)(UI->x + row_w - 18), chev_cy, 6, 2, WHITE);
|
||||
/* 逆时针箭头:当前在 VERSION 槽(19x18);RESTORE 槽曾误为蓝牙符 */
|
||||
LCD_WR_PIC_FROM_FLASH_Trans(UI->x + 12,
|
||||
(uint16_t)(UI->y + (UI->h - UI0902_ICON_SYS_VERSION_H) / 2),
|
||||
UI0902_ICON_SYS_VERSION_W, UI0902_ICON_SYS_VERSION_H,
|
||||
UI0902_ICON_SYS_VERSION_ADDR);
|
||||
/* 右三角与蓝牙/自动关机同一右缘(val_x2) */
|
||||
UI_DrawTriRight((uint16_t)(val_x2 - UI0902_TRI_R_W), chev_cy);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,12 @@ void CallUI_RestoreSelect(void);
|
|||
|
||||
|
||||
#define UI_STATUS_BAR_H 26
|
||||
/* 0902-01/02 需求稿:分割线 y=36,居中于顶栏图标底与移调/速度控件顶之间 */
|
||||
#define UI0902_STATUS_SEP_Y 36
|
||||
/* 顶/底共用:偏亮灰蓝,2px 厚,保证暗底上可辨 */
|
||||
#define UI0902_SEP_LINE_COLOR 0x94D5 /* RGB(144,152,168) */
|
||||
#define UI0902_SEP_LINE_THICK 1
|
||||
#define UI0902_STATUS_SEP_COLOR UI0902_SEP_LINE_COLOR
|
||||
/* 0902 设计稿配色与底栏导航 */
|
||||
#define UI0902_BG_COLOR 0x0042 /* #000813 页面背景 */
|
||||
#define UI0902_ROW_BG 0x2147 /* #242B3A 列表行背景 */
|
||||
|
|
@ -77,6 +83,9 @@ void CallUI_RestoreSelect(void);
|
|||
#define UI0902_CARD_VALUE_H 17
|
||||
/* mode.png:主值≈y71–85,KEY/BPM≈y89;加大与「移调/速度」间距、收紧与 KEY/BPM */
|
||||
#define UI0902_CARD_VALUE_Y 73
|
||||
/* 仅主值字母/数字:相对基准右移、上移(三角/±/KEY/BPM 不动) */
|
||||
#define UI0902_CARD_VALUE_OX 3
|
||||
#define UI0902_CARD_VALUE_OY (-3)
|
||||
|
||||
#define UI0902_CARD_SUB_SIZE UI0902_FONT_SUB /* 9 */
|
||||
#define UI0902_CARD_SUB_LH 9
|
||||
|
|
@ -84,9 +93,8 @@ void CallUI_RestoreSelect(void);
|
|||
#define UI0902_CARD_SUB_H 9
|
||||
#define UI0902_CARD_SUB_Y 89
|
||||
|
||||
/* 段落钮与底栏分隔线(mode.png ≈ y274) */
|
||||
/* 段落钮与底栏分隔线(mode.png ≈ y274);颜色与顶栏共用 UI0902_SEP_LINE_COLOR */
|
||||
#define UI0902_SEP_LINE_Y 274
|
||||
#define UI0902_SEP_LINE_COLOR 0x0883 /* #09111C */
|
||||
|
||||
/* 兼容旧相对偏移宏(= 绝对Y - CARD_Y) */
|
||||
#define UI0902_CARD_LABEL_DY (UI0902_CARD_LABEL_Y - UI0902_CARD_Y)
|
||||
|
|
@ -122,9 +130,10 @@ void CallUI_RestoreSelect(void);
|
|||
#define UI0902_BT_Y 5
|
||||
#define UI0902_BATTERY_W 29
|
||||
#define UI0902_BATTERY_H 12
|
||||
#define UI0902_BATTERY_Y 13 /* 顶≈y13,底 y24,与分隔线 y26 留空,避免底边被切 */
|
||||
/* 与音量/蓝牙大致居中后再下移 2px:12px 高 → 顶 y9 */
|
||||
#define UI0902_BATTERY_Y 9
|
||||
#define UI0902_BATTERY_RIGHT_MARGIN 6
|
||||
#define UI0902_BATTERY_TEXT_GAP 4
|
||||
#define UI0902_BATTERY_TEXT_GAP 2
|
||||
#define UI0902_BATTERY_TEXT_SIZE 9 /* mode.png 百分比字号 ≈9,完整显示 % */
|
||||
/* 0904 / 0902-11 设置入口:两大卡片 + 底栏「设置」高亮 */
|
||||
#define UI0902_HUB_CARD_X 10
|
||||
|
|
@ -191,6 +200,7 @@ void UI_GetFocusGrad(uint8_t widget_id, uint16_t *c_top, uint16_t *c_bot);
|
|||
|
||||
void Draw_Status_Battery_Icon(uint8_t battery_percent);
|
||||
void Show_Battery_Icon(uint8_t flag);
|
||||
void UI_DrawStatusSepLine(void);
|
||||
|
||||
void Show_BL_Icon(uint8_t value);
|
||||
void Draw_Tab_Section_Menu(const LEBEL_UI *UI, TAB_SECTION_INDEX select_tab);
|
||||
|
|
@ -201,6 +211,7 @@ void GET_Num_Str(int16_t NUM, uint8_t ValidLen, char* Str, uint8_t hasSign);
|
|||
void show_Param(const LEBEL_UI *UI, GUI_SWITCH *Group);
|
||||
|
||||
extern void Show_home_UI(void);
|
||||
extern void Show_home_UI_Diff(void);
|
||||
extern void Touch_Action(int8_t FLAG, uint8_t ID, uint8_t areaIndex, uint8_t value);
|
||||
//extern void Refresh_Transpose(uint8_t last_data, const LEBEL_UI *UI, GUI_SWITCH *Group);
|
||||
extern void Refresh_Transpose(const LEBEL_UI *UI, GUI_SWITCH * Group);
|
||||
|
|
|
|||
|
|
@ -168,7 +168,23 @@ void LCD_WR_PIC(uint16_t x, uint16_t y, uint16_t length, uint16_t width, const u
|
|||
}
|
||||
}
|
||||
|
||||
/* 跳过近黑色像素(图标导出底色常为 0x0000/0x0001/0x0022,非纯 BLACK) */
|
||||
/* 跳过近黑色像素(图标导出底色常为 0x0000/0x0001/0x0022,非纯 BLACK)
|
||||
* 同时跳过列表行底 #242B3A(0x2147):系统设置等图标把未选中行色烘焙进 PNG,
|
||||
* 焦点蓝底上若不抠掉会呈黑块。 */
|
||||
static uint8_t LCD_PicColorIsTransparent(uint16_t c)
|
||||
{
|
||||
uint8_t r5 = (uint8_t)((c >> 11) & 0x1F);
|
||||
uint8_t g6 = (uint8_t)((c >> 5) & 0x3F);
|
||||
uint8_t b5 = (uint8_t)(c & 0x1F);
|
||||
|
||||
if (r5 <= 1 && g6 <= 2 && b5 <= 2)
|
||||
return 1;
|
||||
/* UI0902_ROW_BG 0x2147 ≈ R5=4 G6=10 B5=7;含打包抗锯齿邻色 */
|
||||
if (r5 >= 2 && r5 <= 6 && g6 >= 7 && g6 <= 14 && b5 >= 4 && b5 <= 11)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void LCD_WR_PIC_Trans(uint16_t x, uint16_t y, uint16_t length, uint16_t width,
|
||||
const uint8_t data[], uint16_t key_color)
|
||||
{
|
||||
|
|
@ -184,12 +200,8 @@ void LCD_WR_PIC_Trans(uint16_t x, uint16_t y, uint16_t length, uint16_t width,
|
|||
uint8_t hi = data[i * 2];
|
||||
uint8_t lo = data[i * 2 + 1];
|
||||
uint16_t c = (uint16_t)((hi << 8) | lo);
|
||||
uint8_t r5 = (uint8_t)((c >> 11) & 0x1F);
|
||||
uint8_t g6 = (uint8_t)((c >> 5) & 0x3F);
|
||||
uint8_t b5 = (uint8_t)(c & 0x1F);
|
||||
|
||||
/* 近黑视为透明,避免图标黑底方块 */
|
||||
if (r5 <= 1 && g6 <= 2 && b5 <= 2)
|
||||
if (LCD_PicColorIsTransparent(c))
|
||||
continue;
|
||||
|
||||
LCD_DrawPoint((uint16_t)(x + (i % length)),
|
||||
|
|
@ -254,7 +266,7 @@ void LCD_WR_PIC_ClipX(uint16_t x, uint16_t y, uint16_t full_w, uint16_t h,
|
|||
}
|
||||
}
|
||||
|
||||
/* 从 W25Q128 按行读取并透明显示(跳过近黑像素),复用 pic_batch_buf,无大块静态 RAM */
|
||||
/* 从 W25Q128 按行读取并透明显示(跳过近黑 / 行底色像素),复用 pic_batch_buf,无大块静态 RAM */
|
||||
void LCD_WR_PIC_FROM_FLASH_Trans(uint16_t x, uint16_t y, uint16_t length, uint16_t width, uint32_t flash_addr)
|
||||
{
|
||||
uint16_t row, col;
|
||||
|
|
@ -267,10 +279,7 @@ void LCD_WR_PIC_FROM_FLASH_Trans(uint16_t x, uint16_t y, uint16_t length, uint16
|
|||
for (col = 0; col < length; col++)
|
||||
{
|
||||
uint16_t c = (uint16_t)((pic_batch_buf[col * 2U] << 8) | pic_batch_buf[col * 2U + 1U]);
|
||||
uint8_t r5 = (uint8_t)((c >> 11) & 0x1F);
|
||||
uint8_t g6 = (uint8_t)((c >> 5) & 0x3F);
|
||||
uint8_t b5 = (uint8_t)(c & 0x1F);
|
||||
if (r5 <= 1 && g6 <= 2 && b5 <= 2)
|
||||
if (LCD_PicColorIsTransparent(c))
|
||||
continue;
|
||||
LCD_DrawPoint((uint16_t)(x + col), (uint16_t)(y + row), c);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const char CHS8Table[][2] = {
|
|||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xB8,0xE8}, // 歌 17
|
||||
{0xC7,0xFA}, // 曲 18
|
||||
{0xD7,0xD4}, // 自 19
|
||||
|
|
@ -71,7 +71,7 @@ const char CHS9Table[][2] = {
|
|||
{0xD2,0xF4}, // 音
|
||||
{0xC9,0xAB}, // 色
|
||||
{0xD1,0xA1}, // 选
|
||||
{0xD2,0xE9}, // 择
|
||||
{0xD4,0xF1}, // 择
|
||||
{0xB8,0xE8}, // 歌
|
||||
{0xC7,0xFA}, // 曲
|
||||
{0xD7,0xD4}, // 自
|
||||
|
|
@ -137,7 +137,7 @@ const char CHS11Table[][2] = {
|
|||
{0xD2,0xF4}, // 音
|
||||
{0xC9,0xAB}, // 色
|
||||
{0xD1,0xA1}, // 选
|
||||
{0xD2,0xE9}, // 择
|
||||
{0xD4,0xF1}, // 择
|
||||
{0xB8,0xE8}, // 歌
|
||||
{0xC7,0xFA}, // 曲
|
||||
{0xD7,0xD4}, // 自
|
||||
|
|
@ -204,7 +204,7 @@ const char CHS12Table[][2] = {
|
|||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xB8,0xE8}, // 歌 17
|
||||
{0xC7,0xFA}, // 曲 18
|
||||
{0xD7,0xD4}, // 自 19
|
||||
|
|
@ -267,12 +267,12 @@ const char CHS13Table[][2] = {
|
|||
{0xC4,0xA3}, // 模 4
|
||||
{0xCA,0xBD}, // 式 5
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xCF,0xD2}, // 弦 8
|
||||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 11
|
||||
{0xD2,0xE9}, // 择 12
|
||||
{0xD4,0xF1}, // 择 12
|
||||
{0xD1,0xDD}, // 演 13
|
||||
{0xD7,0xE0}, // 奏 14
|
||||
{0xB6,0xCE}, // 段 15
|
||||
|
|
@ -461,12 +461,12 @@ const char CHS15Table[][2] = {
|
|||
{0xC4,0xA3}, // 模 4
|
||||
{0xCA,0xBD}, // 式 5
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xCF,0xD2}, // 弦 8
|
||||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 11
|
||||
{0xD2,0xE9}, // 择 12
|
||||
{0xD4,0xF1}, // 择 12
|
||||
{0xD1,0xDD}, // 演 13
|
||||
{0xD7,0xE0}, // 奏 14
|
||||
{0xB6,0xCE}, // 段 15
|
||||
|
|
@ -652,12 +652,12 @@ const char CHS16Table[][2] = {
|
|||
{0xC4,0xA3}, // 模 4
|
||||
{0xCA,0xBD}, // 式 5
|
||||
{0xD1,0xA1}, // 选 6
|
||||
{0xD2,0xE9}, // 择 7
|
||||
{0xD4,0xF1}, // 择 7
|
||||
{0xCF,0xD2}, // 弦 8
|
||||
{0xD2,0xF4}, // 音 9
|
||||
{0xC9,0xAB}, // 色 10
|
||||
{0xD1,0xA1}, // 选 11
|
||||
{0xD2,0xE9}, // 择 12
|
||||
{0xD4,0xF1}, // 择 12
|
||||
{0xD1,0xDD}, // 演 13
|
||||
{0xD7,0xE0}, // 奏 14
|
||||
{0xB6,0xCE}, // 段 15
|
||||
|
|
@ -883,7 +883,7 @@ const unsigned char Chinese_font_8[][8] = {
|
|||
{0x18,0x24,0x18,0xFF,0x3C,0x42,0x7E,0x7E},/*"音 9",5*/
|
||||
{0x10,0x0C,0x7E,0x40,0x7E,0x40,0x41,0x3F},/*"色 10",6*/
|
||||
{0x04,0x4E,0x14,0xDF,0x4A,0x43,0x01,0x9F},/*"选 6",7*/
|
||||
{0x00,0x04,0x00,0xC0,0x4A,0x44,0x60,0x11},/*"择 7",8*/
|
||||
{0x5F,0xE6,0x6A,0x71,0x6E,0xC4,0x5F,0xC4},/*"择 7",8*/
|
||||
{0xF4,0xD7,0xD9,0xFA,0xD2,0xD4,0xD0,0x31},/*"歌 17",9*/
|
||||
{0x14,0x7F,0x55,0x15,0x7F,0x55,0x75,0x41},/*"曲 18",10*/
|
||||
{0x10,0x66,0x42,0x7E,0x7E,0x42,0x66,0x42},/*"自 19",11*/
|
||||
|
|
@ -941,7 +941,7 @@ const unsigned char Chinese_font_12[][24] = {
|
|||
{0x04,0x00,0x7F,0xC0,0x11,0x00,0x0A,0x00,0xFF,0xE0,0x00,0x00,0x3F,0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x3F,0x80,0x00,0x00},/*"音 9",5*/
|
||||
{0x08,0x00,0x1F,0x80,0x22,0x00,0x7F,0xC0,0xA4,0x40,0x24,0x40,0x3F,0xC0,0x20,0x00,0x20,0x20,0x20,0x20,0x1F,0xE0,0x00,0x00},/*"色 10",6*/
|
||||
{0x45,0x00,0x25,0x00,0x27,0xC0,0x09,0x00,0xEF,0xE0,0x22,0x80,0x22,0xA0,0x24,0xA0,0x28,0x60,0x50,0x00,0x8F,0xE0,0x00,0x00},/*"选 6",7*/
|
||||
{0x42,0x00,0x21,0x40,0x05,0x40,0x04,0x40,0xE4,0x40,0x22,0x80,0x22,0x80,0x29,0x00,0x32,0x80,0x24,0x40,0x08,0x20,0x00,0x00},/*"择 7",8*/
|
||||
{0x2F,0xF0,0x21,0x20,0xF8,0xC0,0x21,0x20,0x2E,0x10,0x30,0x80,0x30,0x80,0x67,0xE0,0xA0,0x80,0x2F,0xF0,0x20,0x80,0xE0,0x80},/*"择 7",8*/
|
||||
{0xFD,0x00,0x09,0x00,0xE9,0xE0,0xAA,0x20,0xFE,0x80,0x08,0x80,0xE8,0x80,0xA9,0x40,0xE9,0x40,0x0A,0x20,0x1C,0x20,0x00,0x00},/*"歌 17",9*/
|
||||
{0x09,0x00,0x09,0x00,0x7F,0xE0,0x49,0x20,0x49,0x20,0x49,0x20,0x7F,0xE0,0x49,0x20,0x49,0x20,0x7F,0xE0,0x40,0x20,0x00,0x00},/*"曲 18",10*/
|
||||
{0x08,0x00,0x3F,0x80,0x20,0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x00,0x00},/*"自 19",11*/
|
||||
|
|
@ -1004,7 +1004,7 @@ const unsigned char Chinese_font_9[][18] = {
|
|||
{0x08,0x00,0x7F,0x00,0x14,0x00,0xFF,0x80,0x00,0x00,0x3E,0x00,0x22,0x00,0x22,0x00,0x3E,0x00},/*"音",5*/
|
||||
{0x10,0x00,0x3E,0x00,0x7F,0x00,0xE9,0x00,0x29,0x00,0x3F,0x00,0x00,0x00,0x00,0x80,0x3F,0x80},/*"色",6*/
|
||||
{0x4A,0x00,0x0E,0x00,0x06,0x00,0xDF,0x80,0x06,0x00,0x00,0x80,0x00,0x80,0x60,0x00,0x9F,0x80},/*"选",7*/
|
||||
{0x44,0x00,0x03,0x00,0x09,0x00,0xC9,0x00,0x04,0x00,0x04,0x00,0x30,0x00,0x21,0x00,0x10,0x80},/*"择",8*/
|
||||
{0x3F,0x80,0x65,0x00,0xF7,0x00,0x38,0x80,0x62,0x00,0xEF,0x00,0xAF,0x80,0x26,0x00,0xE2,0x00},/*"择",8*/
|
||||
{0xFA,0x00,0x12,0x00,0xD4,0x80,0xFC,0x00,0x10,0x00,0xD0,0x00,0xD3,0x00,0x14,0x80,0x18,0x80},/*"歌",9*/
|
||||
{0x12,0x00,0x16,0x00,0x5E,0x80,0x52,0x80,0x52,0x80,0x7F,0x80,0x52,0x80,0x7F,0x80,0x40,0x80},/*"曲",10*/
|
||||
{0x10,0x00,0x3E,0x00,0x00,0x00,0x3E,0x00,0x22,0x00,0x3E,0x00,0x00,0x00,0x3E,0x00,0x22,0x00},/*"自",11*/
|
||||
|
|
@ -1069,7 +1069,7 @@ const unsigned char Chinese_font_11[][22] = {
|
|||
{0x04,0x00,0x7F,0xC0,0x11,0x00,0x0A,0x00,0xFF,0xE0,0x00,0x00,0x3F,0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x3F,0x80},/*"音",5*/
|
||||
{0x08,0x00,0x1F,0x80,0x22,0x00,0x7F,0xC0,0xA4,0x40,0x24,0x40,0x3F,0xC0,0x20,0x00,0x20,0x20,0x20,0x20,0x1F,0xE0},/*"色",6*/
|
||||
{0x45,0x00,0x25,0x00,0x27,0xC0,0x09,0x00,0xEF,0xE0,0x22,0x80,0x22,0xA0,0x24,0xA0,0x28,0x60,0x50,0x00,0x8F,0xE0},/*"选",7*/
|
||||
{0x42,0x00,0x21,0x40,0x05,0x40,0x04,0x40,0xE4,0x40,0x22,0x80,0x22,0x80,0x29,0x00,0x32,0x80,0x24,0x40,0x08,0x20},/*"择",8*/
|
||||
{0x2F,0xE0,0x22,0x40,0xF9,0x80,0x22,0x40,0x2C,0x20,0x31,0x00,0x67,0xC0,0xA1,0x00,0x2F,0xE0,0x21,0x00,0xE1,0x00},/*"择",8*/
|
||||
{0xFD,0x00,0x09,0x00,0xE9,0xE0,0xAA,0x20,0xFE,0x80,0x08,0x80,0xE8,0x80,0xA9,0x40,0xE9,0x40,0x0A,0x20,0x1C,0x20},/*"歌",9*/
|
||||
{0x09,0x00,0x09,0x00,0x7F,0xE0,0x49,0x20,0x49,0x20,0x49,0x20,0x7F,0xE0,0x49,0x20,0x49,0x20,0x7F,0xE0,0x40,0x20},/*"曲",10*/
|
||||
{0x08,0x00,0x3F,0x80,0x20,0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x20,0x80,0x3F,0x80,0x20,0x80},/*"自",11*/
|
||||
|
|
@ -1138,12 +1138,12 @@ const unsigned char Chinese_font_13[][26] = {
|
|||
{0x22,0x40,0x2F,0xF0,0x22,0x40,0xFF,0xE0,0x24,0x20,0x37,0xE0,0x6C,0x20,0xA7,0xE0,0xA1,0x00,0x2F,0xF0,0x22,0x40,0x2C,0x30,0x00,0x00},/*"模 4",4*/
|
||||
{0x02,0x80,0x02,0x40,0x02,0x00,0xFF,0xE0,0x02,0x00,0x02,0x00,0x7A,0x00,0x12,0x00,0x11,0x00,0x11,0x20,0x1C,0xA0,0xE0,0x60,0x00,0x00},/*"式 5",5*/
|
||||
{0x45,0x00,0x25,0x00,0x27,0xE0,0x09,0x00,0x01,0x00,0xEF,0xF0,0x22,0x80,0x22,0x90,0x24,0x90,0x28,0x70,0x50,0x00,0x8F,0xF0,0x00,0x00},/*"选 6",6*/
|
||||
{0x42,0x00,0x21,0x20,0x25,0x20,0x04,0x20,0xE4,0x40,0x22,0x40,0x22,0x80,0x22,0x80,0x29,0x00,0x32,0x80,0x24,0x40,0x08,0x30,0x00,0x00},/*"择 7",7*/
|
||||
{0x23,0xF0,0x23,0x10,0x20,0xA0,0xF8,0x40,0x20,0xA0,0x27,0x58,0x30,0x40,0x30,0x40,0xE3,0xF0,0x20,0x40,0x27,0xF8,0xA0,0x40,0x40,0x40},/*"择 7",7*/
|
||||
{0x01,0x00,0xF0,0x80,0x17,0xF0,0x10,0x80,0xF1,0x00,0x82,0x20,0x87,0xC0,0xF0,0x80,0x11,0x00,0x12,0x20,0x97,0xD0,0x62,0x10,0x00,0x00},/*"弦 8",8*/
|
||||
{0x04,0x00,0x7F,0xE0,0x10,0x80,0x09,0x00,0xFF,0xF0,0x00,0x00,0x3F,0xC0,0x20,0x40,0x3F,0xC0,0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x00},/*"音 9",9*/
|
||||
{0x10,0x00,0x3F,0x00,0x22,0x00,0x44,0x00,0xFF,0xC0,0x44,0x40,0x44,0x40,0x7F,0xC0,0x40,0x00,0x40,0x20,0x40,0x20,0x3F,0xE0,0x00,0x00},/*"色 10",10*/
|
||||
{0x45,0x00,0x25,0x00,0x27,0xE0,0x09,0x00,0x01,0x00,0xEF,0xF0,0x22,0x80,0x22,0x90,0x24,0x90,0x28,0x70,0x50,0x00,0x8F,0xF0,0x00,0x00},/*"选 11",11*/
|
||||
{0x42,0x00,0x21,0x20,0x25,0x20,0x04,0x20,0xE4,0x40,0x22,0x40,0x22,0x80,0x22,0x80,0x29,0x00,0x32,0x80,0x24,0x40,0x08,0x30,0x00,0x00},/*"择 12",12*/
|
||||
{0x23,0xF0,0x23,0x10,0x20,0xA0,0xF8,0x40,0x20,0xA0,0x27,0x58,0x30,0x40,0x30,0x40,0xE3,0xF0,0x20,0x40,0x27,0xF8,0xA0,0x40,0x40,0x40},/*"择 12",12*/
|
||||
{0x40,0x80,0x2F,0xF0,0x08,0x10,0x87,0xE0,0x40,0x80,0x17,0xE0,0x24,0xA0,0x27,0xE0,0xC4,0xA0,0x47,0xE0,0x42,0x40,0x4C,0x30,0x00,0x00},/*"演 13",13*/
|
||||
{0x04,0x00,0x7F,0xE0,0x04,0x00,0x3F,0xC0,0x08,0x00,0xFF,0xF0,0x20,0x40,0xDF,0xB0,0x04,0x00,0x3F,0xC0,0x09,0x00,0xF0,0xF0,0x00,0x00},/*"奏 14",14*/
|
||||
{0x1B,0xC0,0x62,0x40,0x42,0x40,0x7A,0x40,0x44,0x70,0x78,0x00,0x47,0xE0,0x44,0x40,0x7A,0x40,0xC1,0x80,0x42,0x40,0x4C,0x30,0x00,0x00},/*"段 15",15*/
|
||||
|
|
@ -1334,12 +1334,12 @@ const unsigned char Chinese_font_15[][30] = {
|
|||
{0x10,0xA0,0x10,0xA0,0x17,0xFC,0xFC,0xA0,0x13,0xF8,0x12,0x08,0x3B,0xF8,0x56,0x08,0x53,0xF8,0x90,0x40,0x97,0xFC,0x10,0xA0,0x11,0x10,0x16,0x0C,0x00,0x00},/*"模 4",4*/
|
||||
{0x00,0xA0,0x00,0x90,0x00,0x80,0xFF,0xFC,0x00,0x80,0x00,0x80,0x7E,0x80,0x08,0x40,0x08,0x40,0x08,0x20,0x0B,0x24,0x1C,0x14,0xE0,0x0C,0x00,0x04,0x00,0x00},/*"式 5",5*/
|
||||
{0x40,0x40,0x22,0x40,0x22,0x40,0x03,0xF8,0x04,0x40,0xE0,0x40,0x27,0xFC,0x21,0x20,0x21,0x20,0x21,0x24,0x22,0x24,0x24,0x1C,0x50,0x00,0x8F,0xFC,0x00,0x00},/*"选 6",6*/
|
||||
{0x40,0x80,0x30,0x48,0x12,0x48,0x02,0x08,0x01,0x10,0xF1,0x10,0x11,0x10,0x10,0xA0,0x10,0xA0,0x10,0x40,0x14,0x40,0x18,0xA0,0x11,0x10,0x06,0x0C,0x00,0x00},/*"择 7",7*/
|
||||
{0x10,0x08,0x13,0xFC,0x11,0x88,0xFC,0x50,0x10,0x20,0x11,0xD8,0x16,0x26,0x18,0x20,0x18,0x20,0x33,0xFC,0xD0,0x20,0x17,0xFE,0x10,0x20,0x50,0x20,0x20,0x20},/*"择 7",7*/
|
||||
{0xF8,0x40,0x08,0x20,0x08,0x20,0x7B,0xFC,0x40,0x40,0x40,0x88,0x40,0x88,0x79,0xF0,0x08,0x20,0x08,0x40,0x08,0x48,0x08,0x88,0x51,0xFC,0x20,0x04,0x00,0x00},/*"弦 8",8*/
|
||||
{0x02,0x00,0x01,0x00,0x7F,0xF8,0x08,0x40,0x04,0x80,0xFF,0xFC,0x00,0x00,0x1F,0xE0,0x10,0x20,0x1F,0xE0,0x10,0x20,0x10,0x20,0x1F,0xE0,0x10,0x20,0x00,0x00},/*"音 9",9*/
|
||||
{0x08,0x00,0x08,0x00,0x1F,0xC0,0x21,0x00,0x42,0x00,0xBF,0xE0,0x22,0x20,0x22,0x20,0x3F,0xE0,0x20,0x00,0x20,0x08,0x20,0x08,0x20,0x08,0x1F,0xF8,0x00,0x00},/*"色 10",10*/
|
||||
{0x40,0x40,0x22,0x40,0x22,0x40,0x03,0xF8,0x04,0x40,0xE0,0x40,0x27,0xFC,0x21,0x20,0x21,0x20,0x21,0x24,0x22,0x24,0x24,0x1C,0x50,0x00,0x8F,0xFC,0x00,0x00},/*"选 11",11*/
|
||||
{0x40,0x80,0x30,0x48,0x12,0x48,0x02,0x08,0x01,0x10,0xF1,0x10,0x11,0x10,0x10,0xA0,0x10,0xA0,0x10,0x40,0x14,0x40,0x18,0xA0,0x11,0x10,0x06,0x0C,0x00,0x00},/*"择 12",12*/
|
||||
{0x10,0x08,0x13,0xFC,0x11,0x88,0xFC,0x50,0x10,0x20,0x11,0xD8,0x16,0x26,0x18,0x20,0x18,0x20,0x33,0xFC,0xD0,0x20,0x17,0xFE,0x10,0x20,0x50,0x20,0x20,0x20},/*"择 12",12*/
|
||||
{0x40,0x80,0x20,0x40,0x27,0xFC,0x04,0x04,0x93,0xF8,0x50,0x40,0x23,0xF8,0x22,0x48,0x23,0xF8,0xC2,0x48,0x43,0xF8,0x40,0x00,0x41,0x10,0x46,0x08,0x00,0x00},/*"演 13",13*/
|
||||
{0x04,0x00,0x04,0x00,0x7F,0xF0,0x04,0x00,0x3F,0xE0,0x08,0x00,0xFF,0xF8,0x10,0x40,0x2F,0xA0,0xC2,0x18,0x3F,0xC0,0x05,0x00,0x08,0x80,0x70,0x70,0x00,0x00},/*"奏 14",14*/
|
||||
{0x06,0x00,0x38,0xF0,0x20,0x90,0x20,0x90,0x3C,0x90,0x21,0x1C,0x20,0x00,0x3D,0xF8,0x20,0x90,0x26,0x90,0x38,0x60,0xE0,0x60,0x20,0x90,0x23,0x0C,0x00,0x00},/*"段 15",15*/
|
||||
|
|
@ -1524,12 +1524,12 @@ const unsigned char Chinese_font_16[][32] = {
|
|||
{0x11,0x10,0x11,0x10,0x17,0xFC,0x11,0x10,0xFC,0x00,0x13,0xF8,0x32,0x08,0x3B,0xF8,0x56,0x08,0x53,0xF8,0x90,0x40,0x17,0xFC,0x10,0xA0,0x11,0x10,0x12,0x08,0x14,0x06},/*"模 4",4*/
|
||||
{0x00,0x48,0x00,0x44,0x00,0x44,0x00,0x40,0xFF,0xFE,0x00,0x40,0x00,0x40,0x3E,0x40,0x08,0x40,0x08,0x40,0x08,0x20,0x08,0x22,0x0F,0x12,0x78,0x0A,0x20,0x06,0x00,0x02},/*"式 5",5*/
|
||||
{0x00,0x40,0x22,0x40,0x12,0x40,0x13,0xF8,0x04,0x40,0x00,0x40,0xF7,0xFC,0x11,0x20,0x11,0x20,0x11,0x20,0x12,0x24,0x12,0x24,0x14,0x1C,0x28,0x00,0x47,0xFE,0x00,0x00},/*"选 6",6*/
|
||||
{0x00,0x80,0x20,0x48,0x12,0x48,0x12,0x08,0x02,0x08,0x01,0x10,0xF1,0x10,0x11,0x10,0x10,0xA0,0x10,0xA0,0x10,0x40,0x14,0x40,0x18,0xA0,0x11,0x10,0x02,0x08,0x0C,0x06},/*"择 7",7*/
|
||||
{0x20,0x00,0x27,0xFC,0x22,0x04,0x21,0x88,0xF0,0x50,0x20,0x20,0x21,0xD8,0x26,0x27,0x30,0x20,0xE3,0xFC,0x20,0x20,0x20,0x20,0x27,0xFE,0x20,0x20,0xA0,0x20,0x40,0x20},/*"择 7",7*/
|
||||
{0x00,0x40,0xF8,0x20,0x08,0x20,0x0B,0xFE,0x08,0x40,0x78,0x40,0x40,0x88,0x41,0x08,0x43,0xF0,0x78,0x20,0x08,0x40,0x08,0x88,0x09,0x04,0x0B,0xFC,0x51,0x04,0x20,0x00},/*"弦 8",8*/
|
||||
{0x02,0x00,0x01,0x00,0x3F,0xF8,0x00,0x00,0x08,0x20,0x04,0x40,0xFF,0xFE,0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10},/*"音 9",9*/
|
||||
{0x08,0x00,0x08,0x00,0x1F,0xE0,0x20,0x20,0x40,0x40,0xBF,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x20,0x00,0x20,0x02,0x20,0x02,0x20,0x02,0x1F,0xFE,0x00,0x00},/*"色 10",10*/
|
||||
{0x00,0x40,0x22,0x40,0x12,0x40,0x13,0xF8,0x04,0x40,0x00,0x40,0xF7,0xFC,0x11,0x20,0x11,0x20,0x11,0x20,0x12,0x24,0x12,0x24,0x14,0x1C,0x28,0x00,0x47,0xFE,0x00,0x00},/*"选 11",11*/
|
||||
{0x00,0x80,0x20,0x48,0x12,0x48,0x12,0x08,0x02,0x08,0x01,0x10,0xF1,0x10,0x11,0x10,0x10,0xA0,0x10,0xA0,0x10,0x40,0x14,0x40,0x18,0xA0,0x11,0x10,0x02,0x08,0x0C,0x06},/*"择 12",12*/
|
||||
{0x20,0x00,0x27,0xFC,0x22,0x04,0x21,0x88,0xF0,0x50,0x20,0x20,0x21,0xD8,0x26,0x27,0x30,0x20,0xE3,0xFC,0x20,0x20,0x20,0x20,0x27,0xFE,0x20,0x20,0xA0,0x20,0x40,0x20},/*"择 12",12*/
|
||||
{0x00,0x80,0x20,0x40,0x17,0xFC,0x14,0x04,0x80,0x00,0x43,0xF8,0x40,0x40,0x13,0xF8,0x12,0x48,0x23,0xF8,0xE2,0x48,0x23,0xF8,0x20,0x00,0x21,0x10,0x22,0x08,0x04,0x04},/*"演 13",13*/
|
||||
{0x01,0x00,0x01,0x00,0x7F,0xFC,0x01,0x00,0x3F,0xF8,0x02,0x00,0xFF,0xFE,0x04,0x40,0x08,0x20,0x37,0xD8,0xC1,0x06,0x1F,0xF0,0x01,0x00,0x02,0xC0,0x0C,0x30,0x30,0x08},/*"奏 14",14*/
|
||||
{0x06,0x00,0x38,0xF8,0x20,0x88,0x20,0x88,0x20,0x88,0x3C,0x86,0x21,0x00,0x20,0x00,0x3D,0xFC,0x20,0x84,0x20,0x88,0x2C,0x50,0xF0,0x20,0x20,0x50,0x20,0x88,0x23,0x06},/*"段 15",15*/
|
||||
|
|
|
|||
|
|
@ -418,13 +418,13 @@ const unsigned char ascii_115[][11]={
|
|||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"+",11*/
|
||||
{0x00,0x00,0x00,0x08,0x08,0x08,0x04,0x00,0x00,0x00,0x00},/*",",12*/
|
||||
{0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00},/*"-",13*/
|
||||
{0x00,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00},/*".",14*/
|
||||
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04},/*".",14 基线底部,避免居中成间隔号*/
|
||||
{0x10,0x10,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x02,0x02},/*"/",15*/
|
||||
{0x0C,0x12,0x21,0x21,0x21,0x21,0x21,0x21,0x12,0x0C,0x00},/*"0",16*/
|
||||
{0x04,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x1F,0x00},/*"1",17*/
|
||||
{0x1E,0x21,0x20,0x20,0x10,0x08,0x04,0x02,0x01,0x3F,0x00},/*"2",18*/
|
||||
{0x1E,0x21,0x20,0x20,0x18,0x20,0x20,0x20,0x21,0x1E,0x00},/*"3",19*/
|
||||
{0x00,0x08,0x08,0x0C,0x0C,0x0A,0x09,0x3F,0x08,0x08,0x00},/*"4",20*/
|
||||
{0x08,0x08,0x0C,0x0C,0x0A,0x09,0x3F,0x08,0x08,0x08,0x00},/*"4",20 上移1行,竖笔贴底与5同高*/
|
||||
{0x3F,0x01,0x01,0x01,0x0D,0x13,0x20,0x20,0x11,0x0E,0x00},/*"5",21*/
|
||||
{0x1C,0x22,0x01,0x01,0x0D,0x13,0x21,0x21,0x12,0x0C,0x00},/*"6",22*/
|
||||
{0x3F,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x04,0x04,0x00},/*"7",23*/
|
||||
|
|
@ -997,7 +997,7 @@ const unsigned char ascii_94[][9]={
|
|||
{0x00,0x00,0x00,0x14,0x14,0x14,0x00,0x00,0x00},/*""",2*/
|
||||
{0x24,0x24,0x7E,0x24,0x24,0x12,0x7F,0x12,0x12},/*"#",3*/
|
||||
{0x0C,0x0C,0x02,0x02,0x0C,0x10,0x10,0x0C,0x0C},/*"$",4*/
|
||||
{0x02,0x25,0x12,0x08,0x24,0x52,0x20,0x00,0x00},/*"%",5*/
|
||||
{0x26,0x29,0x29,0x16,0x08,0x34,0x4A,0x4A,0x34},/*"%",5*/ /* 9px 满高,与数字同高 */
|
||||
{0x0C,0x12,0x12,0x0A,0x26,0x25,0x19,0x09,0x36},/*"&",6*/
|
||||
{0x00,0x00,0x00,0x08,0x08,0x08,0x00,0x00,0x00},/*"'",7*/
|
||||
{0x08,0x00,0x04,0x04,0x04,0x04,0x04,0x00,0x08},/*"(",8*/
|
||||
|
|
|
|||
|
|
@ -476,412 +476,290 @@ const unsigned char gImage_Restore[800] = { /* 0X10,0X10,0X00,0X14,0X00,0X14,0X0
|
|||
};
|
||||
|
||||
|
||||
const unsigned char gImage_mixer[3200] = { /* 0X10,0X10,0X00,0X28,0X00,0X28,0X01,0X1B, */
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X42,0X4A,0X4A,0X8B,0X42,0X4B,0X21,0X67,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X67,0X42,0X6B,0X4A,0X6B,0X3A,0X2A,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X26,0X31,0XC9,0X4A,0X6B,0X4A,0X6B,0X31,0XA8,0X21,0X26,0X21,0X47,
|
||||
0X21,0X47,0X19,0X06,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X10,0XE5,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X10,0XC5,0X73,0XB0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X19,0X06,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X19,0X06,0XCE,0X59,0XFF,0XFF,0XFF,0XFF,0XB5,0XB7,0X10,0XE5,0X21,0X47,
|
||||
0X21,0X47,0X10,0XE5,0X52,0XAC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X63,0X4E,0X10,0XC5,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X10,0XC5,0X7C,0X11,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X42,0X2A,0X19,0X06,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X19,0X06,0XD6,0X9A,0XFF,0XFF,0XFF,0XFF,0XBE,0X18,0X10,0XE5,0X21,0X47,
|
||||
0X21,0X47,0X10,0XE5,0X4A,0XAC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X63,0X2E,0X10,0XC5,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X10,0XA5,0X84,0X31,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X42,0X2A,0X19,0X06,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X46,0X19,0X06,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XE5,0X21,0X47,
|
||||
0X21,0X47,0X10,0XE5,0X4A,0XAC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X63,0X2E,0X10,0XC5,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X10,0XE5,0X52,0XED,0XD6,0XBB,0XDE,0XDB,0XC6,0X39,0X29,0XA8,0X19,0X26,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X46,0X19,0X06,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XE5,0X21,0X47,
|
||||
0X21,0X47,0X10,0XE5,0X4A,0XAC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X63,0X2E,0X10,0XC5,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X10,0XE5,0X10,0XC5,0X08,0XA4,0X08,0XA4,0X08,0XA4,0X08,0X84,0X08,0XA4,0X10,0XC5,
|
||||
0X19,0X06,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X46,0X19,0X06,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XE5,0X21,0X47,
|
||||
0X21,0X46,0X10,0XE5,0X52,0XAC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X63,0X2E,0X10,0XC5,
|
||||
0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X26,0X19,0X26,
|
||||
0X52,0XED,0X6B,0X8F,0X6B,0X8F,0X6B,0X6F,0X6B,0X6F,0X6B,0X6F,0X6B,0X8F,0X6B,0X8F,
|
||||
0X3A,0X09,0X19,0X06,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,
|
||||
0X21,0X26,0X19,0X06,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X21,0X46,
|
||||
0X21,0X46,0X10,0XE5,0X42,0X4A,0XFF,0XDF,0XFF,0XFF,0XFF,0XFF,0X52,0XCC,0X10,0XE5,
|
||||
0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X19,0X06,0X29,0X88,
|
||||
0XF7,0XBF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X9C,0XF4,0X08,0XA4,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,
|
||||
0X21,0X26,0X19,0X06,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X21,0X46,
|
||||
0X19,0X26,0X19,0X06,0X19,0X06,0X31,0XE9,0X3A,0X09,0X39,0XE9,0X19,0X06,0X19,0X06,
|
||||
0X19,0X26,0X21,0X47,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X19,0X06,0X31,0XA8,
|
||||
0XF7,0X9E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X9D,0X14,0X08,0XA4,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X46,
|
||||
0X21,0X26,0X19,0X06,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X21,0X46,
|
||||
0X21,0X67,0X39,0XE9,0X39,0XE9,0X31,0XA8,0X29,0XA8,0X29,0XA8,0X31,0XE9,0X39,0XE9,
|
||||
0X21,0X67,0X19,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X19,0X06,0X29,0XA8,
|
||||
0XF7,0X9E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X9C,0XF4,0X08,0XA4,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,
|
||||
0X19,0X26,0X19,0X05,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X19,0X26,
|
||||
0XAD,0X76,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,
|
||||
0XB5,0X97,0X10,0XE5,0X19,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X19,0X06,0X29,0XA8,
|
||||
0XF7,0X9E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X9C,0XF4,0X08,0XA4,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,
|
||||
0X19,0X26,0X19,0X05,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X19,0X26,
|
||||
0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XCE,0X7A,0X10,0XE5,0X19,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X19,0X06,0X29,0XA8,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XA5,0X15,0X08,0XA4,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,0X21,0X26,
|
||||
0X19,0X26,0X19,0X05,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X19,0X26,
|
||||
0XC6,0X39,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XC6,0X59,0X10,0XE5,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X6B,0X8F,0X84,0X52,0X84,0X52,0X84,0X52,0X84,0X52,0X84,0X52,0X84,0X52,0X84,0X52,
|
||||
0X42,0X4A,0X18,0XE5,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X10,0XE5,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X19,0X26,
|
||||
0XC6,0X39,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XC6,0X59,0X10,0XE5,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X10,0XA4,0X08,0XA4,0X00,0X63,0X00,0X43,0X00,0X43,0X00,0X23,0X08,0X84,0X08,0XA4,
|
||||
0X10,0XE5,0X21,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X10,0XE5,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X19,0X26,
|
||||
0XCE,0X9A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XD6,0X9A,0X10,0XE5,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X10,0XE5,0X4A,0X8B,0XBD,0XF8,0XC6,0X18,0XAD,0X76,0X21,0X67,0X19,0X06,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X10,0XE5,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X19,0X26,
|
||||
0X84,0X31,0XC6,0X39,0XC6,0X39,0XC6,0X39,0XC6,0X39,0XC6,0X39,0XC6,0X39,0XC6,0X39,
|
||||
0X84,0X52,0X10,0XE5,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X08,0XA4,0X7C,0X11,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3A,0X2A,0X10,0XE5,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X10,0XE5,0XD6,0XBB,0XFF,0XFF,0XFF,0XFF,0XC6,0X39,0X10,0XC5,0X19,0X26,
|
||||
0X10,0XC5,0X10,0XE5,0X10,0XC5,0X00,0X43,0X00,0X43,0X00,0X43,0X10,0XC5,0X10,0XE5,
|
||||
0X10,0XC5,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X08,0XA4,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XE5,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X10,0XC5,0XAD,0X76,0XEF,0X7D,0XEF,0X7D,0X9C,0XF4,0X10,0XA5,0X19,0X26,
|
||||
0X19,0X26,0X19,0X06,0X21,0X47,0X73,0XD0,0X7C,0X11,0X7B,0XF0,0X29,0X87,0X19,0X05,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X08,0XA4,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XE5,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X06,
|
||||
0X10,0XC5,0X10,0XA4,0X10,0XC5,0X19,0X26,0X19,0X26,0X10,0XC4,0X10,0XC4,0X10,0XC5,
|
||||
0X19,0X26,0X10,0XC5,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X10,0XA4,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X08,0XA4,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XE5,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X06,0X21,0X47,
|
||||
0X4A,0XAB,0X52,0XAC,0X4A,0XAB,0X4A,0X8B,0X4A,0X8B,0X52,0XAC,0X52,0XAC,0X4A,0X6B,
|
||||
0X19,0X26,0X10,0XC5,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X08,0XA4,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XE5,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X08,0XA4,0X6B,0X8F,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X19,0X26,0X10,0XC5,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X08,0X84,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XE5,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X08,0X84,0X7B,0XF0,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X19,0X26,0X10,0XC4,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X08,0X84,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XE5,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X08,0X84,0X73,0XD0,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X19,0X26,0X10,0XC4,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X08,0X84,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XE5,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X08,0X84,0X73,0XD0,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X19,0X06,0X10,0XC4,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X06,0X08,0X84,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XC5,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X08,0X84,0X7B,0XF0,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X19,0X06,0X10,0XC4,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X06,0X08,0X84,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XC5,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X10,0XE5,0X3A,0X09,
|
||||
0XA5,0X35,0XA5,0X55,0XA5,0X55,0XA5,0X55,0XA5,0X55,0XA5,0X55,0XA5,0X55,0X9C,0XF4,
|
||||
0X19,0X06,0X10,0XC4,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X06,0X08,0X84,0X7B,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3A,0X09,0X10,0XC5,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X26,0X10,0XE5,
|
||||
0X08,0X84,0X08,0X84,0X00,0X22,0X00,0X02,0X00,0X02,0X00,0X22,0X08,0X84,0X08,0X84,
|
||||
0X19,0X06,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X06,0X08,0X84,0X63,0X4E,0XFF,0XDF,0XFF,0XFF,0XEF,0X7D,0X29,0XA8,0X10,0XE5,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X06,0X10,0XC5,0X6B,0X8F,0XA5,0X55,0XA5,0X35,0X63,0X2D,0X10,0XC5,0X19,0X06,
|
||||
0X19,0X06,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X10,0XE5,0X10,0XC4,0X10,0XC5,0X29,0XA8,0X31,0XC8,0X21,0X67,0X10,0XA4,0X10,0XC5,
|
||||
0X19,0X05,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X05,0X10,0XC5,0XD6,0XDB,0XFF,0XFF,0XFF,0XFF,0XC6,0X39,0X08,0X84,0X19,0X06,
|
||||
0X19,0X06,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0XA4,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X18,0XE5,
|
||||
0X29,0X87,0X3A,0X09,0X31,0XE9,0X31,0XA8,0X31,0XA8,0X31,0XC8,0X39,0XE9,0X39,0XE9,
|
||||
0X19,0X26,0X19,0X05,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X05,0X10,0XC5,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XD8,0X08,0XA4,0X19,0X06,
|
||||
0X19,0X05,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X84,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X10,0XE5,0X21,0X46,
|
||||
0XDE,0XFC,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,0XFF,0XDF,
|
||||
0X84,0X52,0X08,0X84,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X10,0XC5,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X19,0X05,
|
||||
0X19,0X05,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X84,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X10,0XC5,0X29,0X87,
|
||||
0XF7,0XBE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X9C,0XF4,0X00,0X63,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X10,0XC5,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X19,0X05,
|
||||
0X19,0X05,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X84,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X10,0XC5,0X29,0X87,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XA5,0X15,0X00,0X63,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X10,0XC5,0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X19,0X05,
|
||||
0X19,0X05,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X84,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X18,0XE5,0X19,0X05,
|
||||
0X94,0XB3,0XB5,0XB7,0XB5,0XB7,0XB5,0XB7,0XB5,0XB7,0XB5,0XB7,0XB5,0XB7,0XB5,0X97,
|
||||
0X5A,0XEC,0X08,0XA4,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X10,0XC4,0XCE,0X79,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X19,0X05,
|
||||
0X19,0X05,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X84,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X18,0XE5,
|
||||
0X08,0X84,0X08,0X84,0X00,0X63,0X00,0X01,0X00,0X01,0X00,0X02,0X08,0X83,0X08,0X84,
|
||||
0X10,0XA4,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X10,0XE5,0X10,0XC4,0XCE,0X79,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X18,0XE5,
|
||||
0X19,0X05,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X84,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X10,0XC5,0X31,0XC8,0X8C,0X92,0X94,0XB3,0X7C,0X11,0X19,0X06,0X10,0XE5,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X10,0XE5,0X10,0XC4,0XCE,0X79,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X18,0XE5,
|
||||
0X19,0X05,0X08,0XA4,0X4A,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X84,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X00,0X63,0X7B,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X31,0XE9,0X10,0XA4,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X10,0XE5,0X10,0XC4,0XCE,0X79,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X18,0XE5,
|
||||
0X18,0XE5,0X08,0X84,0X42,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X83,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X18,0XE5,0X00,0X63,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X31,0XE9,0X08,0XA4,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X10,0XE5,0X10,0XA4,0XCE,0X79,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X10,0XE5,
|
||||
0X18,0XE5,0X08,0X84,0X42,0X6B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5A,0XED,0X08,0X83,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X18,0XE5,0X00,0X63,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X31,0XE9,0X08,0XA4,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X10,0XE5,0X10,0XA4,0XCE,0X79,0XFF,0XFF,0XFF,0XFF,0XBD,0XD7,0X08,0X84,0X10,0XE5,
|
||||
0X18,0XE5,0X08,0X84,0X4A,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X5B,0X0D,0X08,0X83,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X18,0XE5,0X00,0X63,0X7B,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X39,0XE9,0X08,0XA4,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X10,0XE5,0X10,0XA4,0XD6,0XBA,0XFF,0XFF,0XFF,0XFF,0XC6,0X18,0X08,0X83,0X10,0XE5,
|
||||
0X10,0XE5,0X10,0XA4,0X29,0XA8,0XD6,0XBB,0XE7,0X3D,0XDE,0XFB,0X3A,0X09,0X08,0XA4,
|
||||
0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,
|
||||
0X10,0XE5,0X08,0X84,0X4A,0XAB,0XE7,0X1C,0XE7,0X3D,0XCE,0X59,0X21,0X46,0X10,0XC5,
|
||||
0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,
|
||||
0X10,0XE5,0X08,0X84,0X9C,0XF4,0XE7,0X3C,0XE7,0X3C,0X84,0X52,0X08,0X83,0X10,0XE5,
|
||||
const unsigned char gImage_mixer[2244] = { /* 34x33 RGB565 BE */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xD6,0x9A,0xFF,0xFF,0xD6,0x9A,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xD6,0x9A,0xFF,0xFF,0xD6,0x9A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0x9E,0xFF,0xFF,0xA5,0x14,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0x92,0xC6,0x18,
|
||||
0x94,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0x8A,
|
||||
0x84,0x10,0x52,0x8A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,
|
||||
0x42,0x08,0x42,0x08,0x42,0x08,0x42,0x08,0x42,0x08,0x31,0x86,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD6,0x9A,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x96,0xC6,0x18,
|
||||
0x94,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0xB5,0x96,0xC6,0x18,0xC6,0x18,0xC6,0x18,0xC6,0x18,0xC6,0x18,0x94,0x92,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x96,
|
||||
0xC6,0x18,0x94,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0x9E,
|
||||
0xFF,0xFF,0xD6,0x9A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x31,0x86,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD6,0x9A,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x31,0x86,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD6,0x9A,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xF7,0x9E,0xFF,0xFF,0xD6,0x9A,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x96,
|
||||
0xC6,0x18,0x94,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x96,0xC6,0x18,0xC6,0x18,0xC6,0x18,
|
||||
0xC6,0x18,0xC6,0x18,0x94,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xB5,0x96,0xC6,0x18,0xC6,0x18,0xC6,0x18,0xC6,0x18,0xC6,0x18,
|
||||
0x94,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xF7,0x9E,0xFF,0xFF,0xF7,0x9E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x8E,0x84,0x10,0x73,0x8E,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x73,0x8E,0x84,0x10,0x73,0x8E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x8E,0x84,0x10,0x52,0x8A,
|
||||
0x00,0x00,0x00,0x00,
|
||||
};
|
||||
|
||||
|
||||
|
||||
const unsigned char gImage_SystemSetting[3200] = { /* 0X10,0X10,0X00,0X28,0X00,0X28,0X01,0X1B, */
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X19,0X26,
|
||||
0X21,0X67,0X42,0X4B,0X52,0XCC,0X5B,0X0D,0X5A,0XED,0X52,0XAC,0X42,0X2A,0X19,0X26,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X19,0X26,0X21,0X67,
|
||||
0XD6,0XBB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X9C,0XD4,
|
||||
0X10,0XC5,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X10,0XA5,0X7B,0XF0,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,
|
||||
0X31,0XE9,0X19,0X06,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X19,0X26,0X19,0X26,0XDE,0XFB,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0X94,0XB3,0X08,0XA4,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X19,0X06,0X10,0XE5,
|
||||
0X19,0X26,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X08,0X84,0X6B,0X8F,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XEF,0X7D,0X29,0X88,0X18,0XE5,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X46,0X19,0X06,
|
||||
0X10,0XE5,0X19,0X26,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X10,0XC5,0X42,0X4A,0X52,0XAC,
|
||||
0X29,0X67,0X10,0XC5,0X08,0XA4,0X10,0XC5,0X08,0X84,0X39,0XE9,0XE7,0X3D,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XB5,0XB7,0X10,0XE5,0X08,0XA4,0X10,0XC5,0X08,0XA4,0X10,0XE5,0X31,0XC9,
|
||||
0X5A,0XED,0X29,0XA8,0X10,0XE5,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,0X21,0X47,
|
||||
0X21,0X46,0X21,0X46,0X21,0X46,0X21,0X47,0X08,0XA4,0X63,0X4E,0XFF,0XDF,0XFF,0XFF,
|
||||
0XE7,0X3C,0XB5,0XB7,0X84,0X31,0X6B,0X6E,0X8C,0X93,0XEF,0X7D,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XCE,0X7A,0X7B,0XF0,0X6B,0X8F,0X94,0XB3,0XC6,0X39,0XF7,0X9E,
|
||||
0XFF,0XFF,0XD6,0XDB,0X31,0XA8,0X10,0XE5,0X21,0X47,0X21,0X46,0X21,0X46,0X21,0X46,
|
||||
0X21,0X46,0X21,0X46,0X21,0X47,0X10,0XA4,0X52,0XCC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XD6,0XBB,0X21,0X47,0X19,0X06,0X21,0X46,0X21,0X46,0X21,0X46,
|
||||
0X21,0X46,0X21,0X46,0X10,0XE5,0X31,0XC9,0XEF,0X7E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBD,0XD8,0X10,0XC5,0X19,0X26,0X21,0X46,0X21,0X46,
|
||||
0X21,0X26,0X19,0X26,0X10,0XE5,0XC6,0X59,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7C,0X11,0X08,0XA4,0X21,0X46,0X21,0X26,
|
||||
0X21,0X26,0X10,0XC5,0X73,0XD0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XBE,0X31,0XE9,0X19,0X05,0X21,0X26,
|
||||
0X21,0X26,0X08,0XA4,0X8C,0X93,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X4A,0X6B,0X10,0XE5,0X21,0X26,
|
||||
0X19,0X26,0X18,0XE5,0X31,0XC9,0XF7,0X9E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XEF,0X7E,0XC6,0X39,0XAD,0X76,0XB5,0XB7,0XD6,0X9A,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XC5,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X08,0X84,0X94,0XB3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X3D,
|
||||
0X73,0XD0,0X29,0X88,0X10,0XC5,0X08,0XA4,0X08,0XA4,0X10,0XE5,0X3A,0X09,0X94,0XD4,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X4A,0X8B,0X10,0XC5,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X10,0XE5,0X31,0XC8,0XF7,0X9E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC6,0X18,0X29,0X87,
|
||||
0X08,0X84,0X19,0X05,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X10,0XE5,0X08,0X84,
|
||||
0X4A,0X8B,0XEF,0X5D,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X10,0XA4,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X08,0XA4,0XB5,0X97,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XCE,0X59,0X18,0XE5,0X10,0XC5,
|
||||
0X21,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X08,0X84,0X42,0X2A,0XF7,0X9E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X63,0X4E,0X08,0XA4,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X08,0X84,0X8C,0X93,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0X9E,0X31,0XC9,0X10,0XC5,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X00,0X63,0X7B,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X42,0X6B,0X10,0XC5,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X06,0X08,0X84,0XBE,0X18,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X94,0XB3,0X08,0X63,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X06,0X19,0X06,0XDF,0X1C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X73,0XAF,0X00,0X63,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X06,0X00,0X63,0X73,0XB0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X42,0X4A,0X10,0XC5,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X08,0X84,0X94,0XD4,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X3C,0X31,0XC8,0X08,0X84,0X19,0X26,0X19,0X26,
|
||||
0X10,0XE5,0X08,0XA4,0X84,0X31,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X5D,0X21,0X47,0X19,0X05,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X08,0XA4,0X6B,0X6E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X5D,0X4A,0X8B,0X00,0X63,0X19,0X06,
|
||||
0X19,0X26,0XB5,0XB7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDE,0XDB,0X19,0X06,0X19,0X06,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X08,0XA4,0X5A,0XED,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X7B,0XF1,0X10,0XC5,
|
||||
0XCE,0X7A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X3C,0X21,0X26,0X19,0X05,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,0X19,0X26,
|
||||
0X19,0X26,0X19,0X26,0X08,0XA4,0X63,0X4E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8C,0X93,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X3A,0X09,0X10,0XC5,0X19,0X06,0X19,0X06,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X06,0X19,0X26,0X08,0X84,0X8C,0X72,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XB5,0XD7,
|
||||
0XEF,0X5D,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7C,0X11,0X00,0X63,0X19,0X26,0X19,0X06,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X06,0X19,0X06,0X10,0XC5,0XCE,0X9A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X94,0XD3,
|
||||
0XB5,0XB7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X1C,0X19,0X06,0X10,0XE5,0X19,0X06,
|
||||
0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,
|
||||
0X19,0X26,0X08,0X83,0X5A,0XED,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X63,0X2E,
|
||||
0X7B,0XF0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XA5,0X35,0X00,0X63,0X18,0XE5,
|
||||
0X19,0X26,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X26,
|
||||
0X08,0XA4,0X21,0X46,0XDE,0XFC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X39,0XE9,
|
||||
0X42,0X4A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X94,0XB3,0X08,0XA4,
|
||||
0X08,0XA4,0X19,0X05,0X19,0X06,0X19,0X06,0X19,0X06,0X19,0X06,0X18,0XE5,0X00,0X63,
|
||||
0X21,0X47,0XCE,0X59,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X1C,0X18,0XE5,
|
||||
0X10,0XE5,0XE7,0X3C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0X18,
|
||||
0X42,0X4A,0X10,0XA4,0X00,0X63,0X08,0X83,0X08,0X83,0X08,0X63,0X10,0XE5,0X63,0X2D,
|
||||
0XE7,0X1C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X94,0XD4,0X08,0X83,
|
||||
0X10,0XC4,0X4A,0X8B,0XAD,0X76,0XD6,0XBB,0XF7,0XBE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XCE,0X59,0X94,0XD3,0X7B,0XF0,0X7C,0X11,0X9D,0X14,0XDE,0XDB,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X3D,0XC6,0X39,0X94,0XB3,0X21,0X46,0X10,0XE5,
|
||||
0X19,0X06,0X08,0XA4,0X08,0X84,0X10,0XE5,0X29,0XA8,0X5A,0XED,0XBD,0XF8,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XDF,0X8C,0X93,0X42,0X4A,0X21,0X26,0X08,0XA4,0X08,0X83,0X10,0XE5,0X19,0X06,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X18,0XE5,0X10,0XC5,0X08,0X83,0X00,0X63,0X9D,0X14,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,
|
||||
0X5A,0XED,0X00,0X22,0X08,0XA4,0X10,0XE5,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X10,0XC4,0X21,0X47,
|
||||
0XEF,0X7E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XB5,0XB7,
|
||||
0X00,0X63,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X08,0XA4,
|
||||
0XC6,0X59,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X84,0X31,
|
||||
0X00,0X63,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X18,0XE5,0X08,0XA4,
|
||||
0XC6,0X39,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X84,0X31,
|
||||
0X00,0X63,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X10,0XE5,0X10,0XC5,
|
||||
0XD6,0X9A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X84,0X31,
|
||||
0X00,0X63,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X10,0XE5,0X19,0X06,
|
||||
0XE7,0X3C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X8C,0X72,
|
||||
0X00,0X63,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,0X19,0X05,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X10,0XE5,0X08,0XA4,
|
||||
0XC6,0X39,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XBD,0XF8,0X7B,0XF0,0X8C,0X72,0XDE,0XFB,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X73,0XB0,
|
||||
0X00,0X63,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X10,0XC4,
|
||||
0X29,0X87,0XB5,0X96,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
|
||||
0XFF,0XDF,0X6B,0X6E,0X00,0X63,0X00,0X43,0X00,0X43,0X18,0XE5,0XA5,0X35,0XFF,0XFF,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0X9E,0X84,0X31,0X10,0XE5,
|
||||
0X10,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X19,0X05,
|
||||
0X08,0XA4,0X08,0X83,0X4A,0X8B,0XBD,0XD7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X3C,
|
||||
0X42,0X4A,0X00,0X43,0X10,0XE5,0X18,0XE5,0X19,0X05,0X10,0XC4,0X00,0X63,0X7B,0XF0,
|
||||
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XEF,0X7E,0X94,0XD4,0X29,0XA8,0X00,0X63,0X10,0XE5,
|
||||
0X19,0X05,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,0X18,0XE5,
|
||||
0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,
|
||||
0X18,0XE5,0X10,0XE5,0X08,0X83,0X08,0X83,0X31,0XC8,0X84,0X52,0X94,0XD4,0X21,0X67,
|
||||
0X00,0X63,0X18,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X18,0XE5,0X10,0XE5,0X00,0X43,
|
||||
0X4A,0X8B,0X9C,0XF4,0X6B,0X6E,0X21,0X46,0X00,0X63,0X08,0XA4,0X18,0XE5,0X10,0XE5,
|
||||
0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,0X10,0XE5,
|
||||
const unsigned char gImage_SystemSetting[2178] = { /* 33x33 RGB565 BE */
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0x63,0x0C,
|
||||
0x84,0x10,0x52,0x8A,0x42,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD6,0x9A,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x42,0x08,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC6,0x18,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x18,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x0C,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0x63,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x63,0x0C,0xF7,0x9E,0xFF,0xFF,0xE7,0x1C,0xA5,0x14,0x84,0x10,0xA5,0x14,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA5,0x14,0x84,0x10,0xA5,0x14,0xE7,0x1C,0xFF,0xFF,
|
||||
0xFF,0xFF,0x63,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x31,0x86,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xB5,0x96,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA5,0x14,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xC6,0x18,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x18,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA5,0x14,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xC6,0x18,0xC6,0x18,0xC6,0x18,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x84,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x84,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xF7,0x9E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA5,0x14,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,
|
||||
0x31,0x86,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x31,0x86,0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xA5,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x52,0x8A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0x42,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x42,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x84,0x10,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xA5,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC6,0x18,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x63,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x31,0x86,0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0x52,0x8A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x0C,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0x31,0x86,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x63,0x0C,0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x86,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0x52,0x8A,
|
||||
0x00,0x00,0x73,0x8E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0x94,0x92,0xE7,0x1C,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x31,0x86,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x84,0x10,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x94,0x92,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0xC6,0x18,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x18,0x94,0x92,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xD6,0x9A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xD6,0x9A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x84,0x10,0x42,0x08,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xD6,0x9A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xD6,0x9A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x31,0x86,0x00,0x00,
|
||||
0x94,0x92,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB5,0x96,0x84,0x10,0x42,0x08,
|
||||
0x84,0x10,0xB5,0x96,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x63,0x0C,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0x73,0x8E,0xE7,0x1C,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xD6,0x9A,0x63,0x0C,0x31,0x86,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD6,0x9A,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x52,0x8A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x52,0x8A,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x42,0x08,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x42,0x08,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x86,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x42,0x08,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC6,0x18,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x94,0x92,0x52,0x8A,0xA5,0x14,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x86,0xC6,0x18,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0x31,0x86,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x42,0x08,0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC6,0x18,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x42,0x08,0xA5,0x14,0xFF,0xFF,0xB5,0x96,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x86,0xB5,0x96,0xF7,0x9E,0xA5,0x14,0x42,0x08,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -208,10 +208,10 @@ void drv_nvm_load_default_calibration_static_value(NvmParam_Type * pData, uint8
|
|||
/* 手册:0=15 / 1=30 / 2=45 / 3=60 / 4=不自动;默认 15 分钟 */
|
||||
pData->param.AutoCloseTime = 0;
|
||||
pData->param.Transpose = 0;
|
||||
pData->param.BluetoothSW = 1; /* 出厂默认蓝牙开 */
|
||||
pData->param.Param1 = 0;
|
||||
pData->param.Param2 = 0;
|
||||
pData->param.Param3 = 0;
|
||||
//pData->param.Language = 0;
|
||||
}
|
||||
mGuiData[GUI_SPEED].Current = pData->param.BPM;
|
||||
mGuiData[GUI_TIMBRE_SELECT].Current = pData->param.Timbre;
|
||||
|
|
@ -223,6 +223,11 @@ void drv_nvm_load_default_calibration_static_value(NvmParam_Type * pData, uint8
|
|||
if (pData->param.AutoCloseTime > 4)
|
||||
pData->param.AutoCloseTime = 0;
|
||||
mGuiData_SystemSETTING[GUI_AUTOCLOSE].Current = pData->param.AutoCloseTime;
|
||||
/* 旧固件 Language 槽可能为 0xFF;非法值按默认开处理 */
|
||||
if (pData->param.BluetoothSW > 1)
|
||||
pData->param.BluetoothSW = 1;
|
||||
mGuiData_SystemSETTING[GUI_BLUETOOTH_SW].Current = pData->param.BluetoothSW;
|
||||
mGuiData[GUI_BL_SW].Current = pData->param.BluetoothSW;
|
||||
/* 开机/出厂:同步自动关机运行时秒表(手册 15/30/45/60/不自动) */
|
||||
AutoCloseFlag = true;
|
||||
switch (pData->param.AutoCloseTime)
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ typedef struct {
|
|||
uint8_t MicRev;
|
||||
uint8_t AutoCloseTime;
|
||||
uint8_t Transpose;
|
||||
uint8_t Language;
|
||||
uint8_t BluetoothSW; /* 0=关 1=开;复用原 Language 槽位,布局不变 */
|
||||
uint8_t Param1;
|
||||
uint8_t Param2;
|
||||
uint8_t Param3;
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@
|
|||
#define EXTFLASH_BIN1_RHYTHM_SIZE 530317UL
|
||||
|
||||
#define EXTFLASH_BIN2_SONG_HAITIAN_ADDR 0x0009D07DUL
|
||||
#define EXTFLASH_BIN2_SONG_HAITIAN_SIZE 46474UL
|
||||
#define EXTFLASH_BIN2_SONG_HAITIAN_SIZE 41263UL
|
||||
|
||||
#define EXTFLASH_BIN3_UNIVERSAL_ADDR 0x000A8607UL
|
||||
#define EXTFLASH_BIN3_UNIVERSAL_ADDR 0x000A71ACUL
|
||||
#define EXTFLASH_BIN3_UNIVERSAL_SIZE 31854UL
|
||||
|
||||
/* Convenience aliases used by UI ADDRESS */
|
||||
|
|
@ -35,8 +35,8 @@
|
|||
/* Legacy AutoBand bank — not repacked in 0903; left unchanged in firmware */
|
||||
#define FLASH_ADDR_AUTOBAND_LEGACY 0x0009EB5FUL
|
||||
|
||||
#define EXTFLASH_TONE_PACK_END 0x000B0275UL
|
||||
#define EXTFLASH_TONE_PACK_SIZE 721525UL
|
||||
#define EXTFLASH_TONE_PACK_END 0x000AEE1AUL
|
||||
#define EXTFLASH_TONE_PACK_SIZE 716314UL
|
||||
#define UI0902_RES_BASE_SAFE_GAP (0x00100000UL - EXTFLASH_TONE_PACK_END)
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -76,9 +76,9 @@
|
|||
#define UI0902_TXT_MODE_EXPERT_SEL_W 80
|
||||
#define UI0902_TXT_MODE_EXPERT_SEL_H 21
|
||||
|
||||
#define UI0902_ICON_SET_BLUETOOTH_ADDR (UI0902_RES_BASE + 0x048000UL) /* 2244 bytes */
|
||||
#define UI0902_ICON_SET_BLUETOOTH_W 34
|
||||
#define UI0902_ICON_SET_BLUETOOTH_H 33
|
||||
#define UI0902_ICON_SET_BLUETOOTH_ADDR (UI0902_RES_BASE + 0x048000UL) /* 546 bytes */
|
||||
#define UI0902_ICON_SET_BLUETOOTH_W 13
|
||||
#define UI0902_ICON_SET_BLUETOOTH_H 21
|
||||
|
||||
#define UI0902_ICON_SET_GEAR_ADDR (UI0902_RES_BASE + 0x049000UL) /* 2244 bytes */
|
||||
#define UI0902_ICON_SET_GEAR_W 33
|
||||
|
|
@ -100,17 +100,17 @@
|
|||
#define UI0902_ICON_SYS_LANG_W 20
|
||||
#define UI0902_ICON_SYS_LANG_H 19
|
||||
|
||||
#define UI0902_ICON_SYS_RESTORE_ADDR (UI0902_RES_BASE + 0x052000UL) /* 546 bytes */
|
||||
#define UI0902_ICON_SYS_RESTORE_W 13
|
||||
#define UI0902_ICON_SYS_RESTORE_H 21
|
||||
#define UI0902_ICON_SYS_RESTORE_ADDR (UI0902_RES_BASE + 0x052000UL) /* 684 bytes */
|
||||
#define UI0902_ICON_SYS_RESTORE_W 19
|
||||
#define UI0902_ICON_SYS_RESTORE_H 18
|
||||
|
||||
#define UI0902_ICON_SYS_ABOUT_ADDR (UI0902_RES_BASE + 0x053000UL) /* 756 bytes */
|
||||
#define UI0902_ICON_SYS_ABOUT_W 18
|
||||
#define UI0902_ICON_SYS_ABOUT_H 21
|
||||
|
||||
#define UI0902_ICON_SYS_VERSION_ADDR (UI0902_RES_BASE + 0x054000UL) /* 684 bytes */
|
||||
#define UI0902_ICON_SYS_VERSION_W 19
|
||||
#define UI0902_ICON_SYS_VERSION_H 18
|
||||
#define UI0902_ICON_SYS_VERSION_ADDR (UI0902_RES_BASE + 0x054000UL) /* 760 bytes */
|
||||
#define UI0902_ICON_SYS_VERSION_W 20
|
||||
#define UI0902_ICON_SYS_VERSION_H 19
|
||||
|
||||
#define UI0902_TXT_SET_LANG_ADDR (UI0902_RES_BASE + 0x055000UL) /* 1326 bytes */
|
||||
#define UI0902_TXT_SET_LANG_W 51
|
||||
|
|
@ -284,7 +284,11 @@
|
|||
#define UI0902_CHARGE_SCREEN_W 240
|
||||
#define UI0902_CHARGE_SCREEN_H 320
|
||||
|
||||
#define UI0902_BTN_CANCEL_BIG_ADDR (UI0902_RES_BASE + 0x0D2000UL) /* 11872 bytes */
|
||||
#define UI0902_FLASH_MODE_ADDR (UI0902_RES_BASE + 0x0D2000UL) /* 153600 bytes */
|
||||
#define UI0902_FLASH_MODE_W 240
|
||||
#define UI0902_FLASH_MODE_H 320
|
||||
|
||||
#define UI0902_BTN_CANCEL_BIG_ADDR (UI0902_RES_BASE + 0x0F8000UL) /* 11872 bytes */
|
||||
#define UI0902_BTN_CANCEL_BIG_W 106
|
||||
#define UI0902_BTN_CANCEL_BIG_H 56
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Please modify RT_HEAP_SIZE if you enable RT_USING_HEAP
|
||||
* the RT_HEAP_SIZE max value = (sram size - ZI size), 1024 means 1024 bytes
|
||||
*/
|
||||
#define RT_HEAP_SIZE (20*1024)
|
||||
#define RT_HEAP_SIZE (19*1024) /* 20KB-1KB to fit 41KB preset buffer in 96KB RAM */
|
||||
static rt_uint8_t rt_heap[RT_HEAP_SIZE];
|
||||
|
||||
RT_WEAK void *rt_heap_begin_get(void)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,60 @@
|
|||
import subprocess, shutil, os, time
|
||||
|
||||
base = os.path.join(r"C:\Users\qjyu\Documents\SoundWalker", "一诺国际吉他",
|
||||
r"Code\YNGJ-GT1-M - AT32F403ARCT7")
|
||||
stage = r"C:\Temp\k1flash"
|
||||
os.makedirs(stage, exist_ok=True)
|
||||
|
||||
out_src = os.path.join(base, r"project\IAR_V7.4\YNGJ-GT1-M\Exe\YNGJ-GT1-M.out")
|
||||
out_dst = os.path.join(stage, "YNGJ-GT1-M.out")
|
||||
with open(out_src, "rb") as a, open(out_dst, "wb") as b:
|
||||
shutil.copyfileobj(a, b)
|
||||
print("copied", os.path.getsize(out_dst), flush=True)
|
||||
|
||||
gen_src = os.path.join(base, r"project\IAR_V7.4\settings\YNGJ-GT1-M.YNGJ-GT1-M.general.xcl")
|
||||
drv_src = os.path.join(base, r"project\IAR_V7.4\settings\YNGJ-GT1-M.YNGJ-GT1-M.driver.xcl")
|
||||
lines = open(gen_src, encoding="utf-8", errors="replace").read().splitlines()
|
||||
new = []
|
||||
for ln in lines:
|
||||
new.append(f'"{out_dst}" ' if (".out" in ln and "YNGJ" in ln) else ln)
|
||||
open(os.path.join(stage, "general.xcl"), "w", encoding="utf-8", newline="\n").write("\n".join(new) + "\n")
|
||||
shutil.copy2(drv_src, os.path.join(stage, "driver.xcl"))
|
||||
|
||||
for n in ("cspybat.exe", "CSpyBat.exe", "JLink.exe", "IarIdePm.exe",
|
||||
"JLinkGUIServer.exe", "JLinkRTTClient.exe", "JFlash.exe"):
|
||||
subprocess.run(["taskkill", "/F", "/IM", n], capture_output=True)
|
||||
time.sleep(1.5)
|
||||
|
||||
# Force Artery AT32F403ACx (RCT7) — avoid Cortex-M4 / wrong-chip popup
|
||||
drv_path = os.path.join(stage, "driver.xcl")
|
||||
drv_lines = open(drv_path, encoding="utf-8", errors="replace").read().splitlines()
|
||||
forced = []
|
||||
for ln in drv_lines:
|
||||
if ln.strip().startswith("--jlink_device"):
|
||||
continue
|
||||
forced.append(ln)
|
||||
forced.append('--jlink_device=AT32F403AC')
|
||||
open(drv_path, "w", encoding="utf-8", newline="\n").write("\n".join(forced) + "\n")
|
||||
print("driver device forced: AT32F403AC", flush=True)
|
||||
|
||||
cspy = r"C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.3\common\bin\cspybat.exe"
|
||||
cmd = [cspy, "-f", os.path.join(stage, "general.xcl"),
|
||||
f"--debug_file={out_dst}", "--download_only", "--backend",
|
||||
"-f", drv_path]
|
||||
logp = os.path.join(stage, "cspy.log")
|
||||
print("cspybat start (AT32F403AC / FlashAT32F403ARCT7)", flush=True)
|
||||
with open(logp, "w", encoding="utf-8", errors="replace") as log:
|
||||
r = subprocess.run(cmd, stdout=log, stderr=subprocess.STDOUT, timeout=180)
|
||||
print("cspy exit", r.returncode, flush=True)
|
||||
print(open(logp, encoding="utf-8", errors="replace").read()[-2000:])
|
||||
if r.returncode != 0:
|
||||
raise SystemExit(r.returncode)
|
||||
|
||||
jlink = r"C:\Program Files\SEGGER\JLink_V818\JLink.exe"
|
||||
reset = os.path.join(base, r"tools\reset_run.jlink")
|
||||
print("reset AT32F403AC", flush=True)
|
||||
subprocess.run([jlink, "-Device", "AT32F403AC", "-If", "SWD",
|
||||
"-Speed", "4000", "-AutoConnect", "1",
|
||||
"-CommandFile", reset], capture_output=True, timeout=30)
|
||||
time.sleep(3)
|
||||
print("Done", flush=True)
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
gImage_mixer 34x33
|
||||
gImage_SystemSetting 33x33
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 415 B |
Binary file not shown.
|
After Width: | Height: | Size: 550 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
|
|
@ -0,0 +1,186 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Flash Doc/音色文件/0907/2.res (or --bin) to W25Q128 @ FLASH_ADDR_SONG_HAITIAN via RTT."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
DEFAULT_DEVICES = ("Cortex-M4", "AT32F403AC", "AT32F403A")
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
REPO = os.path.dirname(os.path.dirname(ROOT))
|
||||
DEFAULT_BIN = os.path.join(REPO, "Doc", "音色文件", "0907", "2.res")
|
||||
FLASH_ADDR_SONG_HAITIAN = 0x0009D07D
|
||||
|
||||
|
||||
def connect_jlink(device: str):
|
||||
import pylink
|
||||
|
||||
jlink = pylink.JLink()
|
||||
jlink.open()
|
||||
try:
|
||||
jlink.exec_command("HideDeviceSelection = 1")
|
||||
except Exception:
|
||||
pass
|
||||
jlink.set_tif(pylink.enums.JLinkInterfaces.SWD)
|
||||
|
||||
last_error = None
|
||||
for candidate in (device, *DEFAULT_DEVICES):
|
||||
try:
|
||||
try:
|
||||
jlink.exec_command(f"Device = {candidate}")
|
||||
except Exception:
|
||||
pass
|
||||
jlink.connect(candidate)
|
||||
print(f"Connected as {candidate}")
|
||||
return jlink
|
||||
except Exception as exc:
|
||||
last_error = exc
|
||||
jlink.close()
|
||||
raise SystemExit(f"Failed to connect J-Link: {last_error}")
|
||||
|
||||
|
||||
def find_rtt_control_block(jlink, ram_base: int = 0x20000000, ram_size: int = 0x18000):
|
||||
needle = b"SEGGER RTT"
|
||||
chunk = 0x1000
|
||||
was_halted = jlink.halted()
|
||||
if not was_halted:
|
||||
jlink.halt()
|
||||
try:
|
||||
for off in range(0, ram_size, chunk):
|
||||
data = bytes(jlink.memory_read8(ram_base + off, min(chunk, ram_size - off)))
|
||||
idx = data.find(needle)
|
||||
if idx >= 0:
|
||||
return ram_base + off + idx
|
||||
finally:
|
||||
if not was_halted:
|
||||
if hasattr(jlink, "restart"):
|
||||
jlink.restart()
|
||||
else:
|
||||
jlink.go()
|
||||
time.sleep(0.1)
|
||||
return None
|
||||
|
||||
|
||||
def rtt_read_text(jlink, timeout_s: float = 0.2) -> str:
|
||||
deadline = time.time() + timeout_s
|
||||
chunks: list[bytes] = []
|
||||
while time.time() < deadline:
|
||||
try:
|
||||
data = bytes(jlink.rtt_read(0, 512) or [])
|
||||
except Exception:
|
||||
data = b""
|
||||
if data:
|
||||
chunks.append(data)
|
||||
deadline = time.time() + timeout_s
|
||||
else:
|
||||
time.sleep(0.02)
|
||||
return b"".join(chunks).decode("ascii", errors="replace")
|
||||
|
||||
|
||||
def wait_for(jlink, marker: str, timeout_s: float = 30.0) -> str:
|
||||
deadline = time.time() + timeout_s
|
||||
buf = ""
|
||||
while time.time() < deadline:
|
||||
buf += rtt_read_text(jlink, 0.15)
|
||||
if marker in buf:
|
||||
return buf
|
||||
raise SystemExit(f"Timeout waiting for {marker!r}\n--- RTT ---\n{buf[-800:]}")
|
||||
|
||||
|
||||
def send_bytes(jlink, payload: bytes) -> None:
|
||||
off = 0
|
||||
while off < len(payload):
|
||||
try:
|
||||
n = jlink.rtt_write(0, list(payload[off : off + 64]))
|
||||
except Exception:
|
||||
time.sleep(0.05)
|
||||
continue
|
||||
if n is None or n <= 0:
|
||||
time.sleep(0.02)
|
||||
continue
|
||||
off += n
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--bin", default=DEFAULT_BIN)
|
||||
parser.add_argument("--device", default="Cortex-M4")
|
||||
parser.add_argument("--no-reset", action="store_true")
|
||||
args = parser.parse_args()
|
||||
|
||||
if not os.path.isfile(args.bin):
|
||||
raise SystemExit(f"missing bin: {args.bin}")
|
||||
|
||||
data = open(args.bin, "rb").read()
|
||||
size = len(data)
|
||||
print(f"bin={args.bin} size={size} addr=0x{FLASH_ADDR_SONG_HAITIAN:08X}")
|
||||
|
||||
jlink = connect_jlink(args.device)
|
||||
try:
|
||||
cb = find_rtt_control_block(jlink)
|
||||
if cb is None:
|
||||
raise SystemExit("RTT control block not found")
|
||||
print(f"RTT CB @ 0x{cb:08X}")
|
||||
jlink.rtt_start(cb)
|
||||
time.sleep(0.3)
|
||||
_ = rtt_read_text(jlink, 0.3)
|
||||
|
||||
if not args.no_reset:
|
||||
print("hardware reset...")
|
||||
jlink.reset(halt=False)
|
||||
time.sleep(3.5)
|
||||
try:
|
||||
jlink.rtt_stop()
|
||||
except Exception:
|
||||
pass
|
||||
cb = find_rtt_control_block(jlink)
|
||||
if cb is None:
|
||||
raise SystemExit("RTT CB missing after reset")
|
||||
print(f"RTT CB @ 0x{cb:08X}")
|
||||
jlink.rtt_start(cb)
|
||||
time.sleep(0.5)
|
||||
_ = rtt_read_text(jlink, 0.5)
|
||||
|
||||
cmd = f"flash haitian {size}\n".encode("ascii")
|
||||
send_bytes(jlink, cmd)
|
||||
print("sent flash command, waiting GO...")
|
||||
log = wait_for(jlink, "FLASH_HAITIAN_GO", 20.0)
|
||||
print(log.strip().splitlines()[-1])
|
||||
time.sleep(0.2)
|
||||
|
||||
chunk = 256
|
||||
sent = 0
|
||||
t0 = time.time()
|
||||
receiving = False
|
||||
while sent < size:
|
||||
end = min(sent + chunk, size)
|
||||
send_bytes(jlink, data[sent:end])
|
||||
sent = end
|
||||
log = wait_for(jlink, "FLASH_ACK", 60.0)
|
||||
if (not receiving) and ("FLASH_RX" in log or "FLASH_ACK" in log):
|
||||
receiving = True
|
||||
print("device receiving...")
|
||||
if "FLASH_HAITIAN_OK" in log:
|
||||
print(log.strip().splitlines()[-1])
|
||||
print("Done. Local song bank updated.")
|
||||
return
|
||||
if sent % (4 * 1024) == 0 or sent == size:
|
||||
elapsed = time.time() - t0
|
||||
print(f" {sent}/{size} ({100.0 * sent / size:.1f}%) {elapsed:.1f}s")
|
||||
|
||||
log = wait_for(jlink, "FLASH_HAITIAN_OK", 60.0)
|
||||
print(log.strip().splitlines()[-1])
|
||||
print("Done. Local song bank updated.")
|
||||
finally:
|
||||
try:
|
||||
jlink.rtt_stop()
|
||||
except Exception:
|
||||
pass
|
||||
jlink.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
@ -42,9 +42,13 @@ def rgba_to_rgb565(im):
|
|||
for y in range(h):
|
||||
for x in range(w):
|
||||
r, g, b, a = px[x, y]
|
||||
# 低透明 / 近黑 / 列表行底 #242B3A → 透明(焦点蓝底上避免黑块)
|
||||
if a < 40 or (r < 12 and g < 12 and b < 12):
|
||||
out[i] = 0
|
||||
out[i + 1] = 0
|
||||
elif abs(r - ROW_BG[0]) <= 18 and abs(g - ROW_BG[1]) <= 18 and abs(b - ROW_BG[2]) <= 18:
|
||||
out[i] = 0
|
||||
out[i + 1] = 0
|
||||
else:
|
||||
r = (r * a) // 255
|
||||
g = (g * a) // 255
|
||||
|
|
@ -158,15 +162,16 @@ EXTERNAL = [
|
|||
("TXT_MODE_NORMAL_SEL", "04_模式图标/完整版/文字/模式选择文字-13.png"),
|
||||
("TXT_MODE_EXPERT_NOT", "04_模式图标/完整版/文字/模式选择文字-14.png"),
|
||||
("TXT_MODE_EXPERT_SEL", "04_模式图标/完整版/文字/模式选择文字-15.png"),
|
||||
("ICON_SET_BLUETOOTH", "05_设置图标/设置图标-01.png"),
|
||||
# BT rune / gear / chevron / restore CCW / power
|
||||
("ICON_SET_BLUETOOTH", "06_控件/系统设置/系统设置图标-11.png"),
|
||||
("ICON_SET_GEAR", "05_设置图标/设置图标-02.png"),
|
||||
("ICON_CHEVRON", "05_设置图标/设置图标-03.png"),
|
||||
("ROW_SET_BLUETOOTH", "05_设置图标/设置图标 完整-10.png"),
|
||||
("ROW_SET_SYSTEM", "05_设置图标/设置图标 完整-11.png"),
|
||||
("ICON_SYS_LANG", "06_控件/系统设置/系统设置图标-10.png"),
|
||||
("ICON_SYS_RESTORE", "06_控件/系统设置/系统设置图标-11.png"),
|
||||
("ICON_SYS_RESTORE", "06_控件/系统设置/系统设置图标-13.png"),
|
||||
("ICON_SYS_ABOUT", "06_控件/系统设置/系统设置图标-12.png"),
|
||||
("ICON_SYS_VERSION", "06_控件/系统设置/系统设置图标-13.png"),
|
||||
("ICON_SYS_VERSION", "06_控件/系统设置/系统设置图标-10.png"),
|
||||
("TXT_SET_LANG", "06_控件/系统设置/文字/设置界面文字-14.png"),
|
||||
("TXT_SET_RESTORE", "06_控件/系统设置/文字/设置界面文字-15.png"),
|
||||
("TXT_SET_ABOUT", "06_控件/系统设置/文字/设置界面文字-16.png"),
|
||||
|
|
@ -209,9 +214,10 @@ EXTERNAL = [
|
|||
("TXT_RESTORE_V2", "06_控件/文字/文字-25.png"),
|
||||
("TXT_RESTORE_H", "06_控件/文字/文字-26.png"),
|
||||
("TXT_RESTORE_CONFIRM", "06_控件/文字/文字-27.png"),
|
||||
# 整屏开机 Logo / 充电画面(避开旧 0x0 / Charg.bin 0xCB70 区,挂在 ui0902 资源包)
|
||||
# 整屏开机 Logo / 充电画面 / 烧录模式(避开旧 0x0 / Charg.bin 0xCB70 区,挂在 ui0902 资源包)
|
||||
("BOOT_LOGO", "07_开机/开机界面-20.png"),
|
||||
("CHARGE_SCREEN", "08_充电界面/充电界面-0902-09.png"), # 0904 最新全屏充电稿;百分比重叠由固件绘制
|
||||
("FLASH_MODE", "09_烧录模式/烧录模式-240x320.png"), # Boot IAP 烧录等待画面
|
||||
]
|
||||
|
||||
|
||||
|
|
@ -261,7 +267,7 @@ def main():
|
|||
if name in ("ROW_UNIVERSAL_NOT", "ROW_UNIVERSAL_SEL", "ROW_NORMAL_NOT", "ROW_NORMAL_SEL", "ROW_EXPERT_NOT", "ROW_EXPERT_SEL"):
|
||||
im = im.resize(ROW_RESIZE, Image.LANCZOS)
|
||||
data, w, h = rgba_to_rgb565(im)
|
||||
elif name in ("BOOT_LOGO", "CHARGE_SCREEN"):
|
||||
elif name in ("BOOT_LOGO", "CHARGE_SCREEN", "FLASH_MODE"):
|
||||
if im.size[0] >= 241 and im.size[1] >= 321:
|
||||
im = im.crop((0, 0, 240, 320))
|
||||
elif im.size != (240, 320):
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ MAP_TXT = REPO / "Doc" / "音色文件" / "0903" / "FLASH_MAP.txt"
|
|||
IAP_DIR = REPO / "升级" / "MCU主控升级"
|
||||
OUT_ROOT = REPO / "tools" / "out"
|
||||
|
||||
FW_VER = "0.2.1"
|
||||
FW_VER = "0.2.6"
|
||||
TONE_RES_VER = "0903"
|
||||
UI0902_RES_BASE = 0x00100000
|
||||
|
||||
|
|
@ -87,18 +87,12 @@ def main() -> None:
|
|||
combined = build_combined_extflash(tone_data, ui_data)
|
||||
|
||||
mcu_name = f"YNGJ-GT1-M_MCU_v{FW_VER}_{stamp}.bin"
|
||||
tone_name = f"extflash_toneRes_v{TONE_RES_VER}_{stamp}.res"
|
||||
ui_name = f"extflash_ui0902_{stamp}.res"
|
||||
comb_name = f"extflash_ALL_tone0903_ui0902_{stamp}.res"
|
||||
|
||||
mcu_dst = pkg / mcu_name
|
||||
tone_dst = pkg / tone_name
|
||||
ui_dst = pkg / ui_name
|
||||
comb_dst = pkg / comb_name
|
||||
|
||||
shutil.copy2(EXE_BIN, mcu_dst)
|
||||
tone_dst.write_bytes(tone_data)
|
||||
ui_dst.write_bytes(ui_data)
|
||||
comb_dst.write_bytes(combined)
|
||||
shutil.copy2(iap, pkg / "SoundWalkerIAP.exe")
|
||||
shutil.copy2(guide, pkg / "升级步骤.docx")
|
||||
|
|
@ -106,9 +100,10 @@ def main() -> None:
|
|||
shutil.copy2(MAP_TXT, pkg / "FLASH_MAP.txt")
|
||||
|
||||
shutil.copy2(mcu_dst, OUT_ROOT / mcu_name)
|
||||
shutil.copy2(tone_dst, OUT_ROOT / "extflash_tone_0903.res")
|
||||
shutil.copy2(ui_dst, OUT_ROOT / "extflash_ui0902.res")
|
||||
shutil.copy2(comb_dst, OUT_ROOT / "extflash_ALL_tone0903_ui0902.res")
|
||||
# Keep build intermediates under tools/out for local rebuilds; not shipped in package.
|
||||
(OUT_ROOT / "extflash_tone_0903.res").write_bytes(tone_data)
|
||||
(OUT_ROOT / "extflash_ui0902.res").write_bytes(ui_data)
|
||||
|
||||
readme = pkg / "README.txt"
|
||||
readme.write_text(
|
||||
|
|
@ -120,29 +115,26 @@ def main() -> None:
|
|||
f"Git subject {subject}",
|
||||
f"FW version {FW_VER}",
|
||||
"",
|
||||
"==== 同事整机升级请优先刷这两项 ====",
|
||||
"==== 整机升级请刷这两项 ====",
|
||||
f" 1) {mcu_name} -> MCU APP",
|
||||
f" 2) {comb_name} -> 外部 Flash 从 0x0 起整包",
|
||||
" (= 音色区 + 填充 + UI0902 图片区)",
|
||||
"",
|
||||
"建议步骤:",
|
||||
" - 先整片擦除外部 Flash,再刷上述 ALL .res @ 0x00000000",
|
||||
" - 勿只刷音色区,否则模式选择页会花屏(UI 图在 0x100000)",
|
||||
"",
|
||||
"外部 Flash 分区:",
|
||||
" 0x00000000 音色/充电图 (toneRes)",
|
||||
" logo pad + Charg@0xCB70 + 1.bin@0x1B8F0 + 2.bin + 3.bin",
|
||||
" 0x00100000 UI0902 图片 (模式选择大图、全屏开机 Logo、设置/调音台素材等)",
|
||||
" logo pad + Charg@0xCB70 + 1.bin@0x1B8F0 + 2.bin(HKTK/2s) + 3.bin",
|
||||
" 0x00100000 UI0902 图片 (模式选择、开机 Logo、充电、烧录模式、设置/调音台等)",
|
||||
"",
|
||||
"分文件(仅在工具支持指定偏移时使用):",
|
||||
f" {tone_name} size={tone_dst.stat().st_size} @ 0x00000000",
|
||||
f" sha256={sha256(tone_dst)}",
|
||||
f" {ui_name} size={ui_dst.stat().st_size} @ 0x00100000",
|
||||
f" sha256={sha256(ui_dst)}",
|
||||
f" {comb_name} size={comb_dst.stat().st_size} @ 0x00000000 (推荐)",
|
||||
f" {comb_name} size={comb_dst.stat().st_size} @ 0x00000000",
|
||||
f" sha256={sha256(comb_dst)}",
|
||||
"",
|
||||
f"MCU: {mcu_name} size={mcu_dst.stat().st_size} sha256={sha256(mcu_dst)}",
|
||||
"",
|
||||
"说明:",
|
||||
" - 只刷音色 .res、不刷 UI0902 时,模式选择页会花屏(读图地址在 0x100000)。",
|
||||
" - 本机开发板若早已刷过 UI0902,只更新音色+MCU 仍可能正常;同事空片/整片擦除会中招。",
|
||||
" - 开机全屏 Logo、关机充电全屏画面在 UI0902,不在音色包里的 logo.bin/Charg.bin 占位。",
|
||||
" - AutoBand 0x9EB5F 本版未重排。",
|
||||
"",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
HideDeviceSelection 1
|
||||
si SWD
|
||||
speed 4000
|
||||
device Cortex-M4
|
||||
|
|
|
|||
Loading…
Reference in New Issue