diff --git a/.vscode/settings.json b/.vscode/settings.json index ff9b770..c7b552b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -77,6 +77,10 @@ "ble_db_discovery.h": "c", "ble_gatt_db.h": "c", "nrf_ble_gq.h": "c", - "ti_ads1293_register_settings.h": "c" + "ti_ads1293_register_settings.h": "c", + "typeinfo": "c", + "fontlib.h": "c", + "font.h": "c", + "display_manager.h": "c" } } \ No newline at end of file diff --git a/app/app.uvoptx b/app/app.uvoptx index 833670c..beef7a2 100644 --- a/app/app.uvoptx +++ b/app/app.uvoptx @@ -152,66 +152,18 @@ 0 0 - 245 + 576 1 -
162232
+
181920
0 0 0 0 0 1 - .\src\three_lead\three_lead_board.c + .\src\basic\ssd1306\driver_ssd1306_basic.c - \\nrf52833_xxaa\src/three_lead/three_lead_board.c\245 -
- - 1 - 0 - 116 - 1 -
168702
- 0 - 0 - 0 - 0 - 0 - 1 - ..\sdk\external\fatfs\port\diskio_blkdev.c - - \\nrf52833_xxaa\../sdk/external/fatfs/port/diskio_blkdev.c\116 -
- - 2 - 0 - 129 - 1 -
168740
- 0 - 0 - 0 - 0 - 0 - 1 - ..\sdk\external\fatfs\port\diskio_blkdev.c - - \\nrf52833_xxaa\../sdk/external/fatfs/port/diskio_blkdev.c\129 -
- - 3 - 0 - 120 - 1 -
168706
- 0 - 0 - 0 - 0 - 0 - 1 - ..\sdk\external\fatfs\port\diskio_blkdev.c - - \\nrf52833_xxaa\../sdk/external/fatfs/port/diskio_blkdev.c\120 + \\nrf52833_xxaa\src/basic/ssd1306/driver_ssd1306_basic.c\576
@@ -600,6 +552,18 @@ 0 0 + + 1 + 15 + 1 + 0 + 0 + 0 + .\src\basic\ssd1306\fontlib.c + fontlib.c + 0 + 0 + @@ -610,7 +574,7 @@ 0 2 - 15 + 16 1 0 0 @@ -630,7 +594,7 @@ 0 3 - 16 + 17 1 0 0 @@ -642,7 +606,7 @@ 3 - 17 + 18 1 0 0 @@ -662,7 +626,7 @@ 0 4 - 18 + 19 1 0 0 @@ -682,7 +646,7 @@ 0 5 - 19 + 20 1 0 0 @@ -694,7 +658,7 @@ 5 - 20 + 21 1 0 0 @@ -706,7 +670,7 @@ 5 - 21 + 22 1 0 0 @@ -718,7 +682,7 @@ 5 - 22 + 23 1 0 0 @@ -730,7 +694,7 @@ 5 - 23 + 24 1 0 0 @@ -742,7 +706,7 @@ 5 - 24 + 25 1 0 0 @@ -754,7 +718,7 @@ 5 - 25 + 26 1 0 0 @@ -766,7 +730,7 @@ 5 - 26 + 27 1 0 0 @@ -786,7 +750,7 @@ 0 6 - 27 + 28 1 0 0 @@ -800,13 +764,13 @@ nRF_Drivers - 0 + 1 0 0 0 7 - 28 + 29 1 0 0 @@ -818,7 +782,7 @@ 7 - 29 + 30 1 0 0 @@ -830,7 +794,7 @@ 7 - 30 + 31 1 0 0 @@ -842,7 +806,7 @@ 7 - 31 + 32 1 0 0 @@ -854,7 +818,7 @@ 7 - 32 + 33 1 0 0 @@ -866,7 +830,7 @@ 7 - 33 + 34 1 0 0 @@ -878,7 +842,7 @@ 7 - 34 + 35 1 0 0 @@ -890,7 +854,7 @@ 7 - 35 + 36 1 0 0 @@ -902,7 +866,7 @@ 7 - 36 + 37 1 0 0 @@ -914,7 +878,7 @@ 7 - 37 + 38 1 0 0 @@ -926,7 +890,7 @@ 7 - 38 + 39 1 0 0 @@ -938,7 +902,7 @@ 7 - 39 + 40 1 0 0 @@ -950,7 +914,7 @@ 7 - 40 + 41 1 0 0 @@ -962,7 +926,7 @@ 7 - 41 + 42 1 0 0 @@ -974,7 +938,7 @@ 7 - 42 + 43 1 0 0 @@ -986,7 +950,7 @@ 7 - 43 + 44 1 0 0 @@ -998,7 +962,7 @@ 7 - 44 + 45 1 0 0 @@ -1010,7 +974,7 @@ 7 - 45 + 46 1 0 0 @@ -1020,6 +984,18 @@ 0 0 + + 7 + 47 + 1 + 0 + 0 + 0 + ..\sdk\modules\nrfx\drivers\src\nrfx_rtc.c + nrfx_rtc.c + 0 + 0 + @@ -1030,7 +1006,7 @@ 0 8 - 46 + 48 1 0 0 @@ -1042,7 +1018,7 @@ 8 - 47 + 49 1 0 0 @@ -1054,7 +1030,7 @@ 8 - 48 + 50 1 0 0 @@ -1066,7 +1042,7 @@ 8 - 49 + 51 1 0 0 @@ -1078,7 +1054,7 @@ 8 - 50 + 52 1 0 0 @@ -1090,7 +1066,7 @@ 8 - 51 + 53 1 0 0 @@ -1102,7 +1078,7 @@ 8 - 52 + 54 1 0 0 @@ -1114,7 +1090,7 @@ 8 - 53 + 55 1 0 0 @@ -1126,7 +1102,7 @@ 8 - 54 + 56 1 0 0 @@ -1138,7 +1114,7 @@ 8 - 55 + 57 1 0 0 @@ -1150,7 +1126,7 @@ 8 - 56 + 58 1 0 0 @@ -1162,7 +1138,7 @@ 8 - 57 + 59 1 0 0 @@ -1174,7 +1150,7 @@ 8 - 58 + 60 1 0 0 @@ -1186,7 +1162,7 @@ 8 - 59 + 61 1 0 0 @@ -1198,7 +1174,7 @@ 8 - 60 + 62 1 0 0 @@ -1210,7 +1186,7 @@ 8 - 61 + 63 1 0 0 @@ -1222,7 +1198,7 @@ 8 - 62 + 64 1 0 0 @@ -1234,7 +1210,7 @@ 8 - 63 + 65 1 0 0 @@ -1246,7 +1222,7 @@ 8 - 64 + 66 1 0 0 @@ -1258,7 +1234,7 @@ 8 - 65 + 67 1 0 0 @@ -1270,7 +1246,7 @@ 8 - 66 + 68 1 0 0 @@ -1282,7 +1258,7 @@ 8 - 67 + 69 1 0 0 @@ -1294,7 +1270,7 @@ 8 - 68 + 70 1 0 0 @@ -1306,7 +1282,7 @@ 8 - 69 + 71 1 0 0 @@ -1318,7 +1294,7 @@ 8 - 70 + 72 1 0 0 @@ -1330,7 +1306,7 @@ 8 - 71 + 73 1 0 0 @@ -1342,7 +1318,7 @@ 8 - 72 + 74 1 0 0 @@ -1362,7 +1338,7 @@ 0 9 - 73 + 75 1 0 0 @@ -1374,7 +1350,7 @@ 9 - 74 + 76 1 0 0 @@ -1386,7 +1362,7 @@ 9 - 75 + 77 1 0 0 @@ -1398,7 +1374,7 @@ 9 - 76 + 78 1 0 0 @@ -1410,7 +1386,7 @@ 9 - 77 + 79 1 0 0 @@ -1422,7 +1398,7 @@ 9 - 78 + 80 1 0 0 @@ -1442,7 +1418,7 @@ 0 10 - 79 + 81 1 0 0 @@ -1454,7 +1430,7 @@ 10 - 80 + 82 1 0 0 @@ -1466,7 +1442,7 @@ 10 - 81 + 83 1 0 0 @@ -1486,7 +1462,7 @@ 0 11 - 82 + 84 1 0 0 @@ -1498,7 +1474,7 @@ 11 - 83 + 85 1 0 0 @@ -1510,7 +1486,7 @@ 11 - 84 + 86 1 0 0 @@ -1530,7 +1506,7 @@ 0 12 - 85 + 87 1 0 0 @@ -1550,7 +1526,7 @@ 0 13 - 86 + 88 1 0 0 @@ -1562,7 +1538,7 @@ 13 - 87 + 89 1 0 0 diff --git a/app/app.uvprojx b/app/app.uvprojx index e7b8b8c..136dfea 100644 --- a/app/app.uvprojx +++ b/app/app.uvprojx @@ -453,6 +453,11 @@ 1 .\src\one_conduction\display_manager.c + + fontlib.c + 1 + .\src\basic\ssd1306\fontlib.c + @@ -1709,6 +1714,11 @@ 1 ..\sdk\modules\nrfx\drivers\src\nrfx_wdt.c + + nrfx_rtc.c + 1 + ..\sdk\modules\nrfx\drivers\src\nrfx_rtc.c + @@ -4242,6 +4252,11 @@ 1 .\src\one_conduction\display_manager.c + + fontlib.c + 1 + .\src\basic\ssd1306\fontlib.c + @@ -5498,6 +5513,11 @@ 1 ..\sdk\modules\nrfx\drivers\src\nrfx_wdt.c + + nrfx_rtc.c + 1 + ..\sdk\modules\nrfx\drivers\src\nrfx_rtc.c + diff --git a/app/config/sdk_config.h b/app/config/sdk_config.h index 31b3e78..12dcb3b 100644 --- a/app/config/sdk_config.h +++ b/app/config/sdk_config.h @@ -5421,7 +5421,7 @@ // RTC_ENABLED - nrf_drv_rtc - RTC peripheral driver - legacy layer //========================================================== #ifndef RTC_ENABLED -#define RTC_ENABLED 0 +#define RTC_ENABLED 1 #endif // RTC_DEFAULT_CONFIG_FREQUENCY - Frequency <16-32768> @@ -5472,7 +5472,7 @@ #ifndef RTC2_ENABLED -#define RTC2_ENABLED 0 +#define RTC2_ENABLED 1 #endif // NRF_MAXIMUM_LATENCY_US - Maximum possible time[us] in highest priority interrupt diff --git a/app/src/basic/ssd1306/driver_ssd1306_basic.c b/app/src/basic/ssd1306/driver_ssd1306_basic.c index 81e17e4..95a30a1 100644 --- a/app/src/basic/ssd1306/driver_ssd1306_basic.c +++ b/app/src/basic/ssd1306/driver_ssd1306_basic.c @@ -37,6 +37,8 @@ #include "driver_ssd1306_basic.h" +#include + static ssd1306_handle_t gs_handle; /**< ssd1306 handle */ /** @@ -514,36 +516,66 @@ uint8_t ssd1306_basic_picture(uint8_t left, uint8_t top, uint8_t right, uint8_t } } uint8_t ssd1306_basic_draw_screen(const char *img) { - // ssd1306_gram_write_point for (size_t i = 0; i < 1024; i++) { - uint8_t x_start = i % (128 / 8); - uint8_t y = i / (128 / 8); - - ssd1306_gram_write_point(&gs_handle, x_start * 8 + 7, y, img[i] & 0x01); - ssd1306_gram_write_point(&gs_handle, x_start * 8 + 6, y, img[i] & 0x02); - ssd1306_gram_write_point(&gs_handle, x_start * 8 + 5, y, img[i] & 0x04); - ssd1306_gram_write_point(&gs_handle, x_start * 8 + 4, y, img[i] & 0x08); - ssd1306_gram_write_point(&gs_handle, x_start * 8 + 3, y, img[i] & 0x10); - ssd1306_gram_write_point(&gs_handle, x_start * 8 + 2, y, img[i] & 0x20); - ssd1306_gram_write_point(&gs_handle, x_start * 8 + 1, y, img[i] & 0x40); - ssd1306_gram_write_point(&gs_handle, x_start * 8 + 0, y, img[i] & 0x80); + gs_handle.gram[i % 128][i / 128] = img[i]; } } uint8_t ssd1306_basic_gram_update() { ssd1306_gram_update(&gs_handle); } +#include "znordic.h" +uint8_t ssd1306_basic_draw_one_chr(uint8_t xs, uint8_t ys, char *str, FontLibrary_t *frontlib) { + const uint8_t *frontbuf = NULL; + bool is_ascii = false; + uint8_t charsize = 1; + + is_ascii = utf8_is_ascii(str); + if (is_ascii) { + charsize = 1; + } else { + charsize = 3; // utf8 编码中文是3个字节 + } + + FontLibrary_findchar(frontlib, str, &frontbuf); + if (!frontbuf) return 1; + + // ssd1306_gram_write_point + for (uint32_t xoff = 0; xoff < frontlib->widthPixel; xoff++) { + for (uint32_t yoff = 0; yoff < frontlib->heightPixel; yoff++) { + bool pixval = 0; + /** + * |||||| + * VVVVVV + * |||||| + * VVVVVV + * + * x = 3; y = 9; + * byteoff = x + y / frontWidthPixel * frontWidthPixel + * bitoff = y % 8 + */ + + uint8_t byteoff = xoff + yoff / 8 * frontlib->widthPixel; + uint8_t bitoff = yoff % 8; + pixval = (frontbuf[byteoff] >> bitoff) & 0x01; + ssd1306_gram_write_point(&gs_handle, xs + xoff, ys + yoff, pixval); + } + } + return 0; +} -// uint8_t ssd1306_basic_draw_screen(const char* img){ -// // gs_handle.gram[] -// // for (int i = 0; i < 128; i++) -// // { -// // for (int j = 0; j < 8; j++) -// // { -// // gs_handle.gram[i][j] = img[j*128+i]; -// // } -// // } - -// for (size_t i = 0; i < 1024; i++) -// { -// gs_handle.gram[i%128][i/128] = img[i]; -// } - -// } +uint8_t ssd1306_basic_draw_str(uint8_t xs, uint8_t ys, const char *str, FontLibrary_t *frontlib) { + uint8_t x = xs; + uint8_t y = ys; + StrIterator_t iterator; + if (frontlib->fontCode == kutf8) { + utf8_iterator_start(&iterator, str); + char *nowchr = NULL; + while (true) { + utf8_iterator_next(&iterator, &nowchr); + if (!nowchr) { + break; + } + ssd1306_basic_draw_one_chr(x, y, nowchr, frontlib); + x += (uint8_t)(frontlib->widthPixel); /* x + font/2 */ + } + } + return 0; +} \ No newline at end of file diff --git a/app/src/basic/ssd1306/driver_ssd1306_basic.h b/app/src/basic/ssd1306/driver_ssd1306_basic.h index fa780fa..ec47910 100644 --- a/app/src/basic/ssd1306/driver_ssd1306_basic.h +++ b/app/src/basic/ssd1306/driver_ssd1306_basic.h @@ -39,6 +39,7 @@ #define DRIVER_SSD1306_BASIC_H #include "driver_ssd1306_interface.h" +#include "fontlib.h" #ifdef __cplusplus extern "C" { @@ -150,7 +151,7 @@ uint8_t ssd1306_basic_write_point(uint8_t x, uint8_t y, uint8_t data); * - 1 read point failed * @note none */ -uint8_t ssd1306_basic_read_point(uint8_t x, uint8_t y, uint8_t *data); +uint8_t ssd1306_basic_read_point(uint8_t x, uint8_t y, uint8_t* data); /** * @brief basic example draw a string @@ -165,8 +166,7 @@ uint8_t ssd1306_basic_read_point(uint8_t x, uint8_t y, uint8_t *data); * - 1 write string failed * @note none */ -uint8_t ssd1306_basic_string(uint8_t x, uint8_t y, char *str, uint16_t len, uint8_t color, ssd1306_font_t font); - +uint8_t ssd1306_basic_string(uint8_t x, uint8_t y, char* str, uint16_t len, uint8_t color, ssd1306_font_t font); /** * @brief basic example fill a rectangle * @param[in] left is the left coordinate x @@ -193,24 +193,18 @@ uint8_t ssd1306_basic_rect(uint8_t left, uint8_t top, uint8_t right, uint8_t bot * - 1 draw picture failed * @note none */ -uint8_t ssd1306_basic_picture(uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t *img); -/** - * @brief - * | - * v - * ---------------> - * ' - * ' - * ' - * ' - * ----------------> - */ -uint8_t ssd1306_basic_draw_screen(const char* img); -uint8_t ssd1306_basic_gram_update(); +uint8_t ssd1306_basic_picture(uint8_t left, uint8_t top, uint8_t right, uint8_t bottom, uint8_t* img); + +/******************************************************************************* + * ADD_BY_ZHAOHE * + *******************************************************************************/ -ssd1306_handle_t *ssd1306_handler(); +uint8_t ssd1306_basic_draw_screen(const char* img); +uint8_t ssd1306_basic_gram_update(); +ssd1306_handle_t* ssd1306_handler(); +uint8_t ssd1306_basic_line(uint8_t x, uint8_t y, uint8_t data); -uint8_t ssd1306_basic_line(uint8_t x, uint8_t y, uint8_t data); +uint8_t ssd1306_basic_draw_str(uint8_t xs, uint8_t ys, const char *str, FontLibrary_t *frontlib); /** * @} diff --git a/app/src/basic/ssd1306/fontlib.c b/app/src/basic/ssd1306/fontlib.c new file mode 100644 index 0000000..39c9e56 --- /dev/null +++ b/app/src/basic/ssd1306/fontlib.c @@ -0,0 +1,77 @@ +#include "fontlib.h" + +static FontLibrary_t s_fontlibrary[10]; +static uint8_t s_fontlibrarylen = 0; + +uint8_t utf8_iterator_start(StrIterator_t *iterator, const char *chr) { + iterator->str = chr; + iterator->nowoff = 0; +} +uint8_t utf8_iterator_isend(StrIterator_t *iterator) { return iterator->str[iterator->nowoff] == '\0'; } +void utf8_iterator_next(StrIterator_t *iterator, const char **nowchr) { + *nowchr = iterator->str + iterator->nowoff; + if (*nowchr[0] == '\0') { + *nowchr = NULL; + return; + } + while (iterator->str[iterator->nowoff] != '\0') { + if ((iterator->str[iterator->nowoff] < 0x80)) { + iterator->nowoff++; + break; + } else { + iterator->nowoff += 3; + break; + } + } +} + +void FontLibrary_regsiter(FontLibrary_t *lib) { s_fontlibrary[s_fontlibrarylen++] = *lib; } + +FontLibrary_t *FontLibrary_findlib(FontCode_t fontcode, uint8_t widthPixel, uint8_t heightPixel, bool isAscii) { + for (size_t i = 0; i < s_fontlibrarylen; i++) { + if (s_fontlibrary[i].fontCode == fontcode && // + s_fontlibrary[i].isAscii == isAscii && // + s_fontlibrary[i].widthPixel == widthPixel && // + s_fontlibrary[i].heightPixel == heightPixel) { + return &s_fontlibrary[i]; + } + } + return NULL; +} + +void FontLibrary_findchar(FontLibrary_t *lib, const char *chr, const uint8_t **font) { + *font = NULL; + + uint8_t eachIndexWidth = 1; + if (lib->isAscii) { + eachIndexWidth = 1; + } else { + if (lib->fontCode == kutf8) { + eachIndexWidth = 3; + } else if (lib->fontCode == kgbk) { + eachIndexWidth = 2; + } + } + + if (eachIndexWidth == 1) { + for (int i = 0; i < lib->fontIndexLen; i += 1) { + if (lib->fontIndex[i] == chr[0]) { + *font = &lib->font[i * lib->widthPixel * lib->heightPixel / 8]; + } + } + } else if (eachIndexWidth == 2) { + for (int i = 0; i < lib->fontIndexLen; i += 2) { + if (lib->fontIndex[i] == chr[0] && lib->fontIndex[i + 1] == chr[1]) { + *font = &lib->font[i / 2 * lib->widthPixel * lib->heightPixel / 8]; + } + } + } else if (eachIndexWidth == 3) { + for (int i = 0; i < lib->fontIndexLen; i += 3) { + if (lib->fontIndex[i] == chr[0] && lib->fontIndex[i + 1] == chr[1] && lib->fontIndex[i + 2] == chr[2]) { + *font = &lib->font[i / 3 * lib->widthPixel * lib->heightPixel / 8]; + } + } + } +} + +bool utf8_is_ascii(uint8_t *chr) { return chr[0] < 0x80; } \ No newline at end of file diff --git a/app/src/basic/ssd1306/fontlib.h b/app/src/basic/ssd1306/fontlib.h new file mode 100644 index 0000000..ca633f9 --- /dev/null +++ b/app/src/basic/ssd1306/fontlib.h @@ -0,0 +1,40 @@ +#pragma once +#include +#include +#include +typedef enum { + kutf8, + kgbk, +} FontCode_t; + +typedef enum { + kFontSize08x16, + kFontSize16x16, +} FontSize_t; + +typedef struct { + const uint8_t *font; + + const char *fontIndex; + int fontIndexLen; + + FontCode_t fontCode; + bool isAscii; + + uint8_t widthPixel; + uint8_t heightPixel; +} FontLibrary_t; + +typedef struct { + const char *str; + int nowoff; +} StrIterator_t; + +uint8_t utf8_iterator_start(StrIterator_t *iterator, const char *chr); +uint8_t utf8_iterator_isend(StrIterator_t *iterator); +void utf8_iterator_next(StrIterator_t *iterator, const char **nowchr); +bool utf8_is_ascii(uint8_t *chr); + +void FontLibrary_regsiter(FontLibrary_t *lib); +FontLibrary_t *FontLibrary_findlib(FontCode_t fontcode, uint8_t widthPixel, uint8_t heightPixel, bool isAscii); +void FontLibrary_findchar(FontLibrary_t *lib, const char *chr, const uint8_t **font); diff --git a/app/src/one_conduction/display_manager.c b/app/src/one_conduction/display_manager.c index 9a5500e..6b2e6a7 100644 --- a/app/src/one_conduction/display_manager.c +++ b/app/src/one_conduction/display_manager.c @@ -4,15 +4,34 @@ // #include "basic/ssd1306/driver_ssd1306.h" #include "basic/ssd1306/driver_ssd1306_basic.h" +#include "font.h" #include "one_conduction_board.h" +#include PageState_t g_pageState; void dsp_mgr_init(void) { - // donothing + FontLibrary_regsiter(&fontclocklib); + + // fronlib16.asciifront = assci16code; + // fronlib16.asciifrontIndex = "0123456789Ero."; + // fronlib16.asciifrontIndexLen = strlen(fronlib16.asciifrontIndex); + // fronlib16.gbkfront = gbk16code; + // fronlib16.gbkfrontIndex = "米开机中测距录像错误电量充"; + // fronlib16.gbkfrontIndexLen = strlen(fronlib16.gbkfrontIndex); + // fronlib16.eachfrontlen = 32; } void dsp_mgr_change_to_page(page_t page) { // - g_pageState.page = page; + g_pageState.page = page; + g_pageState.last_page = page; + g_pageState.page_change_to_page_time = znordic_getpower_on_s(); + + g_pageState.in_prompt = false; + memset(g_pageState.prompt, 0, sizeof(g_pageState.prompt)); +} + +uint32_t dsp_mgr_get_page_elapsed_time_s(void) { // + return znordic_getpower_on_s() - g_pageState.page_change_to_page_time; } void dsp_mgr_schedule(void) {} @@ -37,14 +56,40 @@ void dsp_mgr_change_to_welcome() { */ SingleLeadECG_screen_init(); - // ssd1306_basic_string(0, 0, "123456789123456789123", 21, 0, SSD1306_FONT_12); - ssd1306_basic_draw_screen(gImage_logo_mono); ssd1306_basic_gram_update(); + dsp_mgr_change_to_page(kPage_welcome); + + dsp_mgr_change_to_main(); +} + +const char* fmt(const char* format, ...) { + static char buf[128]; + va_list args; + va_start(args, format); + vsprintf(buf, format, args); + va_end(args); + ZLOGI("fmt:%s", buf); + return buf; +} + +void dsp_mgr_change_to_main() { + /** + * @brief + */ + ssd1306_basic_clear(); + //打印时间 + ssd1306_basic_draw_str(40, 32 - fontclocklib.heightPixel / 2, fmt("%02d:%02d", 6, 32), &fontclocklib); + //打印电量 + + ssd1306_basic_gram_update(); +} +void dsp_mgr_change_to_preparePage() { + /** + * @brief + */ } -void dsp_mgr_change_to_main() {} -void dsp_mgr_change_to_preparePage() {} void dsp_mgr_change_to_sampling() {} void dsp_mgr_change_to_samplingError() {} void dsp_mgr_change_to_storaging() {} diff --git a/app/src/one_conduction/display_manager.h b/app/src/one_conduction/display_manager.h index a020dd1..84c8e82 100644 --- a/app/src/one_conduction/display_manager.h +++ b/app/src/one_conduction/display_manager.h @@ -41,12 +41,12 @@ typedef struct { /** * @brief 页面状态 */ - page_t page; // 当前页面 - page_t last_page; // 上一个页面 - uint32_t page_elapsed_time; // 当前页面持续的时间 - uint32_t page_total_time; // 当前页面持续的总时间 - bool in_prompt; // 是否在提示状态 - char prompt[32]; // 提示内容 + page_t page; // 当前页面 + page_t last_page; // 上一个页面 + uint32_t page_change_to_page_time; // 当前页面持续的时间 + + bool in_prompt; // 是否在提示状态 + char prompt[32]; // 提示内容 /** * @brief @@ -58,6 +58,7 @@ void dsp_mgr_init(void); void dsp_mgr_schedule(void); PageState_t* dsp_mgr_get_state(void); +uint32_t dsp_mgr_get_page_elapsed_time_s(void); void dsp_mgr_change_to_poweroff(); void dsp_mgr_change_to_welcome(); diff --git a/app/src/one_conduction/font.h b/app/src/one_conduction/font.h new file mode 100644 index 0000000..5f19bdc --- /dev/null +++ b/app/src/one_conduction/font.h @@ -0,0 +1,125 @@ +// https://www.23bei.com/tool-965.html +#pragma ocne +#include +#if 0 +const char fontclocklib_code[] = { + 0x00, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x01, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x07, 0x80, 0x78, 0x06, // + 0x00, 0x18, 0x04, 0x00, 0x08, 0x06, 0x00, 0x18, 0x07, 0x80, 0x78, 0x03, 0xFF, 0xF0, 0x01, 0xFF, // + 0xE0, 0x00, 0x7F, 0x80, // + 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x02, 0x00, 0x10, 0x02, 0x00, 0x10, 0x07, 0xFF, 0xF0, 0x0F, // + 0xFF, 0xF0, 0x0F, 0xFF, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, // + 0x00, 0x00, 0x00, 0x00, // + 0x03, 0x80, 0x70, 0x07, 0x80, 0xF0, 0x0D, 0x81, 0xB0, 0x08, 0x03, 0x30, 0x08, 0x06, 0x30, 0x08, // + 0x0C, 0x30, 0x0C, 0x38, 0x30, 0x0F, 0xF8, 0x30, 0x07, 0xF1, 0xF0, 0x03, 0xC1, 0xF0, 0x00, 0x00, // + 0x00, 0x00, 0x00, 0x00, // + 0x03, 0x81, 0xC0, 0x07, 0x81, 0xE0, 0x0F, 0x81, 0xF0, 0x08, 0x10, 0x10, 0x08, 0x10, 0x10, 0x0C, // + 0x30, 0x10, 0x0F, 0xF8, 0x30, 0x07, 0xEF, 0xF0, 0x03, 0xCF, 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x00, // + 0x00, 0x00, 0x00, 0x00, // + 0x00, 0x06, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3A, 0x00, 0x00, 0xE2, 0x00, 0x01, 0xC2, 0x10, 0x07, // + 0x02, 0x10, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF0, 0x1F, 0xFF, 0xF0, 0x00, 0x02, 0x10, 0x00, 0x02, // + 0x10, 0x00, 0x00, 0x00, // + 0x00, 0x01, 0xC0, 0x0F, 0xF9, 0xE0, 0x0F, 0xF9, 0xB0, 0x0C, 0x30, 0x10, 0x0C, 0x20, 0x10, 0x0C, // + 0x20, 0x10, 0x0C, 0x30, 0x70, 0x0C, 0x3F, 0xF0, 0x0C, 0x1F, 0xE0, 0x0C, 0x0F, 0x80, 0x00, 0x00, // + 0x00, 0x00, 0x00, 0x00, // + 0x00, 0x7F, 0x00, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x07, 0x18, 0x70, 0x0C, 0x30, 0x30, 0x08, // + 0x20, 0x10, 0x08, 0x20, 0x10, 0x0E, 0x30, 0x30, 0x0E, 0x3F, 0xE0, 0x06, 0x1F, 0xE0, 0x00, 0x0F, // + 0x80, 0x00, 0x00, 0x00, // + 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x0F, 0x80, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x01, 0xF0, 0x0C, // + 0x0F, 0xF0, 0x0C, 0x3F, 0xF0, 0x0D, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, // + 0x00, 0x00, 0x00, 0x00, // + 0x03, 0xC3, 0xC0, 0x07, 0xEF, 0xE0, 0x0F, 0xEF, 0xE0, 0x0C, 0x78, 0x30, 0x08, 0x30, 0x10, 0x08, // + 0x38, 0x10, 0x08, 0x18, 0x10, 0x0C, 0x3C, 0x30, 0x0F, 0xEF, 0xF0, 0x07, 0xE7, 0xE0, 0x03, 0x83, // + 0xC0, 0x00, 0x00, 0x00, // + 0x01, 0xF0, 0x00, 0x07, 0xF8, 0x60, 0x07, 0xFC, 0x70, 0x0E, 0x0C, 0x70, 0x08, 0x04, 0x10, 0x08, // + 0x04, 0x10, 0x08, 0x0C, 0x30, 0x0E, 0x19, 0xE0, 0x07, 0xFF, 0xE0, 0x03, 0xFF, 0x80, 0x00, 0xFE, // + 0x00, 0x00, 0x00, 0x00, // + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x70, 0x00, // + 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0xE0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // + 0x00, 0x00, 0x00, 0x00, // +}; + +static FontLibrary_t fontclocklib = { + .font = fontclocklib_code, + .fontIndex = "0123456789:", + .fontIndexLen = 12, + .fontCode = kutf8, + .isAscii = true, + .widthPixel = 24, + .heightPixel = 24, +}; +#endif + +// DB 00H 00H 07H F0H 0FH F8H 18H 0CH 10H 04H 18H 0CH 0FH F8H 07H F0H;"0",0 +// DB 10H 08H 10H 08H 3FH F8H 3FH F8H 00H 08H 00H 08H 00H 00H 00H 00H;"1",1 +// DB 1CH 18H 3CH 38H 20H 68H 20H C8H 23H 88H 3FH 18H 1CH 18H 00H 00H;"2",2 +// DB 18H 30H 38H 38H 22H 08H 22H 08H 27H 18H 3DH F0H 18H E0H 00H 00H;"3",3 +// DB 01H C0H 07H C0H 0EH 48H 18H 48H 3FH F8H 3FH F8H 00H 48H 00H 00H;"4",4 +// DB 3FH 30H 3FH 38H 23H 08H 22H 08H 23H 18H 21H F0H 20H E0H 00H 00H;"5",5 +// DB 0FH E0H 1FH F0H 33H 18H 22H 08H 33H 18H 31H F0H 00H E0H 00H 00H;"6",6 +// DB 38H 00H 38H 00H 21H F8H 27H F8H 3EH 00H 38H 00H 20H 00H 00H 00H;"7",7 +// DB 1CH 70H 3EH F8H 23H 88H 21H 08H 23H 88H 3EH F8H 1CH 70H 00H 00H;"8",8 +// DB 0EH 00H 1FH 18H 31H 98H 20H 88H 31H 98H 1FH F0H 0FH E0H 00H 00H;"9",9 +// DB 00H 00H 00H 00H 06H 18H 06H 18H 06H 18H 00H 00H 00H 00H 00H 00H;":",10 + +#if 0 +//32*32 +const char fontclocklib_code[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x40, 0x40, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFE, 0xFF, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0xFF, 0xFE, 0xF0, + 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x04, 0x04, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00, /*"0",0*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x06, 0x07, 0x07, 0x07, 0x06, 0x04, 0x04, 0x04, 0x00, 0x00, /*"1",1*/ + 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x40, 0x40, 0x40, 0x40, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x1F, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0x7F, 0x3E, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x01, 0x00, /*"2",2*/ + 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0x40, 0x40, 0x40, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x00, 0x80, 0x80, 0x80, 0xC0, 0xE1, 0x7F, 0x3F, 0x1E, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0xFF, 0xFE, 0x78, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x06, 0x04, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03, 0x01, 0x00, 0x00, /*"3",3*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x70, 0x3C, 0x0E, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x1C, 0x1E, 0x13, 0x11, 0x10, 0x10, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x08, 0x08, /*"4",4*/ + 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xC7, 0x60, 0x20, 0x20, 0x20, 0x60, 0xE0, 0xC0, 0x80, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0xE1, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03, 0x01, 0x00, 0x00, /*"5",5*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x40, 0x40, 0x40, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFE, 0x8F, 0x81, 0xC0, 0x40, 0x40, 0x40, 0xC0, 0xC3, 0x83, 0x03, 0x00, + 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xC3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03, 0x01, 0x00, /*"6",6*/ + 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x03, 0x01, 0x00, 0x00, 0x80, 0xE0, 0x78, 0x1E, 0x07, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFC, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*"7",7*/ + 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x40, 0x40, 0x40, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3F, 0x7F, 0xF1, 0xE0, 0xC0, 0x80, 0x80, 0x80, 0xE1, 0x7F, 0x3F, 0x1E, 0x00, + 0x00, 0xF8, 0xFC, 0xFE, 0x07, 0x03, 0x01, 0x01, 0x01, 0x03, 0x07, 0x0F, 0xFE, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x06, 0x04, 0x04, 0x04, 0x04, 0x06, 0x03, 0x03, 0x01, 0x00, 0x00, /*"8",8*/ + 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0x40, 0x40, 0x40, 0x40, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xFF, 0xFE, 0xF8, 0x00, + 0x00, 0x00, 0x81, 0x83, 0x87, 0x06, 0x04, 0x04, 0x04, 0x06, 0x83, 0xF3, 0xFF, 0x7F, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x04, 0x04, 0x04, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, /*"9",9*/ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xE0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /*":",10*/ +}; +static FontLibrary_t fontclocklib = { + .font = fontclocklib_code, + .fontIndex = "0123456789:", + .fontIndexLen = 12, + .fontCode = kutf8, + .isAscii = true, + .widthPixel = 16, + .heightPixel = 32, +}; +#endif + +//24*24 +const char fontclocklib_code[] = { + +0x00,0x00,0x80,0xC0,0xE0,0x60,0x20,0x60,0xE0,0xC0,0x80,0x00,0x00,0xFE,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFE,0x00,0x01,0x07,0x0F,0x1E,0x18,0x10,0x18,0x1E,0x0F,0x07,0x01,/*"0",0*/ +0x00,0x00,0x80,0x80,0x80,0xC0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x1F,0x1F,0x1F,0x10,0x10,0x10,0x00,/*"1",1*/ +0x00,0x80,0xC0,0x60,0x20,0x20,0x20,0x60,0xE0,0xC0,0x80,0x00,0x00,0x03,0x03,0x03,0x80,0xC0,0x60,0x38,0x3F,0x1F,0x07,0x00,0x00,0x1C,0x1E,0x1B,0x19,0x18,0x18,0x18,0x18,0x1F,0x1F,0x00,/*"2",2*/ +0x00,0x80,0xC0,0xE0,0x20,0x20,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x03,0x03,0x03,0x10,0x10,0x18,0x3F,0xEF,0xE7,0x80,0x00,0x00,0x07,0x0F,0x1F,0x10,0x10,0x10,0x18,0x1F,0x0F,0x07,0x00,/*"3",3*/ +0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x00,0xC0,0xF0,0xB8,0x8E,0x87,0x81,0xFF,0xFF,0xFF,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x1F,0x1F,0x10,0x10,/*"4",4*/ +0x00,0x00,0xE0,0xE0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x3F,0x3F,0x18,0x08,0x08,0x18,0xF8,0xF0,0xE0,0x00,0x00,0x07,0x0F,0x1B,0x10,0x10,0x10,0x1C,0x1F,0x0F,0x03,0x00,/*"5",5*/ +0x00,0x00,0x80,0xC0,0xC0,0x60,0x20,0x20,0xE0,0xE0,0xC0,0x00,0x00,0xFC,0xFF,0xFF,0x31,0x18,0x08,0x08,0x18,0xF8,0xF0,0xE0,0x00,0x01,0x07,0x0F,0x1C,0x18,0x10,0x10,0x18,0x0F,0x0F,0x03,/*"6",6*/ +0x00,0x00,0xC0,0xE0,0xE0,0x60,0x60,0x60,0x60,0xE0,0xE0,0x60,0x00,0x00,0x03,0x03,0x00,0x00,0xE0,0xF8,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,/*"7",7*/ +0x00,0x80,0xC0,0xE0,0x60,0x20,0x20,0x20,0x60,0xE0,0xC0,0x80,0x00,0x87,0xEF,0xEF,0x3C,0x18,0x38,0x30,0x78,0xEF,0xCF,0x83,0x00,0x07,0x0F,0x0F,0x18,0x10,0x10,0x10,0x18,0x1F,0x0F,0x07,/*"8",8*/ +0x00,0x00,0xC0,0xC0,0xE0,0x20,0x20,0x20,0xE0,0xC0,0x80,0x00,0x00,0x1F,0x3F,0x7F,0x60,0x40,0x40,0x60,0x30,0xFF,0xFF,0xFE,0x00,0x00,0x0C,0x1C,0x1C,0x10,0x10,0x18,0x0F,0x0F,0x03,0x00,/*"9",9*/ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x0E,0x0E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x1C,0x00,0x00,0x00,/*":",10*/ + +}; +static FontLibrary_t fontclocklib = { + .font = fontclocklib_code, + .fontIndex = "0123456789:", + .fontIndexLen = 12, + .fontCode = kutf8, + .isAscii = true, + .widthPixel = 12, + .heightPixel = 24, +}; \ No newline at end of file diff --git a/app/src/one_conduction/one_conduction_board.c b/app/src/one_conduction/one_conduction_board.c index b40e7ee..4d0dd6c 100644 --- a/app/src/one_conduction/one_conduction_board.c +++ b/app/src/one_conduction/one_conduction_board.c @@ -274,3 +274,4 @@ void SingleLeadECG_eeprom_read(uint32_t add, uint8_t *data, uint16_t len) { deviceSelect |= 0x01; // read nrf_drv_twi_rx(&m_eeprom_twi_master, deviceSelect, data, len); } + diff --git a/libznordic b/libznordic index 326ebab..75bac49 160000 --- a/libznordic +++ b/libznordic @@ -1 +1 @@ -Subproject commit 326ebab17be4472520b0b077f59edf09be8e0dda +Subproject commit 75bac4942446a40e70c2e5d1cbfe5171a869fd69 diff --git a/res/PCtoLCD2002完美版.zip b/res/PCtoLCD2002完美版.zip new file mode 100644 index 0000000..0b1deb1 Binary files /dev/null and b/res/PCtoLCD2002完美版.zip differ diff --git a/res/img2lcd_cfg.png b/res/img2lcd_cfg.png index 13d52be..6b2e9cf 100644 Binary files a/res/img2lcd_cfg.png and b/res/img2lcd_cfg.png differ diff --git a/res/logo_mono.c b/res/logo_mono.c index 2c7457f..d8c0c6a 100644 --- a/res/logo_mono.c +++ b/res/logo_mono.c @@ -1,4 +1,4 @@ -const unsigned char gImage_logo_mono[1024] = { /* 0X00,0X01,0X80,0X00,0X40,0X00, */ +const unsigned char gImage_logo_mono[1024] = { /* 0X22,0X01,0X80,0X00,0X40,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, @@ -15,38 +15,38 @@ const unsigned char gImage_logo_mono[1024] = { /* 0X00,0X01,0X80,0X00,0X40,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,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XC0,0XE0, +0XF0,0XF0,0XF0,0XF0,0XF0,0XF0,0XE0,0XE0,0XC0,0XC0,0X80,0X00,0X00,0X00,0X70,0XF8, +0XF0,0XF0,0XE0,0XC0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X80,0XC0,0X00,0X00,0X00,0X00,0XC0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0XC0,0XC0,0X00,0X00,0X00,0X80,0X80,0X80,0X80,0X80,0X80,0X80, +0X80,0X00,0X00,0X80,0X80,0X80,0X80,0X80,0X80,0X80,0X00,0XC0,0XC0,0X00,0X00,0X00, +0XC0,0XC0,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,0X7E,0XFF,0XFF,0XFF, +0XC3,0X81,0X00,0X30,0X78,0XF9,0XF1,0XF3,0XE7,0XC7,0XCF,0X8F,0X9F,0X3E,0X3C,0X3C, +0X01,0X01,0X03,0XCF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XE0,0XFC, +0XFF,0XFF,0X07,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0XB7,0X97,0X00,0X00, +0XFC,0XFC,0XFC,0XFE,0XFF,0XFE,0X01,0X1F,0XFF,0XF0,0X00,0X00,0X3E,0XFE,0XF0,0X00, +0X00,0X0C,0X9C,0XFC,0XFF,0XFF,0XEC,0X8C,0XFF,0XFF,0XFF,0X31,0X31,0X31,0X73,0XFF, +0XFF,0X00,0X01,0X01,0XFF,0XFF,0X39,0XFF,0XFF,0X01,0X86,0X8F,0X8F,0XFF,0XFE,0X8E, +0X8F,0X8F,0X8E,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,0X01,0X03,0X07, +0X0F,0X0F,0X1F,0X3E,0X3E,0X7C,0XF8,0XF9,0XF3,0XE3,0XE7,0XCF,0X8F,0X9F,0X1E,0X1E, +0X1E,0X1E,0X1F,0X0F,0X0F,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X01,0XFF, +0XFF,0XFF,0X00,0XFD,0XFD,0XCD,0X8D,0X8D,0X8D,0X8D,0X8D,0XFD,0XFD,0XF8,0X00,0X30, +0X3F,0X1F,0X01,0X3F,0XFF,0XFF,0XC0,0XC0,0XC3,0XC3,0XE0,0XFC,0X7C,0X1F,0X3F,0X3E, +0X00,0X0E,0X0F,0X07,0XFF,0XFF,0X01,0X01,0X7F,0XFF,0XFF,0XC6,0XC6,0XC6,0XC6,0XFF, +0XFF,0X00,0X60,0X60,0X7F,0X7F,0X33,0XFF,0XFF,0X98,0XC1,0XE1,0XF9,0X3F,0X0F,0X1F, +0X7D,0XF1,0XC1,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,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0XFC,0X03,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X01,0XFF,0X03,0XE0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X03,0XFF,0XC3,0XF8,0X00,0X43,0X00,0X03,0X00,0X0C,0X00,0X00,0X18,0XC0,0X00, -0X00,0X07,0XFF,0XE1,0XFC,0X00,0XC3,0X80,0X03,0X80,0X0C,0X7F,0X9F,0XD8,0XC0,0X00, -0X00,0X07,0XC7,0XF8,0XFC,0X00,0XFF,0XFC,0X0B,0X80,0X0C,0XFF,0XBF,0XDC,0XC0,0X00, -0X00,0X0F,0X81,0XFC,0X3E,0X00,0XFF,0XFC,0X1D,0X8C,0X0C,0XE3,0X8D,0XBF,0XE0,0X00, -0X00,0X0F,0X00,0XFF,0X1E,0X01,0XFF,0XFC,0XFD,0X8C,0X7F,0XE1,0X8D,0XBF,0XE0,0X00, -0X00,0X0F,0X0C,0X3F,0X1E,0X01,0XC0,0X00,0XFD,0X8C,0X7F,0XE1,0X8F,0X9F,0XE0,0X00, -0X00,0X0F,0X1F,0X0F,0X0E,0X01,0XDF,0XFC,0XFD,0XCE,0X3C,0XFF,0X8F,0X86,0X00,0X00, -0X00,0X0F,0X1F,0X87,0X0E,0X03,0XDF,0XF8,0XFC,0XCE,0X1E,0XFF,0X8F,0X86,0X00,0X00, -0X00,0X0F,0X8F,0XE0,0X1E,0X03,0XC0,0X00,0XFC,0XC6,0X1E,0XE3,0X8D,0X86,0X00,0X00, -0X00,0X07,0XC7,0XF8,0X1E,0X07,0XDF,0XFC,0XFC,0XC6,0X3F,0XE1,0X8D,0XBF,0XE0,0X00, -0X00,0X07,0XE1,0XFC,0X3E,0X07,0XDF,0XF8,0XFC,0XC6,0X3F,0XE1,0X8F,0XBF,0XE0,0X00, -0X00,0X03,0XF8,0XFF,0XFC,0X01,0XC0,0X00,0XDC,0XC7,0X7C,0XFF,0X8F,0X87,0X00,0X00, -0X00,0X01,0XFC,0X3F,0XF8,0X01,0XDF,0XF8,0XDC,0X1F,0X7C,0XFF,0X8D,0X87,0X80,0X00, -0X00,0X00,0XFF,0X1F,0XF8,0X01,0XDF,0XFC,0XDC,0X1F,0X6C,0XE1,0X8D,0XCF,0X80,0X00, -0X00,0X00,0X3F,0X87,0XE0,0X01,0XD8,0X1D,0XDC,0X1F,0X0C,0XE1,0X8F,0XCD,0XC0,0X00, -0X00,0X00,0X1F,0XE0,0X00,0X01,0XD8,0X1D,0X9C,0X3B,0X0C,0XE1,0XBF,0X9C,0XC0,0X00, -0X00,0X00,0X07,0XF0,0X00,0X01,0XDC,0X1C,0X0F,0XF8,0X0C,0XFF,0XBD,0XB8,0XE0,0X00, -0X00,0X00,0X03,0XFC,0X00,0X01,0XDF,0XFC,0X0F,0XF0,0X0C,0X7F,0X81,0XF8,0X60,0X00, -0X00,0X00,0X00,0XFE,0X00,0X01,0X9F,0XF8,0X03,0XC0,0X0C,0X3E,0X01,0XB0,0X20,0X00, -0X00,0X00,0X00,0X7F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X1F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, -0X00,0X00,0X00,0X06,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,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,0X01,0X03,0X03,0X07,0X07,0X0F,0X0F,0X06, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, +0X01,0X00,0X00,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X01,0X01,0X01,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X01,0X01,0X00,0X00,0X00,0X00,0X01,0X01,0X01,0X01,0X01,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X01,0X00,0X01,0X01,0X00,0X00,0X00,0X00, +0X00,0X00,0X01,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,0X00,0X00,0X00,0X00,0X00,0X00,0X00,