From 4904c3d84f0d4351653f909c90b455d8c5e0dae3 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 14 May 2024 17:19:16 +0800 Subject: [PATCH] update --- app/src/app_basic_service/basic/state.h | 3 + .../app_service/display_ctrl_service/display_mgr.c | 189 +++----------- .../app_service/display_ctrl_service/display_mgr.h | 2 +- app/src/app_service/display_ctrl_service/font.h | 283 +++++++++++---------- app/src/app_service/ecg_service/ecg_algo.c | 21 +- app/src/app_service/ecg_service/ecg_algo.h | 5 +- app/src/app_service/ecg_service/ecg_service.c | 78 +----- app/src/app_service/ecg_service/ecg_service.h | 2 - app/src/one_conduction_main.c | 21 +- screen_res/font/data/config/FontsCfg.table | 2 +- screen_res/font/data/config/array2ImgFrom.table | 10 +- screen_res/font/data/config/arrayCfg.table | 2 +- screen_res/font/data/config/arrayCfgFrom.table | 6 +- 13 files changed, 239 insertions(+), 385 deletions(-) diff --git a/app/src/app_basic_service/basic/state.h b/app/src/app_basic_service/basic/state.h index f08d3e1..25b95d4 100644 --- a/app/src/app_basic_service/basic/state.h +++ b/app/src/app_basic_service/basic/state.h @@ -8,6 +8,7 @@ typedef enum { kstate_welcomPage, kstate_mainPage, kstate_capture, + kstate_capture_end, kstate_prepare_capture, kstate_charging, kstate_test, @@ -23,6 +24,8 @@ static const char* device_state_to_str(device_state_t ds) { return "kstate_mainPage"; case kstate_capture: return "kstate_capture"; + case kstate_capture_end: + return "kstate_capture_end"; case kstate_prepare_capture: return "kstate_prepare_capture"; case kstate_charging: diff --git a/app/src/app_service/display_ctrl_service/display_mgr.c b/app/src/app_service/display_ctrl_service/display_mgr.c index 08fc40d..70063da 100644 --- a/app/src/app_service/display_ctrl_service/display_mgr.c +++ b/app/src/app_service/display_ctrl_service/display_mgr.c @@ -147,34 +147,9 @@ static void page_main_tmr_cb() { page_main_load(); } /*********************************************************************************************************************** * ²ÉÑùÒ³Ãæ * ***********************************************************************************************************************/ -#define SMAPLE_PAGE_START_X 1 -#define SMAPLE_PAGE_START_Y 1 -typedef struct { - wave_drawer_t wave_drawer; - - int wave_drawser_x; - int wave_drawser_y; - int wave_drawser_hight; - int wave_drawser_width; - - int progress_x; - int progress_y; - - int progress_width; - int progress_hight; +static bool page_sampling__inErrorPage; - int heartrate_x; - int heartrate_y; - - bool in_error_page; -} sample_page_state_t; -sample_page_state_t m_sample_page_state; - -static void page_sampling_show_error_info() { - if (m_sample_page_state.in_error_page) { - return; - } - m_sample_page_state.in_error_page = true; +static void page_sampling_show_error() { ssd1306_basic_clear_gram(); uint8_t x = 0; uint8_t y = 0; @@ -186,146 +161,43 @@ static void page_sampling_show_error_info() { ssd1306_basic_draw_str(x, y, &xchange, &ychange, "·ÅÉÏË«ÊÖ", &font24x24_zh_lib); ssd1306_basic_gram_update(); + page_sampling__inErrorPage = true; } -static void page_sampling_load() { - m_sample_page_state.in_error_page = false; - sample_page_state_t* sps = &m_sample_page_state; - - sps->progress_x = SMAPLE_PAGE_START_X + 10; - sps->progress_y = SMAPLE_PAGE_START_Y + 3; - sps->progress_width = 100; - sps->progress_hight = 8; - - sps->wave_drawser_x = SMAPLE_PAGE_START_X + 5; - sps->wave_drawser_y = SMAPLE_PAGE_START_Y + sps->progress_hight + 5; - sps->wave_drawser_hight = 45; - sps->wave_drawser_width = 85; +static void page_sampling_show_normal() { + ssd1306_basic_clear_gram(); + uint8_t x = 0; + uint8_t y = 0; + uint8_t xchange, ychange; - sps->heartrate_x = sps->wave_drawser_x + sps->wave_drawser_width + 1; - sps->heartrate_y = sps->wave_drawser_y + 5; + x = compute_x_pos_by_center(SCREEN_CENTER_X, font24x24_zh_lib.widthPixel * 4); + y = compute_y_pos_by_center(SCREEN_CENTER_Y, font24x24_zh_lib.heightPixel); - int progress = 0 / SAMPLE_MIN_TIME_S * 25; - uint8_t xchange, ychange; + ssd1306_basic_draw_str(x, y, &xchange, &ychange, "²ÉÑùÖÐ", &font24x24_zh_lib); - ssd1306_basic_clear_gram(); - /** - * @brief - * ================= - * | | ÐÄ - * | wave | - * | | ÐÄÂÊ - */ - ssd1306_basic_draw_progress(sps->progress_x, sps->progress_y, sps->progress_width, sps->progress_hight, 25, progress); - // ssd1306_basic_draw_str(sps->progress_x + sps->progress_width + 2, sps->progress_y, &xchange, &ychange, "x", &font8x8_xo_lib); - - wave_drawer_init(&sps->wave_drawer, sps->wave_drawser_x, sps->wave_drawser_y, sps->wave_drawser_width, sps->wave_drawser_hight); - // wave_drawer_draw_border(&sps->wave_drawer); - - ssd1306_basic_draw_str(sps->heartrate_x + 2, sps->heartrate_y, &xchange, &ychange, "<>", &font_asicc16x8_lib); - ssd1306_basic_draw_str(sps->heartrate_x + 4, sps->heartrate_y + 20, &xchange, &ychange, "-- ", &font_asicc16x8_lib); ssd1306_basic_gram_update(); + page_sampling__inErrorPage = false; } -void samplePage_update_state(int progress_s, int wave_y, bool leadoff, int heartrate, bool updateHeart, bool update_screen) { // - - m_sample_page_state.in_error_page = false; - sample_page_state_t* sps = &m_sample_page_state; - uint8_t xchange, ychange; - static bool heart_logo_state = false; - - int progress = progress_s / SAMPLE_MIN_TIME_S * 25; - - ssd1306_basic_draw_progress(sps->progress_x, sps->progress_y, sps->progress_width, sps->progress_hight, 25, progress); - if (update_screen && updateHeart) { - if (heart_logo_state) { - if (!leadoff) { - ssd1306_basic_draw_str(sps->heartrate_x + 2, sps->heartrate_y, &xchange, &ychange, "<>", &font_asicc16x8_lib); - } else { - ssd1306_basic_draw_str(sps->heartrate_x + 2 + 4, sps->heartrate_y, &xchange, &ychange, "E ", &font_asicc16x8_lib); - } - - } else { - ssd1306_basic_draw_str(sps->heartrate_x + 2, sps->heartrate_y, &xchange, &ychange, " ", &font_asicc16x8_lib); - } - heart_logo_state = !heart_logo_state; - } +// - if (heartrate <= 0) { - ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y + 20, &xchange, &ychange, " ", &font_asicc16x8_lib); - ssd1306_basic_draw_str(sps->heartrate_x + 4, sps->heartrate_y + 20, &xchange, &ychange, "-- ", &font_asicc16x8_lib); - } else { - if (heartrate >= 100) { - ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y + 20, &xchange, &ychange, " ", &font_asicc16x8_lib); - ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y + 20, &xchange, &ychange, fmt("%d", heartrate), &font_asicc16x8_lib); - } else { - ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y + 20, &xchange, &ychange, " ", &font_asicc16x8_lib); - ssd1306_basic_draw_str(sps->heartrate_x + 4, sps->heartrate_y + 20, &xchange, &ychange, fmt("%d", heartrate), &font_asicc16x8_lib); - } - } - wave_drawer_draw_next_point(&sps->wave_drawer, wave_y); - if (update_screen) ssd1306_basic_gram_update(); -} +static void page_sampling_load() { page_sampling_show_normal(); } static void page_sampling_unload() {} -static uint32_t page_sampling_get_scheduler_period() { return 20; } +static uint32_t page_sampling_get_scheduler_period() { return 300; } static void page_sampling_tmr_cb() { - static int count = 0; - count++; - int capturetime = ecg_service_has_captured_time(); - int wave_y = (int)ecg_service_get_display_val(); - int heartrate = (int)ecg_service_get_heart_rate(); - bool leadoff = ecg_leadoff_detect(); - if (leadoff) { - wave_y = 50; - heartrate = 0; - } - - if (leadoff) { - if (!m_sample_page_state.in_error_page) { - beep_set_effect(LEAD_OFF_EFFECT); - page_sampling_show_error_info(); + if (page_sampling__inErrorPage) { + if (!ecg_leadoff_detect()) { + page_sampling_show_normal(); } } else { - if (m_sample_page_state.in_error_page) { - beep_set_effect(LEAD_OFF_RECOVER_EFFECT); - page_sampling_load(); + if (ecg_leadoff_detect()) { + page_sampling_show_error(); } - samplePage_update_state(capturetime / 1000, wave_y, leadoff, heartrate, count % 15 == 0, count % 5 == 0); } } /*********************************************************************************************************************** - * ²ÉÑùÒì³£Ò³Ãæ * - ***********************************************************************************************************************/ - -static void page_sampling_error_load() { - /** - * @brief - * ²»×ã30Ãë[X] - */ - ssd1306_basic_clear_gram(); - - uint8_t x; - uint8_t y; - - x = compute_x_pos_by_center(SCREEN_CENTER_X, font24x24_zh_lib.widthPixel * 3 + font12x24_asiic_lib.widthPixel * 2); - y = compute_y_pos_by_center(SCREEN_CENTER_Y, font24x24_zh_lib.heightPixel); - - uint8_t xchange, ychange; - ssd1306_basic_draw_str(x, y, &xchange, &ychange, "²»×ã", &font24x24_zh_lib); - x = x + xchange; - ssd1306_basic_draw_str(x, y, &xchange, &ychange, "30", &font12x24_asiic_lib); - x = x + xchange; - ssd1306_basic_draw_str(x, y, &xchange, &ychange, "Ãë", &font24x24_zh_lib); - x = x + xchange; - ssd1306_basic_gram_update(); -} -static void page_sampling_error_unload() {} -static uint32_t page_sampling_error_get_scheduler_period() { return 300; } -static void page_sampling_error_tmr_cb() {} - -/*********************************************************************************************************************** * charging_page * ***********************************************************************************************************************/ @@ -397,6 +269,25 @@ static void page_sample_prepare_tmr_cb() { } #endif +static void page_sampling_end_load() { + ssd1306_basic_clear_gram(); + uint8_t x = 0; + uint8_t y = 0; + uint8_t xchange, ychange; + + x = compute_x_pos_by_center(SCREEN_CENTER_X, font24x24_zh_lib.widthPixel * 4); + y = compute_y_pos_by_center(SCREEN_CENTER_Y, font24x24_zh_lib.heightPixel); + + ssd1306_basic_draw_str(x, y, &xchange, &ychange, "²ÉÑù½áÊø", &font24x24_zh_lib); + + ssd1306_basic_gram_update(); + page_sampling__inErrorPage = false; +} + +static void page_sampling_end_unload() {} +static uint32_t page_sampling_end_get_scheduler_period() { return 1000; } +static void page_sampling_end_tmr_cb() {} + /*********************************************************************************************************************** * EXTERN * ***********************************************************************************************************************/ @@ -419,9 +310,9 @@ void dsp_mgr_init(void) { _PAGE_REG(page_welcome); _PAGE_REG(page_main); _PAGE_REG(page_sampling); - _PAGE_REG(page_sampling_error); _PAGE_REG(page_charging_page); _PAGE_REG(page_sample_prepare); + _PAGE_REG(page_sampling_end); ZERROR_CHECK(app_timer_create(&m_dsp_mgr_schedule_tmr, APP_TIMER_MODE_REPEATED, dsp_mgr_schedule_tmr_cb)); } diff --git a/app/src/app_service/display_ctrl_service/display_mgr.h b/app/src/app_service/display_ctrl_service/display_mgr.h index af9a81c..3346f02 100644 --- a/app/src/app_service/display_ctrl_service/display_mgr.h +++ b/app/src/app_service/display_ctrl_service/display_mgr.h @@ -19,7 +19,7 @@ typedef enum { kpage_main, kpage_sample_prepare, kpage_sampling, - kpage_sampling_error, + kpage_sampling_end, kpage_charging_page, } page_t; diff --git a/app/src/app_service/display_ctrl_service/font.h b/app/src/app_service/display_ctrl_service/font.h index ee7cc0f..9eb746e 100644 --- a/app/src/app_service/display_ctrl_service/font.h +++ b/app/src/app_service/display_ctrl_service/font.h @@ -102,142 +102,159 @@ static FontLibrary_t font12x24_asiic_lib = { const uint8_t font24x24_zh_code[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x82, 0xFF, 0x21, 0x21, 0x11, 0xF9, 0x01, 0x60, 0x1C, - 0x63, 0x82, 0x62, 0x1F, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0C, 0x03, 0x10, 0x10, 0x70, - 0x4F, 0x40, 0x20, 0x10, 0x08, 0x06, 0x01, 0x06, 0x08, 0x70, 0x60, 0x40, 0x40, 0x00, 0x00, // [0], "·Å",Size:72, W24¡ÁH24, addr:0x0000 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, // [1], "ÉÏ",Size:72, W24¡ÁH24, addr:0x0048 - 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x10, 0x10, 0x90, 0x78, 0x10, 0x10, 0x10, 0x10, 0x10, 0x90, 0x78, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x86, 0x68, 0x38, 0xE7, 0x80, 0x00, 0x07, 0x88, - 0x70, 0xD8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x04, 0x03, 0x00, 0x40, 0x20, - 0x10, 0x0B, 0x04, 0x02, 0x01, 0x00, 0x00, 0x03, 0x0C, 0x18, 0x10, 0x10, 0x00, 0x00, 0x00, // [2], "Ë«",Size:72, W24¡ÁH24, addr:0x0090 - 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0xF0, 0x08, 0x08, 0x08, 0x04, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xFF, 0x21, - 0x21, 0x21, 0x11, 0x11, 0x11, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x10, 0x20, 0x60, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [3], "ÊÖ",Size:72, W24¡ÁH24, addr:0x00D8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x1C, 0x00, 0x00, 0x08, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x10, 0xD0, 0x38, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0C, 0x02, 0xF9, 0x07, 0x00, 0x20, 0x20, 0x22, 0x27, 0xE2, 0x62, - 0xFE, 0x72, 0x92, 0x11, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x10, 0x08, - 0x04, 0x02, 0x01, 0x00, 0x20, 0x7F, 0x00, 0x01, 0x02, 0x0C, 0x18, 0x10, 0x10, 0x00, 0x00, // [4], "±£",Size:72, W24¡ÁH24, addr:0x0120 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x08, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0xFC, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC2, 0x41, 0x21, 0xEF, 0x11, 0x11, 0x4D, 0x4D, 0xC4, 0x44, 0x44, - 0x47, 0x24, 0xF4, 0x2C, 0x24, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x7F, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x10, 0x20, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [5], "³Ö",Size:72, W24¡ÁH24, addr:0x0168 - 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0xA0, 0xFC, 0xA0, 0xA0, 0xA0, 0x00, 0x80, 0x60, 0x50, 0x4C, 0x40, 0xE0, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0xFD, 0x95, 0x94, 0x53, 0x92, 0xFA, 0x02, 0x02, 0x13, 0x12, - 0x12, 0xFE, 0x93, 0x92, 0x92, 0xFF, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x02, 0x02, 0x12, 0x22, - 0x7F, 0x00, 0x00, 0x00, 0x11, 0x21, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [6], "¾²",Size:72, W24¡ÁH24, addr:0x01B0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x10, 0x1F, 0x10, - 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x10, 0x00, 0x00, // [7], "Ö¹",Size:72, W24¡ÁH24, addr:0x01F8 - 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x90, 0x70, 0x30, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x03, 0xFC, 0x00, - 0x00, 0x08, 0x08, 0x10, 0x20, 0x60, 0x40, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [8], "²»",Size:72, W24¡ÁH24, addr:0x0240 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0xC8, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x02, 0x02, 0x02, 0xFE, 0x21, 0x21, - 0x21, 0x21, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x30, 0x08, 0x06, 0x01, 0x01, 0x01, - 0x02, 0x02, 0x07, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, // [9], "×ã",Size:72, W24¡ÁH24, addr:0x0288 - 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x10, 0xF0, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFC, 0x00, 0x80, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x42, 0x32, 0x0E, 0xFF, 0x09, 0x31, 0x61, 0x18, 0x06, 0x01, - 0x00, 0x10, 0x1F, 0x80, 0x70, 0x20, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, - 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [10], "Ãë",Size:72, W24¡ÁH24, addr:0x02D0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x20, 0x20, 0x20, 0xFC, 0x20, 0x20, 0x20, 0xE0, 0x38, 0x24, 0x10, 0x10, 0x10, - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x30, 0x0C, 0x03, - 0x0A, 0x12, 0xB2, 0x82, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x3F, 0x21, 0x21, - 0x21, 0x3F, 0x21, 0x31, 0x2F, 0x21, 0x21, 0x3F, 0x20, 0x20, 0x20, 0x10, 0x00, 0x00, 0x00, // [11], "À¶",Size:72, W24¡ÁH24, addr:0x0318 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x90, 0x10, 0x10, 0x10, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x84, 0x84, 0x44, 0x34, 0x1C, 0x0C, - 0xFF, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x04, 0x02, 0x01, 0x00, - 0x00, 0x08, 0x10, 0x20, 0x60, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [12], "ÑÀ",Size:72, W24¡ÁH24, addr:0x0360 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x30, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xF8, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x09, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, - 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3F, 0x20, 0x00, 0x00, // [13], "ÒÑ",Size:72, W24¡ÁH24, addr:0x03A8 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x1C, 0x00, 0x00, 0x80, 0x10, 0x10, 0x10, 0x10, 0x10, 0x88, 0x68, 0x18, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x86, 0xC5, 0xB4, 0x8A, 0x46, 0x63, 0x50, 0x50, 0x48, 0x44, 0x42, - 0xC1, 0x40, 0x21, 0x22, 0x24, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x19, 0x08, 0x08, 0x08, 0x04, 0x24, - 0x24, 0x20, 0x20, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x00, 0x00, 0x00, // [14], "¾­",Size:72, W24¡ÁH24, addr:0x03F0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x60, 0x00, 0x00, 0x40, 0x40, 0x40, 0xC0, 0x70, 0x4C, 0x40, 0x20, 0x20, 0x20, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x04, 0xF4, 0x0E, 0x00, 0x80, 0x8C, 0x8B, 0x88, 0x88, - 0xFF, 0x48, 0x48, 0x44, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x06, 0x09, 0x08, - 0x08, 0x10, 0x10, 0x10, 0x10, 0x2F, 0x20, 0x20, 0x60, 0x60, 0x20, 0x20, 0x20, 0x00, 0x00, // [15], "Á¬",Size:72, W24¡ÁH24, addr:0x0438 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x80, 0x80, 0x40, 0x40, 0xC0, 0x42, 0x44, 0x58, 0x20, 0xE0, 0x20, - 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x41, 0x41, 0x21, 0xFF, 0x11, 0x88, 0x88, 0x88, 0x88, 0xC8, 0x7B, - 0x58, 0x44, 0x47, 0xC4, 0x44, 0x44, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x7F, 0x80, 0x80, - 0x40, 0x40, 0x22, 0x25, 0x14, 0x08, 0x0C, 0x0B, 0x10, 0x10, 0x20, 0x60, 0x00, 0x00, 0x00, // [16], "½Ó",Size:72, W24¡ÁH24, addr:0x0480 - 0x00, 0x00, 0x00, 0xE0, 0x40, 0x20, 0xC0, 0x00, 0xFC, 0x00, 0xC0, 0x38, 0x00, 0xF0, 0x20, 0x20, 0x10, 0x10, 0x08, - 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x02, 0xC2, 0x23, 0x1E, 0xFF, 0x0B, 0x12, 0x22, 0x00, 0xFB, - 0x04, 0x04, 0x04, 0x04, 0xFC, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1F, 0x09, 0x08, 0x08, 0x08, 0x0F, - 0x48, 0x28, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x3C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // [17], "¶Ï",Size:72, W24¡ÁH24, addr:0x04C8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x10, 0x10, 0x10, 0xD0, 0x30, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x88, 0x7F, 0x08, 0x08, 0x08, 0x08, - 0xFB, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x06, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [18], "¿ª",Size:72, W24¡ÁH24, addr:0x0510 - 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xFC, 0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x11, 0x11, 0x11, 0x09, 0x88, 0xFF, 0x88, 0x88, - 0x88, 0x88, 0x88, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x01, 0x01, 0x01, - 0x01, 0x00, 0x3F, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x6C, 0x30, 0x00, 0x00, // [19], "µç",Size:72, W24¡ÁH24, addr:0x0558 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x48, 0x48, 0x28, 0xA8, 0xA8, 0xA8, 0xA8, 0xC8, 0xF8, 0x0C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0xF7, 0x95, 0x95, 0x95, 0xB4, 0x54, 0x54, - 0x54, 0x94, 0xF4, 0x1A, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x53, 0x52, - 0x52, 0x4A, 0x7F, 0x4A, 0x4A, 0x49, 0x49, 0x49, 0x48, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, // [20], "Á¿",Size:72, W24¡ÁH24, addr:0x05A0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xC0, 0xFE, 0x44, 0xA0, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x08, 0x14, 0xE2, 0x21, 0xA0, 0xAF, 0x90, 0x90, - 0x11, 0xF1, 0x12, 0x04, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x4F, - 0x25, 0x24, 0x24, 0x24, 0x24, 0x25, 0x27, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, // [21], "²é",Size:72, W24¡ÁH24, addr:0x05E8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x90, 0xD0, 0xB8, 0x48, 0x48, 0x48, 0x44, 0x44, 0x40, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x84, 0x44, 0x24, 0x1C, 0xEE, 0xA3, 0xA2, 0x92, 0x92, - 0x92, 0x92, 0xF2, 0x12, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x7F, 0x24, 0x24, 0x24, 0x22, 0x22, 0x22, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [22], "¿´",Size:72, W24¡ÁH24, addr:0x0630 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x00, 0x80, 0x80, - 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x87, 0xE4, 0x94, 0x4C, 0x43, 0x01, 0x01, 0x91, 0x11, 0x91, - 0x9F, 0x91, 0x91, 0x90, 0xC8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, - 0x04, 0x04, 0x3F, 0x21, 0x20, 0x10, 0x10, 0x10, 0x1C, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, // [23], "½á",Size:72, W24¡ÁH24, addr:0x0678 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xF0, 0x90, 0x88, 0x48, 0xF8, 0x48, 0x48, 0x48, 0x88, 0xF8, 0x0C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x2F, 0x24, 0xA4, 0x64, 0xFF, 0x24, 0x62, - 0xA2, 0x12, 0x13, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x04, 0x04, 0x02, 0x01, - 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, // [24], "¹û",Size:72, W24¡ÁH24, addr:0x06C0 - 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0xF0, 0x08, 0x08, 0x08, 0x04, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xFF, 0x21, - 0x21, 0x21, 0x11, 0x11, 0x11, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x10, 0x20, 0x60, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // [25], "ÊÖ",Size:72, W24¡ÁH24, addr:0x0708 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x20, 0x20, 0x20, 0xE0, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x42, 0x31, 0x0D, 0xFF, 0x09, 0x11, 0x01, 0x80, 0x7F, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x20, 0x3F, 0x60, - 0x10, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x30, 0x20, 0x20, 0x20, 0x3E, 0x00, 0x00, // [26], "»ú",Size:72, W24¡ÁH24, addr:0x0750 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x90, 0x10, 0x10, 0x10, 0xD0, 0x88, 0x08, 0x08, 0x04, 0xC4, 0x64, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x10, 0x11, 0x91, 0xD0, 0x30, 0xFE, 0x11, 0x70, - 0x96, 0x11, 0x10, 0x10, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x03, 0x01, - 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0C, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, // [27], "²É",Size:72, W24¡ÁH24, addr:0x0798 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0xF0, 0x4C, 0x40, 0x40, 0x40, 0xEC, 0x38, 0x20, 0xA0, 0xA0, 0x20, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x1F, 0x25, 0x25, 0x25, 0xF5, 0x1F, 0x95, - 0x95, 0x94, 0x94, 0x90, 0x90, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x11, 0x11, 0x09, 0x09, 0x05, - 0x03, 0x03, 0x7F, 0x01, 0x02, 0x02, 0x04, 0x08, 0x18, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, // [28], "¼¯",Size:72, W24¡ÁH24, addr:0x07E0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xFC, 0x00, 0x84, 0x88, 0x90, 0x80, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x21, 0x21, 0x21, 0xF1, 0x11, 0x01, 0x0F, - 0xF1, 0x80, 0x40, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x18, 0x07, 0x00, 0x04, 0x08, - 0x18, 0x07, 0x08, 0x04, 0x02, 0x03, 0x03, 0x04, 0x18, 0x30, 0x20, 0x7C, 0x00, 0x00, 0x00, // [29], "³É",Size:72, W24¡ÁH24, addr:0x0828 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xFF, 0x80, 0x80, 0x80, 0x44, 0x02, 0xC2, - 0x3F, 0x02, 0x02, 0x02, 0x02, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x40, - 0x20, 0x10, 0x08, 0x06, 0x01, 0x10, 0x10, 0x20, 0x60, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, // [30], "¹¦",Size:72, W24¡ÁH24, addr:0x0870 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x44, 0x58, 0x40, 0x40, 0x40, 0x40, 0x40, 0xA0, - 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x20, 0x20, 0x20, 0xE4, 0x24, 0x24, 0x22, 0xE2, - 0x22, 0x22, 0x20, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x06, - 0x01, 0x00, 0x00, 0x00, 0x3F, 0x20, 0x40, 0x40, 0x40, 0x40, 0x24, 0x38, 0x00, 0x00, 0x00, // [31], "Íê",Size:72, W24¡ÁH24, addr:0x08B8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x30, 0x1E, 0x00, 0x10, 0xE0, 0x20, 0x20, 0x20, 0xF0, 0x10, 0x10, 0x08, 0x0C, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x06, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x08, 0x08, 0x08, - 0x08, 0x7F, 0x84, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, - 0x10, 0x1F, 0x08, 0x04, 0x0A, 0x08, 0x30, 0x03, 0x04, 0x18, 0x30, 0x20, 0x7F, 0x00, 0x00, // [32], "µÍ",Size:72, W24¡ÁH24, addr:0x0900 + 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x1C,0x38,0x30,0x00,0x00,0x00,0x00,0xE0,0xFC,0x1C,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x82,0xFF,0xFF,0x21,0x31,0xF9,0xF9,0x61,0x7C,0x7F,0xE3, + 0xE2,0x7F,0x1F,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x60,0x70,0x1C,0x0F,0x13,0x10,0x70,0x7F,0x4F,0x60, + 0x30,0x18,0x0E,0x07,0x07,0x0E,0x78,0x70,0x60,0x40,0x40,0x00, // [0], "·Å",Size:72, W24¡ÁH24, addr:0x0000 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x04,0x04,0x04, + 0x04,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F, + 0x1F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00, // [1], "ÉÏ",Size:72, W24¡ÁH24, addr:0x0048 + 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x30,0x10,0x90,0xF8,0x78,0x10,0x10,0x10,0x10,0x90,0xF8,0x78,0x08, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x87,0xEE,0x78,0xFF,0xE7,0x80,0x07,0x8F,0xF8,0xF8, + 0xDF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x0C,0x07,0x03,0x40,0x60,0x30,0x1B,0x0F, + 0x06,0x03,0x01,0x00,0x03,0x0F,0x1C,0x18,0x10,0x10,0x00,0x00, // [2], "Ë«",Size:72, W24¡ÁH24, addr:0x0090 + 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x30,0x10,0x10,0xF0,0xF8,0x08,0x08,0x0C,0x06,0x06,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x62,0x22,0x22,0x22,0x22,0x22,0x22,0xFF,0xFF,0x21,0x21, + 0x31,0x11,0x11,0x11,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x30,0x60, + 0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [3], "ÊÖ",Size:72, W24¡ÁH24, addr:0x00D8 + 0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0x1C,0x00,0x08,0xF8,0xF0,0x10,0x10,0x10,0x10,0xD0,0xF8,0x38, + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1C,0x0E,0xFB,0xFF,0x07,0x20,0x20,0x22,0x27,0xE7,0xE2,0xFE,0xFE, + 0xF2,0x93,0x11,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x10,0x18,0x0C,0x06,0x03, + 0x01,0x20,0x7F,0x7F,0x01,0x03,0x0E,0x1C,0x18,0x10,0x10,0x00, // [4], "±£",Size:72, W24¡ÁH24, addr:0x0120 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF4,0xFC,0x08,0x80,0x80,0x80,0x80,0xC0,0xFC,0xFC,0x40,0x40,0x40,0x40, + 0x40,0x00,0x00,0x00,0x00,0x00,0x80,0xC2,0xC3,0x61,0xEF,0xFF,0x11,0x5D,0x4D,0xCD,0xC4,0x44,0x47,0x67, + 0xF4,0xFC,0x2C,0x26,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x10,0x30,0x7F,0x7F,0x00,0x00,0x00,0x00, + 0x03,0x03,0x10,0x30,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00, // [5], "³Ö",Size:72, W24¡ÁH24, addr:0x0168 + 0x00,0x00,0x00,0x20,0x20,0x20,0xA0,0xFC,0xFC,0xA0,0xA0,0xA0,0x80,0xE0,0x70,0x5C,0x4C,0xE0,0xE0,0x20, + 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFD,0xFD,0x95,0xD7,0xD3,0xFA,0xFA,0x02,0x13,0x13,0x12,0xFE, + 0xFF,0x93,0x92,0xFF,0xFF,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x02,0x12,0x32,0x7F,0x7F,0x00, + 0x00,0x11,0x31,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [6], "¾²",Size:72, W24¡ÁH24, addr:0x01B0 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFA,0xFE,0x04,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x00,0x00,0x00,0xFB,0xFF,0x04,0x04, + 0x04,0x04,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x30,0x1F,0x1F,0x10,0x10,0x10, + 0x1F,0x1F,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x18,0x10,0x00, // [7], "Ö¹",Size:72, W24¡ÁH24, addr:0x01F8 + 0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x90,0xF0,0x70,0x38,0x08,0x08,0x08,0x08, + 0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x30,0x18,0x0C,0x07,0xFF,0xFC,0x00,0x08, + 0x08,0x18,0x30,0x60,0x60,0xC0,0xC0,0x00,0x00,0x00,0x02,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x20, + 0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [8], "²»",Size:72, W24¡ÁH24, addr:0x0240 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0x10,0x10,0x10,0x18,0x08,0x08,0xC8,0xFC,0x3C,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x7F,0x02,0x02,0xFE,0xFF,0x21,0x21,0x21, + 0x31,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x70,0x38,0x0E,0x07,0x01,0x01,0x03,0x02,0x07, + 0x07,0x0C,0x18,0x10,0x30,0x20,0x20,0x20,0x20,0x20,0x00,0x00, // [9], "×ã",Size:72, W24¡ÁH24, addr:0x0288 + 0x00,0x00,0x00,0x20,0x20,0x20,0x30,0xF0,0xF8,0x0C,0x04,0x04,0x00,0x00,0x00,0x04,0xFC,0xFC,0x80,0x80, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0xC2,0x72,0x3E,0xFF,0xFF,0x39,0x71,0x79,0x1E,0x07,0x01,0x10, + 0x1F,0x9F,0xF0,0x70,0x21,0x07,0x06,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x7F,0x7F,0x40,0x40,0x60, + 0x30,0x18,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00, // [10], "Ãë",Size:72, W24¡ÁH24, addr:0x02D0 + 0x00,0x00,0x00,0x00,0x40,0x40,0x60,0x20,0x20,0xFC,0xFC,0x20,0x20,0xE0,0xF8,0x3C,0x34,0x10,0x10,0x10, + 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0xFF,0xFE,0x00,0x7F,0x7F,0x30,0x3C,0x0F,0x0B,0x1A, + 0xB2,0xB2,0x82,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x3F,0x21,0x21,0x3F,0x3F, + 0x31,0x3F,0x2F,0x21,0x3F,0x3F,0x20,0x20,0x30,0x10,0x00,0x00, // [11], "À¶",Size:72, W24¡ÁH24, addr:0x0318 + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x90,0x90,0x10,0x10,0x18,0x08,0xF8,0xF8,0x08,0x08,0x08,0x08, + 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x87,0x84,0xC4,0x74,0x3C,0x1C,0xFF,0xFF, + 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x08,0x0C,0x04,0x06,0x03,0x01,0x00,0x08,0x18, + 0x30,0x60,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [12], "ÑÀ",Size:72, W24¡ÁH24, addr:0x0360 + 0x00,0x00,0x00,0x00,0x00,0xA0,0xB0,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xF8,0xF8,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF6,0xFF,0x09,0x08,0x08,0x08,0x08,0x08,0x0C,0x04,0x07, + 0x07,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,0x38,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x00, // [13], "ÒÑ",Size:72, W24¡ÁH24, addr:0x03A8 + 0x00,0x00,0x00,0x00,0x80,0xE0,0x7C,0x1C,0x00,0x80,0x90,0x10,0x10,0x10,0x10,0x98,0xE8,0x78,0x18,0x08, + 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x86,0xC7,0xF5,0xBE,0xCE,0x67,0x73,0x50,0x58,0x4C,0x46,0xC3,0xC1, + 0x61,0x23,0x26,0x24,0x0C,0x08,0x00,0x00,0x00,0x00,0x10,0x19,0x19,0x08,0x08,0x0C,0x24,0x24,0x24,0x20, + 0x20,0x20,0x3F,0x3F,0x20,0x20,0x20,0x20,0x30,0x10,0x00,0x00, // [14], "¾­",Size:72, W24¡ÁH24, addr:0x03F0 + 0x00,0x00,0x00,0x00,0x00,0x10,0x70,0x60,0x00,0x40,0x40,0x40,0xC0,0xF0,0x7C,0x4C,0x60,0x20,0x20,0x20, + 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0C,0x04,0xF4,0xFE,0x0E,0x80,0x8C,0x8F,0x8B,0x88,0xFF,0xFF, + 0x48,0x4C,0x44,0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x06,0x0F,0x09,0x08,0x18,0x10, + 0x10,0x10,0x3F,0x2F,0x20,0x60,0x60,0x60,0x20,0x20,0x20,0x00, // [15], "Á¬",Size:72, W24¡ÁH24, addr:0x0438 + 0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x80,0x80,0xC0,0x40,0xC0,0xC2,0x46,0x5C,0x78,0xE0,0xE0,0x20, + 0x20,0x20,0x00,0x00,0x00,0x00,0x81,0xC1,0x41,0x61,0xFF,0xFF,0x99,0x88,0x88,0x88,0xC8,0xFB,0x7B,0x5C, + 0x47,0xC7,0xC4,0x44,0x44,0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x10,0x30,0x7F,0xFF,0x80,0xC0,0x40,0x62, + 0x27,0x35,0x1C,0x0C,0x0F,0x1B,0x10,0x30,0x60,0x60,0x00,0x00, // [16], "½Ó",Size:72, W24¡ÁH24, addr:0x0480 + 0x00,0x00,0x00,0xE0,0xE0,0x60,0xE0,0xC0,0xFC,0xFC,0xC0,0xF8,0x38,0xF0,0xF0,0x20,0x30,0x10,0x18,0x0C, + 0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xC2,0xE3,0x3F,0xFF,0xFF,0x1B,0x32,0x22,0xFB,0xFF,0x04, + 0x04,0x04,0xFC,0xFE,0x02,0x02,0x00,0x00,0x00,0x00,0x08,0x1F,0x1F,0x09,0x08,0x08,0x0F,0x4F,0x68,0x38, + 0x1E,0x07,0x01,0x00,0x00,0x3C,0x3F,0x03,0x00,0x00,0x00,0x00, // [17], "¶Ï",Size:72, W24¡ÁH24, addr:0x04C8 + 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0xF0,0xF0,0x10,0x10,0x10,0xD0,0xF0,0x38,0x08,0x08,0x08, + 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x88,0xFF,0x7F,0x08,0x08,0x08,0xFB,0xFF, + 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x40,0x60,0x30,0x18,0x0E,0x07,0x01,0x00,0x00, + 0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [18], "¿ª",Size:72, W24¡ÁH24, addr:0x0510 + 0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x82,0xFE,0xFC,0x80,0x80,0x80,0x80,0xC0,0xC0,0x40, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x11,0x11,0x19,0x89,0xFF,0xFF,0x88,0x88,0x88, + 0x88,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x01,0x01,0x01,0x01,0x3F, + 0x7F,0x60,0x40,0x40,0x40,0x40,0x40,0x40,0x6C,0x7C,0x30,0x00, // [19], "µç",Size:72, W24¡ÁH24, addr:0x0558 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x48,0x68,0xA8,0xA8,0xA8,0xA8,0xE8,0xF8,0xFC,0x0C,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0xF7,0xF7,0x95,0x95,0xB5,0xF4,0x54,0x54,0xD4, + 0xF4,0xFE,0x1A,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x53,0x53,0x52,0x5A,0x7F, + 0x7F,0x4A,0x4B,0x49,0x49,0x49,0x68,0x20,0x20,0x00,0x00,0x00, // [20], "Á¿",Size:72, W24¡ÁH24, addr:0x05A0 + 0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0xC0,0xFE,0xFE,0xE4,0xA0,0x20,0x20,0x20,0x20,0x20, + 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x18,0x08,0x1C,0xF6,0xE3,0xA1,0xAF,0xBF,0x90,0x91,0xF1, + 0xF3,0x16,0x0C,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x4F,0x6F,0x25,0x24, + 0x24,0x24,0x25,0x27,0x27,0x20,0x20,0x20,0x20,0x20,0x00,0x00, // [21], "²é",Size:72, W24¡ÁH24, addr:0x05E8 + 0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x90,0xD0,0xF8,0xF8,0x48,0x48,0x4C,0x44,0x44,0x40, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x84,0xC4,0x64,0x3C,0xFE,0xEF,0xA3,0xB2,0x92,0x92,0x92, + 0xF2,0xF2,0x12,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x02,0x02,0x03,0x01,0x00,0x00,0x00,0x7F,0x7F,0x24, + 0x24,0x26,0x22,0x22,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00, // [22], "¿´",Size:72, W24¡ÁH24, addr:0x0630 + 0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x3C,0x1C,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x04,0x80,0x80,0x80, + 0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x84,0x87,0xE7,0xF4,0xDC,0x4F,0x43,0x01,0x91,0x91,0x91,0x9F,0x9F, + 0x91,0x91,0xD8,0xC8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x08,0x08,0x0C,0x04,0x04,0x04,0x3F, + 0x3F,0x21,0x30,0x10,0x10,0x1C,0x1F,0x13,0x00,0x00,0x00,0x00, // [23], "½á",Size:72, W24¡ÁH24, addr:0x0678 + 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0xFC,0xF0,0x98,0xC8,0xF8,0xF8,0x48,0x48,0xC8,0xF8,0xFC,0x0C,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x2F,0x2F,0xA4,0xE4,0xFF,0xFF,0x66,0xE2,0xB2, + 0x13,0x13,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x0C,0x04,0x06,0x03,0x01,0x00,0x7F, + 0x7F,0x00,0x00,0x01,0x03,0x0E,0x0C,0x08,0x08,0x08,0x08,0x00, // [24], "¹û",Size:72, W24¡ÁH24, addr:0x06C0 + 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x30,0x10,0x10,0xF0,0xF8,0x08,0x08,0x0C,0x06,0x06,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x62,0x22,0x22,0x22,0x22,0x22,0x22,0xFF,0xFF,0x21,0x21, + 0x31,0x11,0x11,0x11,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x30,0x60, + 0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [25], "ÊÖ",Size:72, W24¡ÁH24, addr:0x0708 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0xF0,0xF0,0x20,0x20,0xE0,0xF0,0x10,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC2,0x73,0x3D,0xFF,0xFF,0x19,0x11,0x81,0xFF,0x7F,0x00,0x00, + 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x01,0x00,0x20,0x3F,0x7F,0x70,0x1C,0x0F, + 0x03,0x00,0x00,0x00,0x1F,0x3F,0x30,0x20,0x20,0x3E,0x3E,0x00, // [26], "»ú",Size:72, W24¡ÁH24, addr:0x0750 + 0x00,0x00,0x00,0x00,0x00,0x00,0x50,0xD0,0x90,0x10,0x10,0xD0,0xD8,0x88,0x08,0x0C,0xC4,0xE4,0x64,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x30,0x11,0x91,0xD1,0xF0,0xFE,0xFF,0x71,0xF6,0x97, + 0x11,0x10,0x18,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x18,0x0C,0x06,0x03,0x03,0x01,0x00,0x7F, + 0x7F,0x00,0x00,0x01,0x03,0x0E,0x0C,0x08,0x08,0x08,0x08,0x00, // [27], "²É",Size:72, W24¡ÁH24, addr:0x0798 + 0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0xF0,0xFC,0x4C,0x40,0x40,0xEC,0xFC,0x38,0xA0,0xA0,0xA0,0x20,0x20, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x20,0x3F,0x3F,0x25,0x25,0xF5,0xFF,0x9F,0x95,0x95, + 0x94,0x94,0x90,0x90,0x80,0x80,0x00,0x00,0x00,0x00,0x20,0x21,0x31,0x11,0x19,0x09,0x0D,0x07,0x03,0x7F, + 0x7F,0x03,0x02,0x06,0x0C,0x18,0x18,0x10,0x10,0x10,0x10,0x00, // [28], "¼¯",Size:72, W24¡ÁH24, addr:0x07E0 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x84,0x8C,0x98,0x90,0x80, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x21,0x21,0xF1,0xF1,0x11,0x0F,0xFF,0xF1, + 0xC0,0x70,0x38,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x60,0x38,0x1F,0x07,0x04,0x0C,0x18,0x1F,0x0F, + 0x0C,0x06,0x03,0x03,0x07,0x1C,0x38,0x30,0x7C,0x7C,0x00,0x00, // [29], "³É",Size:72, W24¡ÁH24, addr:0x0828 + 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0xFC,0xFC,0x04,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0xFF,0xFF,0x80,0x80,0xC4,0x46,0xC2,0xFF,0x3F, + 0x02,0x02,0x02,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x03,0x01,0x41,0x60,0x30,0x18, + 0x0E,0x07,0x11,0x10,0x30,0x60,0x7F,0x1F,0x00,0x00,0x00,0x00, // [30], "¹¦",Size:72, W24¡ÁH24, addr:0x0870 + 0x00,0x00,0x00,0x00,0x00,0xA0,0xE0,0x40,0x40,0x40,0x40,0x44,0x5C,0x58,0x40,0x40,0x40,0x40,0xE0,0xE0, + 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x21,0x21,0x20,0x20,0xE4,0xE4,0x24,0x26,0xE2,0xE2,0x22, + 0x22,0x31,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x40,0x60,0x30,0x18,0x0E,0x07,0x01,0x00, + 0x00,0x3F,0x3F,0x60,0x40,0x40,0x40,0x64,0x3C,0x38,0x00,0x00, // [31], "Íê",Size:72, W24¡ÁH24, addr:0x08B8 + 0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0x3E,0x1E,0x10,0xF0,0xE0,0x20,0x20,0xF0,0xF0,0x10,0x18,0x0C,0x0C, + 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0E,0x07,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x08,0x08,0x08,0x7F, + 0xFF,0x84,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x10,0x1F,0x1F, + 0x0C,0x0E,0x0A,0x38,0x33,0x07,0x1C,0x38,0x30,0x7F,0x7F,0x00, // [32], "µÍ",Size:72, W24¡ÁH24, addr:0x0900 + 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xF8,0x00,0x00,0x08,0x18,0x70,0x60,0x80,0xE0,0xFC,0x9C,0x88, + 0x80,0x80,0x00,0x00,0x00,0x00,0x00,0xC1,0xE1,0x39,0xFF,0xFF,0x0F,0x99,0x99,0x89,0x89,0x89,0x89,0xFF, + 0xFF,0xC8,0x4C,0x44,0x40,0x40,0x40,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00, + 0x00,0x00,0x20,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [33], "Ñù",Size:72, W24¡ÁH24, addr:0x0948 + 0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x3C,0x1C,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0x04,0x80,0x80,0x80, + 0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x84,0x87,0xE7,0xF4,0xDC,0x4F,0x43,0x01,0x91,0x91,0x91,0x9F,0x9F, + 0x91,0x91,0xD8,0xC8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x08,0x08,0x0C,0x04,0x04,0x04,0x3F, + 0x3F,0x21,0x30,0x10,0x10,0x1C,0x1F,0x13,0x00,0x00,0x00,0x00, // [34], "½á",Size:72, W24¡ÁH24, addr:0x0990 + 0x00,0x00,0x00,0x40,0xC0,0xC0,0x40,0x40,0x40,0x40,0x40,0xFC,0xFC,0x44,0x40,0x40,0x40,0x60,0x20,0x20, + 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x7E,0xA4,0xE6,0xFF,0xFF,0x62,0xE2,0xA2, + 0x3E,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x18,0x0C,0x04,0x06,0x03,0x01,0x00,0x7F, + 0x7F,0x00,0x01,0x03,0x06,0x0C,0x18,0x10,0x10,0x10,0x10,0x00, // [35], "Êø",Size:72, W24¡ÁH24, addr:0x09D8 + 0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x74,0xFC,0x88,0x80,0x80,0x80,0x80,0x80,0xC0, + 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x21,0x21,0x21,0x21,0xFF,0xFF,0x20,0x20,0x20, + 0x20,0x20,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F, + 0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [36], "ÖÐ",Size:72, W24¡ÁH24, addr:0x0A20 + }; static FontLibrary_t font24x24_zh_lib = { .font = font24x24_zh_code, - .fontIndex = "·ÅÉÏË«ÊÖ±£³Ö¾²Ö¹²»×ãÃëÀ¶ÑÀÒѾ­Á¬½Ó¶Ï¿ªµçÁ¿²é¿´½á¹ûÊÖ»ú²É¼¯³É¹¦ÍêµÍ", + .fontIndex = "·ÅÉÏË«ÊÖ±£³Ö¾²Ö¹²»×ãÃëÀ¶ÑÀÒѾ­Á¬½Ó¶Ï¿ªµçÁ¿²é¿´½á¹ûÊÖ»ú²É¼¯³É¹¦ÍêµÍÑù½áÊøÖÐ", .fontIndexLen = 88, .fontCode = kgbk, .isAscii = false, diff --git a/app/src/app_service/ecg_service/ecg_algo.c b/app/src/app_service/ecg_service/ecg_algo.c index a5d5216..c54f37b 100644 --- a/app/src/app_service/ecg_service/ecg_algo.c +++ b/app/src/app_service/ecg_service/ecg_algo.c @@ -6,7 +6,7 @@ #include "algo/zsimple_qrs.h" #include "znordic.h" -#define REPORT_MEDIAN_WINDOWS_SIZE 101 // ±ØÐëÊÇÆæÊý +#define REPORT_MEDIAN_WINDOWS_SIZE 151 // ±ØÐëÊÇÆæÊý LPFilterExt_t m_lp_filter; HPFilterExt_t m_hp_filter; @@ -19,7 +19,7 @@ int32_t m_data_statistics_buf[STATISTICS_BUF_SIZE]; // zdata_statistics_t m_data_statistics; int32_t reportdata; -int32_t displaydata; +bool m_leadoff; void ecg_algo_init() { ecg_algo_reset(); } @@ -36,10 +36,18 @@ void report_data_process(int32_t indata) { } void leadoff_data_process(int32_t indata) { - zdata_statistics_push(&m_data_statistics, indata); - - + if (zdata_statistics_is_full(&m_data_statistics)) { + int32_t max = zdata_statistics_get_max(&m_data_statistics); + int32_t min = zdata_statistics_get_min(&m_data_statistics); + if (max - min > 45000) { + m_leadoff = true; + } else { + m_leadoff = false; + } + } else { + m_leadoff = true; + } } void ecg_algo_process_data(int32_t indata) { @@ -67,5 +75,4 @@ void ecg_algo_reset() { } int32_t ecg_algo_get_report_data() { return reportdata; } -int32_t ecg_algo_get_display_data() { return displaydata; } -int32_t ecg_algo_get_heart_rate() { return 0; } \ No newline at end of file +bool ecg_algo_get_leadoff_state() { return m_leadoff; } \ No newline at end of file diff --git a/app/src/app_service/ecg_service/ecg_algo.h b/app/src/app_service/ecg_service/ecg_algo.h index d2fc162..c58b36e 100644 --- a/app/src/app_service/ecg_service/ecg_algo.h +++ b/app/src/app_service/ecg_service/ecg_algo.h @@ -5,12 +5,11 @@ #include "app_basic_service/zapp.h" #define SAMPLE_PERIOD_S ((float)(1.0 / SAMPLE_RATE)) -#define STATISTICS_BUF_SIZE ((int32_t)(1 / SAMPLE_PERIOD_S)) +#define STATISTICS_BUF_SIZE ((int32_t)(0.5 / SAMPLE_PERIOD_S)) /*1sµÄÊý¾Ý*/ void ecg_algo_init(); void ecg_algo_process_data(int32_t indata); void ecg_algo_reset(); int32_t ecg_algo_get_report_data(); -int32_t ecg_algo_get_display_data(); -int32_t ecg_algo_get_heart_rate(); +bool ecg_algo_get_leadoff_state(); \ No newline at end of file diff --git a/app/src/app_service/ecg_service/ecg_service.c b/app/src/app_service/ecg_service/ecg_service.c index e471f33..d50f956 100644 --- a/app/src/app_service/ecg_service/ecg_service.c +++ b/app/src/app_service/ecg_service/ecg_service.c @@ -14,8 +14,6 @@ static nrf_drv_spi_t ads129x_spi = NRF_DRV_SPI_INSTANCE(ADS1291_SPI_INSTA static nrf_drv_spi_config_t ads129x_spi_config; static bool m_testmode_flag; static bool m_report_data_in_raw_mode_flag; -static bool m_leadoffstate; -uint8_t m_leadoff_raw_state; static uint32_t predata_filter_cnt = 0; @@ -194,68 +192,6 @@ static bool ads129x_ping() { /*********************************************************************************************************************** * PUBLIC_FUNC * ***********************************************************************************************************************/ - -static void leadoff_state_process(ads129x_capture_data_t* capture_data) { - /** - * @brief - * ecgÍÑÂä¼ì²âÂß¼­ - * 1. ·å·åÖµ15000 - * 2. ecg_leadoff״̬±»´¥·¢ - * 3. ·å·åÖµÊýֵСÓÚ500 - * - * - */ - if (!m_leadoffstate) { - /** - * @brief µ¼ÁªÍÑÂä¼ì²â - */ - static uint32_t un_lead_off_cnt = 0; - bool leadoff = false; - - int32_t abs_af_filter = ecg_algo_get_report_data(); - if (abs_af_filter < 0) { - abs_af_filter = -abs_af_filter; - } - if (abs_af_filter < 500) { - leadoff = true; - } - - if (leadoff) { - un_lead_off_cnt++; - } else { - un_lead_off_cnt = 0; - } - - if (un_lead_off_cnt > 300) { - un_lead_off_cnt = 0; - m_leadoffstate = true; - } - - } else { - /** - * @brief µ¼Áª»Ö¸´¼ì²â - */ - - static uint32_t cnt = 0; - int32_t abs_af_filter = ecg_algo_get_report_data(); - - if (abs_af_filter < 0) { - abs_af_filter = -abs_af_filter; - } - - if (abs_af_filter > 1500) { - cnt++; - } else { - cnt = 0; - } - - if (cnt > 6) { - cnt = 0; - m_leadoffstate = false; - } - } -} - static void ads1291_ready_pin_irq(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t action) { static ads129x_capture_data_t capture_data; predata_filter_cnt++; @@ -268,7 +204,6 @@ static void ads1291_ready_pin_irq(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t a // Ëã·¨´¦Àí ecg_algo_process_data(capture_data.ch1data); - leadoff_state_process(&capture_data); // Éϱ¨ one_frame_t frame; @@ -277,12 +212,11 @@ static void ads1291_ready_pin_irq(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t a } else { frame.data = ecg_algo_get_report_data(); } - if (m_leadoffstate) { + if (ecg_algo_get_leadoff_state()) { frame.leadoff = 0x3; } else { frame.leadoff = 0; } - m_leadoff_raw_state = capture_data.loffstate; ecg_data_mgr_push_one_frame(frame); } @@ -409,7 +343,6 @@ void ecg_service_start_capture() { // ads129x_send_cmd(ADS129X_COMMAND_START); /* ·¢ËÍ¿ªÊ¼Êý¾Ýת»»£¨µÈЧÓÚÀ­¸ßSTARTÒý½Å£© */ ecg_service_captured_time = znordic_getpower_on_ms(); - m_leadoffstate = true; m_work_state = true; } void ecg_service_stop_capture() { // @@ -428,8 +361,6 @@ void ecg_service_subic_write_reg(uint8_t addr, uint8_t val) { ads129x_write_regs(®cache); } uint8_t ecg_service_subic_read_reg(uint8_t addr) { return ads129x_rw_reg(ADS129X_COMMAND_RREG | addr, 0); } -int32_t ecg_service_get_display_val() { return ecg_algo_get_display_data(); } -int32_t ecg_service_get_heart_rate() { return ecg_algo_get_heart_rate(); } void ecg_service_set_in_test_mode(bool testmode) { ZLOGI("ecg_service_set_in_test_mode %d", testmode); @@ -439,9 +370,6 @@ void ecg_service_set_in_test_mode(bool testmode) { void ecg_service_set_report_data_in_raw_mode(bool rawmode) { m_report_data_in_raw_mode_flag = rawmode; } bool ecg_leadoff_detect() { - return false; - // if (m_testmode_flag) { - // return false; - // } - // return m_leadoffstate; + // return false; + return ecg_algo_get_leadoff_state(); } diff --git a/app/src/app_service/ecg_service/ecg_service.h b/app/src/app_service/ecg_service/ecg_service.h index 0207b57..37f2198 100644 --- a/app/src/app_service/ecg_service/ecg_service.h +++ b/app/src/app_service/ecg_service/ecg_service.h @@ -29,8 +29,6 @@ void ecg_service_unload(); void ecg_service_start_capture(); void ecg_service_stop_capture(); uint32_t ecg_service_has_captured_time(); -int32_t ecg_service_get_display_val(); -int32_t ecg_service_get_heart_rate(); void ecg_service_subic_write_reg(uint8_t addr, uint8_t val); uint8_t ecg_service_subic_read_reg(uint8_t addr); diff --git a/app/src/one_conduction_main.c b/app/src/one_conduction_main.c index 52ba86d..f99e879 100644 --- a/app/src/one_conduction_main.c +++ b/app/src/one_conduction_main.c @@ -380,16 +380,27 @@ void on_zapp_ebus_event(void* p_event_data, uint16_t event_size) { ecg_service_stop_capture(); beep_set_effect(STOP_SAMPLE_EFFECT); } else { - if (zble_module_has_disconnected_ms() >= 1000) { - zapp_state_machine_change_state(kstate_standby); + if (zble_module_has_disconnected_ms() >= 2000) { + zapp_state_machine_change_state(kstate_capture_end); } else if (event == kappevent_stop_capture) { - zapp_state_machine_change_state(kstate_mainPage); + zapp_state_machine_change_state(kstate_capture_end); } else if (event == kecg_data_report_event) { report_ecg_data(p_event); } } - } else if (zapp_state_machine_now_state() == kstate_charging) { + } else if (zapp_state_machine_now_state() == kstate_capture_end) { + if (event == kappevent_state_machine_state_enter) { + dsp_mgr_change_page(kpage_sampling_end); + } else if (event == kappevent_state_machine_state_exit) { + } else { + if (zapp_state_machine_haspassed_ms() > 2000) { + zapp_state_machine_change_state(kstate_mainPage); + } + } + } + + else if (zapp_state_machine_now_state() == kstate_charging) { /** * @brief * 1. ³äµç½áÊøÊ¼þ->Çл»µ½´ý»ú @@ -457,7 +468,7 @@ void one_conduction_main() { dsp_mgr_init(); ecg_service_init(); - // zapp_state_machine_change_state(kstate_prepare_capture); + // zapp_state_machine_change_state(kstate_capture); zble_module_start_adv(); zapp_start_schedule(); diff --git a/screen_res/font/data/config/FontsCfg.table b/screen_res/font/data/config/FontsCfg.table index e960c94..ff5d7df 100644 --- a/screen_res/font/data/config/FontsCfg.table +++ b/screen_res/font/data/config/FontsCfg.table @@ -1,3 +1,3 @@ { -cfg={offsetH="0";cutDown=0;fontH=24;userImgPixClrN=4282994728;userImgPixClrP=4288471279;userImgMaxNum=223.22222222222;isRotate180FlipX=false;imgW=24;userImgPixSize="5";imgH=24;userImgDir="./data/fontimg/";cutRight=0;cwRotate90=0;font="仿宋";fontStyple=0;offsetV="0";cutLeft=0;cutUp=0;isRotate180FlipY=false;fontW=24} +cfg={cutRight=0;cutDown=0;cutLeft=0;userImgPixClrN=4282994728;userImgPixClrP=4288471279;userImgMaxNum=223.22222222222;isRotate180FlipX=false;imgW=24;userImgPixSize="5";imgH=24;userImgDir="./data/fontimg/";offsetH="0";cwRotate90=0;font="仿宋";fontStyple=1;cutUp=0;fontH=24;offsetV="0";isRotate180FlipY=false;fontW=24} } \ No newline at end of file diff --git a/screen_res/font/data/config/array2ImgFrom.table b/screen_res/font/data/config/array2ImgFrom.table index ccb015a..229c285 100644 --- a/screen_res/font/data/config/array2ImgFrom.table +++ b/screen_res/font/data/config/array2ImgFrom.table @@ -3,15 +3,15 @@ edtOffset="0"; cmbbxMode=1; rdScanModeVH=1; rdComVcc=0; -edtImgW='8\r\n'; -edtImgH="16"; -edtArray=' { 0x08,0xF8,0x08,0x08,0x08,0xC8,0x18,0x00,0x00,0x3F,0x21,0x21,0x21,0x23,0x30,0x00, }/* 0, "中",Size:100, 25×25 */'; +edtImgW="24"; +edtImgH="24"; +edtArray=' {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1C, 0x00, 0x00, 0x00,\r\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x82, 0xFF, 0x21, 0x21, 0x11, 0xF9, 0x01, 0x60, 0x1C,\r\n 0x63, 0x82, 0x62, 0x1F, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x0C, 0x03, 0x10, 0x10, 0x70,\r\n 0x4F, 0x40, 0x20, 0x10, 0x08, 0x06, 0x01, 0x06, 0x08, 0x70, 0x60, 0x40, 0x40, 0x00, 0x00}'; rdScanModeV=0; rdComGnd=1; -rdScanModeHV=0; +rdScanModeH=0; afterLoad=null; beforeSave=null; rdByteLsb=1; rdByteMsb=0; -rdScanModeH=0 +rdScanModeHV=0 } \ No newline at end of file diff --git a/screen_res/font/data/config/arrayCfg.table b/screen_res/font/data/config/arrayCfg.table index b7423d1..e0fa78f 100644 --- a/screen_res/font/data/config/arrayCfg.table +++ b/screen_res/font/data/config/arrayCfg.table @@ -1,6 +1,6 @@ { -scanMode="VH"; isByteMsb=0; +scanMode="VH"; txtLineCharMaxNum=20; isCommonGnd=1 } \ No newline at end of file diff --git a/screen_res/font/data/config/arrayCfgFrom.table b/screen_res/font/data/config/arrayCfgFrom.table index 812acdf..dbdd2dd 100644 --- a/screen_res/font/data/config/arrayCfgFrom.table +++ b/screen_res/font/data/config/arrayCfgFrom.table @@ -1,13 +1,13 @@ { -rdScanModeH=0; +rdScanModeHV=0; afterLoad=null; rdScanModeVH=1; rdByteLsb=1; rdComVcc=0; beforeSave=null; +rdScanModeH=0; edtTxtRowByteNum="20"; -rdScanModeHV=0; -rdScanModeV=0; rdByteMsb=0; +rdScanModeV=0; rdComGnd=1 } \ No newline at end of file