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,