diff --git a/app/app.uvoptx b/app/app.uvoptx
index 24dc30d..8ef17b0 100644
--- a/app/app.uvoptx
+++ b/app/app.uvoptx
@@ -386,8 +386,8 @@
0
0
0
- .\src\one_conduction_main.c
- one_conduction_main.c
+ .\src\main.c
+ main.c
0
0
@@ -398,8 +398,8 @@
0
0
0
- .\src\main.c
- main.c
+ .\src\one_conduction_main.c
+ one_conduction_main.c
0
0
@@ -410,8 +410,8 @@
0
0
0
- .\src\app_basic_service\device_version_info_mgr.c
- device_version_info_mgr.c
+ .\src\app_basic_service\zapp.c
+ zapp.c
0
0
@@ -422,8 +422,8 @@
0
0
0
- .\src\app_basic_service\zapp.c
- zapp.c
+ .\src\app_basic_service\device_version_info_mgr.c
+ device_version_info_mgr.c
0
0
@@ -431,7 +431,7 @@
Board Definition
- 0
+ 1
0
0
0
@@ -627,7 +627,7 @@
nRF_Drivers
- 0
+ 1
0
0
0
@@ -875,7 +875,7 @@
nRF_Libraries
- 0
+ 1
0
0
0
@@ -1530,8 +1530,8 @@
0
0
0
- .\src\app_service\adc_mgr.c
- adc_mgr.c
+ .\src\app_service\ecg_service\ecg_service.c
+ ecg_service.c
0
0
@@ -1542,8 +1542,188 @@
0
0
0
- .\src\app_service\ecg_service\ecg_service.c
- ecg_service.c
+ .\src\app_service\base_hardware\adc_mgr.c
+ adc_mgr.c
+ 0
+ 0
+
+
+ 15
+ 90
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\base_hardware\hardware_power_mgr.c
+ hardware_power_mgr.c
+ 0
+ 0
+
+
+ 15
+ 91
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\beep_ctrl.c
+ beep_ctrl.c
+ 0
+ 0
+
+
+ 15
+ 92
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\light_ctrl.c
+ light_ctrl.c
+ 0
+ 0
+
+
+ 15
+ 93
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\display_ctrl_service\display_mgr.c
+ display_mgr.c
+ 0
+ 0
+
+
+ 15
+ 94
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\display_ctrl_service\ssd1306_if_impl.c
+ ssd1306_if_impl.c
+ 0
+ 0
+
+
+ 15
+ 95
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\display_ctrl_service\ssd1306\driver_ssd1306.c
+ driver_ssd1306.c
+ 0
+ 0
+
+
+ 15
+ 96
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\display_ctrl_service\ssd1306\driver_ssd1306_basic.c
+ driver_ssd1306_basic.c
+ 0
+ 0
+
+
+ 15
+ 97
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\display_ctrl_service\ssd1306\fontlib.c
+ fontlib.c
+ 0
+ 0
+
+
+ 15
+ 98
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\display_ctrl_service\ssd1306\wave_drawer.c
+ wave_drawer.c
+ 0
+ 0
+
+
+ 15
+ 99
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\ecg_service\ecg_algo.c
+ ecg_algo.c
+ 0
+ 0
+
+
+ 15
+ 100
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\ecg_service\ecg_data_mgr.c
+ ecg_data_mgr.c
+ 0
+ 0
+
+
+ 15
+ 101
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\ecg_service\algo\ecg_data_analyszer.c
+ ecg_data_analyszer.c
+ 0
+ 0
+
+
+ 15
+ 102
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\ecg_service\algo\iflytop_simple_filter.c
+ iflytop_simple_filter.c
+ 0
+ 0
+
+
+ 15
+ 103
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\ecg_service\algo\iflytop_simple_filter_ext.c
+ iflytop_simple_filter_ext.c
+ 0
+ 0
+
+
+ 15
+ 104
+ 1
+ 0
+ 0
+ 0
+ .\src\app_service\ecg_service\algo\iflytop_simple_qrs.c
+ iflytop_simple_qrs.c
0
0
diff --git a/app/app.uvprojx b/app/app.uvprojx
index 0da6b8d..5d84d0e 100644
--- a/app/app.uvprojx
+++ b/app/app.uvprojx
@@ -389,25 +389,25 @@
.\config\sdk_config.h
- one_conduction_main.c
- 1
- .\src\one_conduction_main.c
-
-
main.c
1
.\src\main.c
- device_version_info_mgr.c
+ one_conduction_main.c
1
- .\src\app_basic_service\device_version_info_mgr.c
+ .\src\one_conduction_main.c
zapp.c
1
.\src\app_basic_service\zapp.c
+
+ device_version_info_mgr.c
+ 1
+ .\src\app_basic_service\device_version_info_mgr.c
+
@@ -3796,14 +3796,89 @@
.\src\app_service\battery_mgr_service.c
+ ecg_service.c
+ 1
+ .\src\app_service\ecg_service\ecg_service.c
+
+
adc_mgr.c
1
- .\src\app_service\adc_mgr.c
+ .\src\app_service\base_hardware\adc_mgr.c
- ecg_service.c
+ hardware_power_mgr.c
1
- .\src\app_service\ecg_service\ecg_service.c
+ .\src\app_service\base_hardware\hardware_power_mgr.c
+
+
+ beep_ctrl.c
+ 1
+ .\src\app_service\beep_ctrl.c
+
+
+ light_ctrl.c
+ 1
+ .\src\app_service\light_ctrl.c
+
+
+ display_mgr.c
+ 1
+ .\src\app_service\display_ctrl_service\display_mgr.c
+
+
+ ssd1306_if_impl.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306_if_impl.c
+
+
+ driver_ssd1306.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306\driver_ssd1306.c
+
+
+ driver_ssd1306_basic.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306\driver_ssd1306_basic.c
+
+
+ fontlib.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306\fontlib.c
+
+
+ wave_drawer.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306\wave_drawer.c
+
+
+ ecg_algo.c
+ 1
+ .\src\app_service\ecg_service\ecg_algo.c
+
+
+ ecg_data_mgr.c
+ 1
+ .\src\app_service\ecg_service\ecg_data_mgr.c
+
+
+ ecg_data_analyszer.c
+ 1
+ .\src\app_service\ecg_service\algo\ecg_data_analyszer.c
+
+
+ iflytop_simple_filter.c
+ 1
+ .\src\app_service\ecg_service\algo\iflytop_simple_filter.c
+
+
+ iflytop_simple_filter_ext.c
+ 1
+ .\src\app_service\ecg_service\algo\iflytop_simple_filter_ext.c
+
+
+ iflytop_simple_qrs.c
+ 1
+ .\src\app_service\ecg_service\algo\iflytop_simple_qrs.c
@@ -4198,25 +4273,25 @@
.\config\sdk_config.h
- one_conduction_main.c
- 1
- .\src\one_conduction_main.c
-
-
main.c
1
.\src\main.c
- device_version_info_mgr.c
+ one_conduction_main.c
1
- .\src\app_basic_service\device_version_info_mgr.c
+ .\src\one_conduction_main.c
zapp.c
1
.\src\app_basic_service\zapp.c
+
+ device_version_info_mgr.c
+ 1
+ .\src\app_basic_service\device_version_info_mgr.c
+
@@ -7605,14 +7680,89 @@
.\src\app_service\battery_mgr_service.c
+ ecg_service.c
+ 1
+ .\src\app_service\ecg_service\ecg_service.c
+
+
adc_mgr.c
1
- .\src\app_service\adc_mgr.c
+ .\src\app_service\base_hardware\adc_mgr.c
- ecg_service.c
+ hardware_power_mgr.c
1
- .\src\app_service\ecg_service\ecg_service.c
+ .\src\app_service\base_hardware\hardware_power_mgr.c
+
+
+ beep_ctrl.c
+ 1
+ .\src\app_service\beep_ctrl.c
+
+
+ light_ctrl.c
+ 1
+ .\src\app_service\light_ctrl.c
+
+
+ display_mgr.c
+ 1
+ .\src\app_service\display_ctrl_service\display_mgr.c
+
+
+ ssd1306_if_impl.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306_if_impl.c
+
+
+ driver_ssd1306.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306\driver_ssd1306.c
+
+
+ driver_ssd1306_basic.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306\driver_ssd1306_basic.c
+
+
+ fontlib.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306\fontlib.c
+
+
+ wave_drawer.c
+ 1
+ .\src\app_service\display_ctrl_service\ssd1306\wave_drawer.c
+
+
+ ecg_algo.c
+ 1
+ .\src\app_service\ecg_service\ecg_algo.c
+
+
+ ecg_data_mgr.c
+ 1
+ .\src\app_service\ecg_service\ecg_data_mgr.c
+
+
+ ecg_data_analyszer.c
+ 1
+ .\src\app_service\ecg_service\algo\ecg_data_analyszer.c
+
+
+ iflytop_simple_filter.c
+ 1
+ .\src\app_service\ecg_service\algo\iflytop_simple_filter.c
+
+
+ iflytop_simple_filter_ext.c
+ 1
+ .\src\app_service\ecg_service\algo\iflytop_simple_filter_ext.c
+
+
+ iflytop_simple_qrs.c
+ 1
+ .\src\app_service\ecg_service\algo\iflytop_simple_qrs.c
diff --git a/app/src/board/ads129x/ads129x.c b/app/src/_board/ads129x/ads129x.c
similarity index 100%
rename from app/src/board/ads129x/ads129x.c
rename to app/src/_board/ads129x/ads129x.c
diff --git a/app/src/board/ads129x/ads129x.h b/app/src/_board/ads129x/ads129x.h
similarity index 100%
rename from app/src/board/ads129x/ads129x.h
rename to app/src/_board/ads129x/ads129x.h
diff --git a/app/src/board/ads129x/ads129x_type.h b/app/src/_board/ads129x/ads129x_type.h
similarity index 100%
rename from app/src/board/ads129x/ads129x_type.h
rename to app/src/_board/ads129x/ads129x_type.h
diff --git a/app/src/board/board_battery_state.c b/app/src/_board/board_battery_state.c
similarity index 100%
rename from app/src/board/board_battery_state.c
rename to app/src/_board/board_battery_state.c
diff --git a/app/src/board/board_battery_state.h b/app/src/_board/board_battery_state.h
similarity index 100%
rename from app/src/board/board_battery_state.h
rename to app/src/_board/board_battery_state.h
diff --git a/app/src/board/board_eeprom_driver.c b/app/src/_board/board_eeprom_driver.c
similarity index 100%
rename from app/src/board/board_eeprom_driver.c
rename to app/src/_board/board_eeprom_driver.c
diff --git a/app/src/board/board_eeprom_driver.h b/app/src/_board/board_eeprom_driver.h
similarity index 100%
rename from app/src/board/board_eeprom_driver.h
rename to app/src/_board/board_eeprom_driver.h
diff --git a/app/src/board/board_light_ctrl.c b/app/src/_board/board_light_ctrl.c
similarity index 100%
rename from app/src/board/board_light_ctrl.c
rename to app/src/_board/board_light_ctrl.c
diff --git a/app/src/board/board_light_ctrl.h b/app/src/_board/board_light_ctrl.h
similarity index 100%
rename from app/src/board/board_light_ctrl.h
rename to app/src/_board/board_light_ctrl.h
diff --git a/app/src/board/board_power_mgr.c b/app/src/_board/board_power_mgr.c
similarity index 100%
rename from app/src/board/board_power_mgr.c
rename to app/src/_board/board_power_mgr.c
diff --git a/app/src/board/board_power_mgr.h b/app/src/_board/board_power_mgr.h
similarity index 100%
rename from app/src/board/board_power_mgr.h
rename to app/src/_board/board_power_mgr.h
diff --git a/app/src/board/board_ssd1306_interface.c b/app/src/_board/board_ssd1306_interface.c
similarity index 100%
rename from app/src/board/board_ssd1306_interface.c
rename to app/src/_board/board_ssd1306_interface.c
diff --git a/app/src/board/board_ssd1306_interface.h b/app/src/_board/board_ssd1306_interface.h
similarity index 100%
rename from app/src/board/board_ssd1306_interface.h
rename to app/src/_board/board_ssd1306_interface.h
diff --git a/app/src/board/soc_public_res_mgr.c b/app/src/_board/soc_public_res_mgr.c
similarity index 100%
rename from app/src/board/soc_public_res_mgr.c
rename to app/src/_board/soc_public_res_mgr.c
diff --git a/app/src/board/soc_public_res_mgr.h b/app/src/_board/soc_public_res_mgr.h
similarity index 100%
rename from app/src/board/soc_public_res_mgr.h
rename to app/src/_board/soc_public_res_mgr.h
diff --git a/app/src/board/ssd1306/driver_ssd1306.c b/app/src/_board/ssd1306/driver_ssd1306.c
similarity index 100%
rename from app/src/board/ssd1306/driver_ssd1306.c
rename to app/src/_board/ssd1306/driver_ssd1306.c
diff --git a/app/src/board/ssd1306/driver_ssd1306.h b/app/src/_board/ssd1306/driver_ssd1306.h
similarity index 100%
rename from app/src/board/ssd1306/driver_ssd1306.h
rename to app/src/_board/ssd1306/driver_ssd1306.h
diff --git a/app/src/board/ssd1306/driver_ssd1306_basic.c b/app/src/_board/ssd1306/driver_ssd1306_basic.c
similarity index 100%
rename from app/src/board/ssd1306/driver_ssd1306_basic.c
rename to app/src/_board/ssd1306/driver_ssd1306_basic.c
diff --git a/app/src/board/ssd1306/driver_ssd1306_basic.h b/app/src/_board/ssd1306/driver_ssd1306_basic.h
similarity index 100%
rename from app/src/board/ssd1306/driver_ssd1306_basic.h
rename to app/src/_board/ssd1306/driver_ssd1306_basic.h
diff --git a/app/src/board/ssd1306/driver_ssd1306_font.h b/app/src/_board/ssd1306/driver_ssd1306_font.h
similarity index 100%
rename from app/src/board/ssd1306/driver_ssd1306_font.h
rename to app/src/_board/ssd1306/driver_ssd1306_font.h
diff --git a/app/src/board/ssd1306/driver_ssd1306_interface.h b/app/src/_board/ssd1306/driver_ssd1306_interface.h
similarity index 100%
rename from app/src/board/ssd1306/driver_ssd1306_interface.h
rename to app/src/_board/ssd1306/driver_ssd1306_interface.h
diff --git a/app/src/board/ssd1306/fontlib.c b/app/src/_board/ssd1306/fontlib.c
similarity index 100%
rename from app/src/board/ssd1306/fontlib.c
rename to app/src/_board/ssd1306/fontlib.c
diff --git a/app/src/board/ssd1306/fontlib.h b/app/src/_board/ssd1306/fontlib.h
similarity index 100%
rename from app/src/board/ssd1306/fontlib.h
rename to app/src/_board/ssd1306/fontlib.h
diff --git a/app/src/board/ssd1306/wave_drawer.c b/app/src/_board/ssd1306/wave_drawer.c
similarity index 100%
rename from app/src/board/ssd1306/wave_drawer.c
rename to app/src/_board/ssd1306/wave_drawer.c
diff --git a/app/src/board/ssd1306/wave_drawer.h b/app/src/_board/ssd1306/wave_drawer.h
similarity index 100%
rename from app/src/board/ssd1306/wave_drawer.h
rename to app/src/_board/ssd1306/wave_drawer.h
diff --git a/app/src/app_basic_service/basic/event.h b/app/src/app_basic_service/basic/event.h
index ec93ff3..3ddbe0b 100644
--- a/app/src/app_basic_service/basic/event.h
+++ b/app/src/app_basic_service/basic/event.h
@@ -8,7 +8,9 @@
#define ECG_DATA_REPORT_FRAME_NUM 32 // ecg每次上报的帧数
typedef enum {
- kecg_data_report_event, // ecg数据上报事件
+ kevent_tmr_scheduler_event,
+
+ kecg_data_report_event, // ecg数据上报事件
kappevent_battery_start_charge, // 开始充电事件
kappevent_battery_end_charge, // 停止充电事件
} app_event_type_t;
diff --git a/app/src/app_service/battery_mgr_service.c b/app/src/app_service/battery_mgr_service.c
index cd76810..f406e33 100644
--- a/app/src/app_service/battery_mgr_service.c
+++ b/app/src/app_service/battery_mgr_service.c
@@ -77,7 +77,7 @@ static int16_t _battery_mgr_service_get_battery_level() { //
percent_int = 100;
}
- return battery_level_filter(percent_int);
+ return _battery_level_filter(percent_int);
}
/***********************************************************************************************************************
diff --git a/app/src/app_service/beep_ctrl.c b/app/src/app_service/beep_ctrl.c
index 7384edd..f820872 100644
--- a/app/src/app_service/beep_ctrl.c
+++ b/app/src/app_service/beep_ctrl.c
@@ -30,12 +30,12 @@ static uint32_t m_beep_cnt = 0;
static void beep_tmr_handler(void *context) {
if (m_beep_effect == kBoardBeepEffect_none) {
- board_beep_ctrl_set(false);
+ beep_set(false);
} else if (m_beep_effect == kBoardBeepEffect_oneShortBeep) {
if (m_beep_cnt == 0) {
- board_beep_ctrl_set(true);
+ beep_set(true);
} else if (m_beep_cnt >= 1) {
- board_beep_ctrl_set(false);
+ beep_set(false);
app_timer_stop(m_beep_tmr);
m_beep_effect = kBoardBeepEffect_none;
}
@@ -43,9 +43,9 @@ static void beep_tmr_handler(void *context) {
else if (m_beep_effect == kBoardBeepEffect_oneShortLongBeep) {
if (m_beep_cnt == 0) {
- board_beep_ctrl_set(true);
+ beep_set(true);
} else if (m_beep_cnt >= 6) {
- board_beep_ctrl_set(false);
+ beep_set(false);
app_timer_stop(m_beep_tmr);
m_beep_effect = kBoardBeepEffect_none;
}
@@ -54,12 +54,12 @@ static void beep_tmr_handler(void *context) {
else if (m_beep_effect == kBoardBeepEffect_threeShortBeep) {
if (m_beep_cnt < 6) {
if (m_beep_cnt % 2 == 0) {
- board_beep_ctrl_set(true);
+ beep_set(true);
} else if (m_beep_cnt % 2 == 1) {
- board_beep_ctrl_set(false);
+ beep_set(false);
}
} else {
- board_beep_ctrl_set(false);
+ beep_set(false);
app_timer_stop(m_beep_tmr);
m_beep_effect = kBoardBeepEffect_none;
}
@@ -68,9 +68,9 @@ static void beep_tmr_handler(void *context) {
// 每隔1秒响三声
if (m_beep_cnt < 6) {
if (m_beep_cnt % 2 == 0) {
- board_beep_ctrl_set(true);
+ beep_set(true);
} else if (m_beep_cnt % 2 == 1) {
- board_beep_ctrl_set(false);
+ beep_set(false);
}
} else {
if (BEEP_TIMER_INTERVAL * m_beep_cnt >= 10000) {
@@ -96,7 +96,7 @@ void beep_load() { //
void beep_unload() {
if (!m_beep_loaded) return;
- board_beep_ctrl_set(0);
+ beep_set(0);
nrfx_pwm_uninit(&m_beep_pwm0);
m_beep_loaded = false;
}
@@ -118,7 +118,7 @@ void beep_set_effect(board_beep_effect_t effect) {
app_timer_stop(m_beep_tmr);
m_beep_cnt = 0;
if (m_beep_effect == kBoardBeepEffect_none) {
- board_beep_ctrl_set(false);
+ beep_set(false);
} else {
app_timer_start(m_beep_tmr, APP_TIMER_TICKS(BEEP_TIMER_INTERVAL), NULL);
}
diff --git a/app/src/app_service/display_ctrl_service/display_manager.bak.c b/app/src/app_service/display_ctrl_service/display_manager.bak.c
deleted file mode 100644
index a886363..0000000
--- a/app/src/app_service/display_ctrl_service/display_manager.bak.c
+++ /dev/null
@@ -1,443 +0,0 @@
-#include "display_manager.h"
-
-#include "../../../screen_res/logo_mono.c"
-//
-#include
-
-#include "board/board_battery_state.h"
-#include "board/board_ssd1306_interface.h"
-#include "aproject_config/config.h"
-#include "font.h"
-PageState_t g_pageState;
-
-void dsp_mgr_change_to_page(page_t 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) {}
-
-PageState_t* dsp_mgr_get_state(void) { return NULL; }
-
-int compute_x_pos_by_center(int16_t x, int16_t width) { return x - width / 2; }
-int compute_y_pos_by_center(int16_t y, int16_t height) { return y - height / 2; }
-
-#define SCREEN_CENTER_X 64
-#define SCREEN_CENTER_Y 32
-
-#define CHARGE_BATTERY_WIDTH (12 * 1.2)
-#define CHARGE_BATTERY_HEIGHT (22 * 1.2)
-
-#define MAIN_PAGE_BATTERY_WIDTH (12) // 首页电池宽度
-#define MAIN_PAGE_BATTERY_HEIGHT (22) // 首页电池高度
-
-/*******************************************************************************
- * 充电页面 *
- *******************************************************************************/
-/**
- * 显示元素:
- * 1.电池电量
- * ---------------
- * | _ |
- * | | | |
- * | |
- * ---------------
- *
- * 动画效果:
- * 1. 电池电量变化
- *
- */
-
-static uint32_t m_nowshowbatterylevel; // 当前显示的电池电量
-
-void dsp_mgr_change_to_chargingPage() {
- ssd1306_basic_clear();
- uint8_t x = compute_x_pos_by_center(SCREEN_CENTER_X, CHARGE_BATTERY_WIDTH);
- uint8_t y = compute_y_pos_by_center(SCREEN_CENTER_Y, CHARGE_BATTERY_HEIGHT);
- uint8_t xchange, ychange;
- ssd1306_basic_draw_battery_level(x, y, &xchange, &ychange, BoardBattery_get_battery_level(), CHARGE_BATTERY_WIDTH, CHARGE_BATTERY_HEIGHT);
- m_nowshowbatterylevel = BoardBattery_get_battery_level();
- ssd1306_basic_gram_update();
- dsp_mgr_change_to_page(kPage_chargingPage);
-}
-
-void chargingPage_set_batteryLevel(int batteryLevel) {
- uint8_t x = compute_x_pos_by_center(SCREEN_CENTER_X, CHARGE_BATTERY_WIDTH);
- uint8_t y = compute_y_pos_by_center(SCREEN_CENTER_Y, CHARGE_BATTERY_HEIGHT);
- uint8_t xchange, ychange;
- ssd1306_basic_draw_battery_level(x, y, &xchange, &ychange, batteryLevel, CHARGE_BATTERY_WIDTH, CHARGE_BATTERY_HEIGHT);
- ssd1306_basic_gram_update();
-}
-
-void chargingPage_schedule() { //
- static uint32_t last_update_time = 0;
- if (znordic_haspassed_ms(last_update_time) < 300) {
- return;
- }
-
- last_update_time = znordic_getpower_on_ms();
- m_nowshowbatterylevel += 5;
- if (m_nowshowbatterylevel > 100) {
- m_nowshowbatterylevel = BoardBattery_get_battery_level();
- }
- chargingPage_set_batteryLevel(m_nowshowbatterylevel);
-}
-
-/*******************************************************************************
- * 欢迎页面 *
- *******************************************************************************/
-void dsp_mgr_change_to_welcome() {
- /**
- * @brief 切换到欢迎界面
- * 1. 加载屏幕外设
- * 2. 打开屏幕电源
- * 3. 初始化开机页面
- */
-
- // ssd1306_basic_string(0, 0, "123456789123456789123", 21, 0, SSD1306_FONT_12);
- ssd1306_basic_draw_screen((const char*)gImage_logo_mono);
- ssd1306_basic_gram_update();
- dsp_mgr_change_to_page(kPage_welcome);
-}
-
-void welcomePage_schedule() {}
-
-/*******************************************************************************
- * 首页 *
- *******************************************************************************/
-static bool m_main_page_colon_state = false;
-
-void mainPage_show(bool colon_state) {
- static ztm_t now;
- int16_t batterylevel;
- uint8_t xchange, ychange;
- uint8_t x, y;
- x = compute_x_pos_by_center(SCREEN_CENTER_X, fontclocklib.widthPixel * 5 + MAIN_PAGE_BATTERY_WIDTH);
- y = compute_y_pos_by_center(SCREEN_CENTER_Y, fontclocklib.heightPixel + 1);
- znordic_rtc_gettime(&now);
- batterylevel = BoardBattery_get_battery_level();
-
- ssd1306_basic_clear_gram();
-
- // ZLOGI("mainPage_show %d %d", colon_state, x, y);
-
- ssd1306_basic_draw_str(x, y, &xchange, &ychange, fmt("%02d:%02d", now.tm_hour, now.tm_min), &fontclocklib);
- x = x + 6 + xchange;
- ssd1306_basic_draw_battery_level(x, y, &xchange, &ychange, batterylevel, MAIN_PAGE_BATTERY_WIDTH, MAIN_PAGE_BATTERY_HEIGHT);
- ssd1306_basic_gram_update();
- m_main_page_colon_state = colon_state;
- dsp_mgr_change_to_page(kPage_main);
-}
-
-void dsp_mgr_change_to_main() { mainPage_show(true); }
-void mainPage_updateState() { mainPage_show(!m_main_page_colon_state); }
-void mainPage_schedule() {
- static uint32_t last_update_time = 0;
- if (znordic_haspassed_ms(last_update_time) < 300) {
- return;
- }
- last_update_time = znordic_getpower_on_ms();
- mainPage_updateState();
-}
-
-/*******************************************************************************
- * 保持静止页面 *
- *******************************************************************************/
-static int m_prepare_page_progress = 0;
-void PreparePage_show(int progress) {
- m_prepare_page_progress = progress;
- 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);
-
- if (progress == 0) {
- ssd1306_basic_draw_str(x - font8x8_xo_lib.widthPixel, y - font8x8_xo_lib.heightPixel, &xchange, &ychange, "xxxx", &font8x8_xo_lib);
- } else if (progress == 1) {
- ssd1306_basic_draw_str(x - font8x8_xo_lib.widthPixel, y - font8x8_xo_lib.heightPixel, &xchange, &ychange, "oxxx", &font8x8_xo_lib);
- } else if (progress == 2) {
- ssd1306_basic_draw_str(x - font8x8_xo_lib.widthPixel, y - font8x8_xo_lib.heightPixel, &xchange, &ychange, "ooxx", &font8x8_xo_lib);
- } else if (progress == 3) {
- ssd1306_basic_draw_str(x - font8x8_xo_lib.widthPixel, y - font8x8_xo_lib.heightPixel, &xchange, &ychange, "ooox", &font8x8_xo_lib);
- } else if (progress == 4) {
- ssd1306_basic_draw_str(x - font8x8_xo_lib.widthPixel, y - font8x8_xo_lib.heightPixel, &xchange, &ychange, "oooo", &font8x8_xo_lib);
- }
-
- ssd1306_basic_gram_update();
-}
-
-void dsp_mgr_change_to_preparePage() {
- PreparePage_show(0);
- dsp_mgr_change_to_page(kPage_preparePage);
-}
-void dsp_mgr_preparePage_set_progress(int progress) { PreparePage_show(progress); }
-int dsp_mgr_preparePage_get_progress() { return m_prepare_page_progress; }
-
-void PreparePage_schedule() {}
-
-/*******************************************************************************
- * 采样页面 *
- *******************************************************************************/
-
-#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;
-
- int heartrate_x;
- int heartrate_y;
-} sample_page_state_t;
-sample_page_state_t m_sample_page_state;
-#if 0
-void dsp_mgr_change_to_sampling(int progress_s, int heartrate) { //
- sample_page_state_t* sps = &m_sample_page_state;
-
- sps->wave_drawser_x = SMAPLE_PAGE_START_X;
- sps->wave_drawser_y = SMAPLE_PAGE_START_Y;
- sps->wave_drawser_hight = 40;
- sps->wave_drawser_width = 120;
-
- sps->progress_x = SMAPLE_PAGE_START_X + 1;
- sps->progress_y = SMAPLE_PAGE_START_Y + sps->wave_drawser_hight + 3 + 4;
- sps->progress_width = 80;
- sps->progress_hight = 8;
-
- sps->heartrate_x = sps->progress_x + sps->progress_width + 2;
- sps->heartrate_y = sps->progress_y - 4;
-
- int progress = progress_s / SAMPLE_MIN_TIME_S * 25;
-
- ssd1306_basic_clear_gram();
-
- 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);
- uint8_t xchange, ychange;
- ssd1306_basic_draw_progress(sps->progress_x, sps->progress_y, sps->progress_width, sps->progress_hight, 25, progress);
- if (heartrate <= 0) {
- ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y, &xchange, &ychange, "<>-- ", &font_asicc16x8_lib);
- } else {
- ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y, &xchange, &ychange, fmt("<>%3d", heartrate), &font_asicc16x8_lib);
- }
- ssd1306_basic_gram_update();
- dsp_mgr_change_to_page(kPage_sampling);
-}
-
-void samplePage_update_state(int progress_s, int wave_y, int heartrate, bool update_screen) { //
-
- sample_page_state_t* sps = &m_sample_page_state;
- uint8_t xchange, ychange;
-
- int progress = progress_s / SAMPLE_MIN_TIME_S * 25;
-
- if (progress_s / 10 == 0) {
- ssd1306_basic_draw_str(sps->progress_x, sps->progress_y - 8, &xchange, &ychange, "xxx", &font8x8_xo_lib);
- } else if (progress_s / 10 == 1) {
- ssd1306_basic_draw_str(sps->progress_x, sps->progress_y - 8, &xchange, &ychange, "oxx", &font8x8_xo_lib);
- } else if (progress_s / 10 == 2) {
- ssd1306_basic_draw_str(sps->progress_x, sps->progress_y - 8, &xchange, &ychange, "oox", &font8x8_xo_lib);
- } else if (progress_s / 10 == 3) {
- ssd1306_basic_draw_str(sps->progress_x, sps->progress_y - 8, &xchange, &ychange, "ooo", &font8x8_xo_lib);
- }
-
- wave_drawer_draw_next_point(&sps->wave_drawer, wave_y);
- ssd1306_basic_draw_progress(sps->progress_x, sps->progress_y, sps->progress_width, sps->progress_hight, 25, progress);
- if (heartrate <= 0) {
- ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y, &xchange, &ychange, "<>-- ", &font_asicc16x8_lib);
- } else {
- ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y, &xchange, &ychange, fmt("<>%3d", heartrate), &font_asicc16x8_lib);
- }
- if (update_screen) ssd1306_basic_gram_update();
-}
-#endif
-void dsp_mgr_change_to_sampling(int progress_s, int heartrate) { //
- 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;
-
- sps->heartrate_x = sps->wave_drawser_x + sps->wave_drawser_width + 1;
- sps->heartrate_y = sps->wave_drawser_y + 5;
-
- int progress = progress_s / SAMPLE_MIN_TIME_S * 25;
- uint8_t xchange, ychange;
-
- 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();
- dsp_mgr_change_to_page(kPage_sampling);
-}
-
-void samplePage_update_state(int progress_s, int wave_y, int heartrate, bool updateHeart, bool update_screen) { //
-
- 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 (progress_s / 10 >= 3) {
- // ssd1306_basic_draw_str(sps->progress_x + sps->progress_width + 2, sps->progress_y, &xchange, &ychange, "o", &font8x8_xo_lib);
- // } else {
- // ssd1306_basic_draw_str(sps->progress_x + sps->progress_width + 2, sps->progress_y, &xchange, &ychange, "x", &font8x8_xo_lib);
- // }
- if (update_screen && updateHeart) {
- if (heart_logo_state) {
- 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, 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();
-}
-
-void samplePage_schedule() {
- static int count = 0;
- count++;
- int capturetime = hwss_has_captured_time_ms();
- int wave_y = (int)hwss_read_val();
- int heartrate = (int)hwss_read_heart_rate();
- // ZLOGI("samplePage_schedule %d %d %d", capturetime, wave_y, heartrate);
- samplePage_update_state(capturetime / 1000, wave_y, hwss_read_heart_rate(), count % 30 == 0, count % 10 == 0);
-}
-
-/*******************************************************************************
- * samplingError *
- *******************************************************************************/
-void dsp_mgr_change_to_samplingError() {
- /**
- * @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();
- dsp_mgr_change_to_page(kPage_samplingError);
-}
-
-void dsp_mgr_change_to_sampleSuc() {
- /**
- * @brief
- * 1.进度条
- * 2.提示信息
- */
- ssd1306_basic_clear();
- 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();
- dsp_mgr_change_to_page(kPage_storagingSuc);
-}
-
-/*******************************************************************************
- * SCHEDULE *
- *******************************************************************************/
-
-APP_TIMER_DEF(m_dsp_mgr_schedule_tmr);
-static void dsp_mgr_schedule_tmr_cb(void* p_context) { //
- if (g_pageState.page == kPage_chargingPage) {
- chargingPage_schedule();
- } else if (g_pageState.page == kPage_welcome) {
- welcomePage_schedule();
- } else if (g_pageState.page == kPage_main) {
- mainPage_schedule();
- } else if (g_pageState.page == kPage_preparePage) {
- PreparePage_schedule();
- } else if (g_pageState.page == kPage_sampling) {
- samplePage_schedule();
- }
-}
-
-void dsp_mgr_init(void) {
- static bool timer_inited = false;
- board_screen_init();
- if (!timer_inited) {
- ZERROR_CHECK(app_timer_create(&m_dsp_mgr_schedule_tmr, APP_TIMER_MODE_REPEATED, dsp_mgr_schedule_tmr_cb));
- }
- // 此处周期决定采样一个页面显示的宽度
- ZERROR_CHECK(app_timer_start(m_dsp_mgr_schedule_tmr, APP_TIMER_TICKS(12), NULL));
- timer_inited = true;
-}
-void dsp_mgr_uninit(void) {
- app_timer_stop(m_dsp_mgr_schedule_tmr);
- board_screen_deinit();
-}
diff --git a/app/src/app_service/display_ctrl_service/display_manager.bak.h b/app/src/app_service/display_ctrl_service/display_manager.bak.h
deleted file mode 100644
index 0553b77..0000000
--- a/app/src/app_service/display_ctrl_service/display_manager.bak.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#pragma once
-
-#include "znordic.h"
-//
-#include "app_timer.h"
-#include "diskio_blkdev.h"
-#include "ff.h"
-#include "nrf_block_dev_sdc.h"
-#include "nrf_delay.h"
-#include "nrf_drv_pwm.h"
-#include "nrf_drv_saadc.h"
-#include "nrf_drv_twi.h"
-#include "nrf_drv_wdt.h"
-#include "nrf_gpio.h"
-
-/**
- * @brief
- * 页面流转
- *
- * close <---------------------
- * |
- * button ---> welcome ---> main ---> preparePage ---> sampling ---> storaging ---> storagingSuc
- * ^ ---> samplingError |
- * |-------------------------------------------| |
- * |-----------------------------------------------------------|
- *
- */
-
-typedef enum {
- kPage_poweroff,
- kPage_welcome,
- kPage_main,
- kPage_preparePage,
- kPage_sampling,
- kPage_samplingError,
- kPage_storaging,
- kPage_storagingSuc,
- kPage_chargingPage,
-} page_t;
-
-typedef struct {
- /**
- * @brief 页面状态
- */
- page_t page; // 当前页面
- page_t last_page; // 上一个页面
- uint32_t page_change_to_page_time; // 当前页面持续的时间
-
- bool in_prompt; // 是否在提示状态
- char prompt[32]; // 提示内容
-
- /**
- * @brief
- */
-
-} PageState_t;
-
-void dsp_mgr_init(void);
-void dsp_mgr_uninit(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();
-void dsp_mgr_change_to_main();
-void dsp_mgr_change_to_chargingPage();
-
-// 保持静止页面
-void dsp_mgr_change_to_preparePage();
-void dsp_mgr_preparePage_set_progress(int progress);
-int dsp_mgr_preparePage_get_progress();
-
-// 采样中页面
-void dsp_mgr_change_to_sampling(int progress_s, int heartrate);
-
-// 采样出错页面
-void dsp_mgr_change_to_samplingError();
-// 采样成功页面
-void dsp_mgr_change_to_sampleSuc();
\ No newline at end of file
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 e760123..1de411f 100644
--- a/app/src/app_service/display_ctrl_service/display_mgr.c
+++ b/app/src/app_service/display_ctrl_service/display_mgr.c
@@ -4,11 +4,14 @@
//
#include
+#include "app_service/battery_mgr_service.h"
#include "aproject_config/config.h"
-#include "board/board_battery_state.h"
#include "font.h"
#include "ssd1306/driver_ssd1306_basic.h"
#include "ssd1306/wave_drawer.h"
+//
+#include "app_service/ecg_service/ecg_service.h"
+#include "ssd1306_if_impl.h"
/***********************************************************************************************************************
* MARCO *
@@ -23,8 +26,7 @@
#define MAIN_PAGE_BATTERY_HEIGHT (22) // 首页电池高度
typedef struct {
- page_t page;
- uint32_t page_get_schedule_period;
+ page_t page;
void (*on_page_load)();
void (*on_page_scheduler)();
@@ -89,6 +91,9 @@ static void _page_change(page_t page) {
}
}
+int compute_x_pos_by_center(int16_t x, int16_t width) { return x - width / 2; }
+int compute_y_pos_by_center(int16_t y, int16_t height) { return y - height / 2; }
+
/***********************************************************************************************************************
* PAGE_IMPL *
***********************************************************************************************************************/
@@ -125,7 +130,7 @@ static void page_main_load() {
x = compute_x_pos_by_center(SCREEN_CENTER_X, fontclocklib.widthPixel * 5 + MAIN_PAGE_BATTERY_WIDTH);
y = compute_y_pos_by_center(SCREEN_CENTER_Y, fontclocklib.heightPixel + 1);
znordic_rtc_gettime(&now);
- batterylevel = BoardBattery_get_battery_level();
+ batterylevel = battery_mgr_service_get_battery_level();
ssd1306_basic_clear_gram();
@@ -136,9 +141,7 @@ static void page_main_load() {
}
static void page_main_unload() {}
static uint32_t page_main_get_scheduler_period() { return 300; }
-static void page_main_tmr_cb() {
- page_main_load();
-}
+static void page_main_tmr_cb() { page_main_load(); }
/***********************************************************************************************************************
* 采样页面 *
***********************************************************************************************************************/
@@ -240,11 +243,11 @@ static uint32_t page_sampling_get_scheduler_period() { return 10; }
static void page_sampling_tmr_cb() {
static int count = 0;
count++;
- int capturetime = hwss_has_captured_time_ms();
- int wave_y = (int)hwss_read_val();
- int heartrate = (int)hwss_read_heart_rate();
+ int capturetime = ecg_service_has_captured_time();
+ int wave_y = (int)ecg_service_get_display_val();
+ int heartrate = (int)ecg_service_get_heart_rate();
- samplePage_update_state(capturetime / 1000, wave_y, hwss_read_heart_rate(), count % 30 == 0, count % 10 == 0);
+ samplePage_update_state(capturetime / 1000, wave_y, heartrate, count % 30 == 0, count % 10 == 0);
}
/***********************************************************************************************************************
@@ -294,7 +297,6 @@ static void page_charging_page_load() {
static void page_charging_page_unload() {}
static uint32_t page_charging_page_get_scheduler_period() { return 300; }
static void page_charging_page_tmr_cb() {
-
charging_page__batterylevel += 5;
if (charging_page__batterylevel > 100) {
charging_page__batterylevel = battery_mgr_service_get_battery_level();
diff --git a/app/src/app_service/display_ctrl_service/font.h b/app/src/app_service/display_ctrl_service/font.h
index 179ea34..91069b5 100644
--- a/app/src/app_service/display_ctrl_service/font.h
+++ b/app/src/app_service/display_ctrl_service/font.h
@@ -1,6 +1,7 @@
// https://www.23bei.com/tool-965.html
#include
+#include "ssd1306/fontlib.h"
#if 0
const uint8_t fontclocklib_code[] = {
0x00, 0x00, 0x00, 0x00, 0x7F, 0x80, 0x01, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x07, 0x80, 0x78, 0x06, //
diff --git a/app/src/app_service/display_ctrl_service/ssd1306/driver_ssd1306.c b/app/src/app_service/display_ctrl_service/ssd1306/driver_ssd1306.c
index ba880cb..0704444 100644
--- a/app/src/app_service/display_ctrl_service/ssd1306/driver_ssd1306.c
+++ b/app/src/app_service/display_ctrl_service/ssd1306/driver_ssd1306.c
@@ -513,7 +513,7 @@ uint8_t ssd1306_write_point(ssd1306_handle_t *handle, uint8_t x, uint8_t y, uint
return 0; /* success return 0 */
}
#endif
- return 0;
+
}
/**
diff --git a/app/src/app_service/display_ctrl_service/ssd1306/driver_ssd1306_basic.c b/app/src/app_service/display_ctrl_service/ssd1306/driver_ssd1306_basic.c
index ff1fd58..3b12a67 100644
--- a/app/src/app_service/display_ctrl_service/ssd1306/driver_ssd1306_basic.c
+++ b/app/src/app_service/display_ctrl_service/ssd1306/driver_ssd1306_basic.c
@@ -566,7 +566,7 @@ uint8_t ssd1306_basic_draw_str(uint8_t xs, uint8_t ys, uint8_t *xchange, uint8_t
str_iterator_start(&iterator, frontlib->fontCode, str);
char *nowchr = NULL;
while (true) {
- str_iterator_next(&iterator, &nowchr);
+ str_iterator_next(&iterator, (const char **)&nowchr);
if (!nowchr) {
break;
}
@@ -595,8 +595,8 @@ uint8_t ssd1306_basic_draw_battery_level(uint8_t xs, uint8_t ys, uint8_t *xchang
level = 100;
}
- uint8_t xoff = 0;
- uint8_t yoff = 0;
+ //uint8_t xoff = 0;
+ //uint8_t yoff = 0;
int batteryHeaderHigh = 2;
int batteryHeaderWidth = 7;
@@ -717,6 +717,7 @@ uint8_t ssd1306_basic_draw_battery_level(uint8_t xs, uint8_t ys, uint8_t *xchang
*xchange = batteryBodyWidth;
*ychange = batteryBodyHigh + batteryHeaderHigh;
+ return 0;
}
uint8_t ssd1306_basic_draw_progress(uint8_t xs, uint8_t ys, uint16_t width, uint16_t high, uint16_t markpos, uint16_t progress) {
@@ -789,4 +790,5 @@ uint8_t ssd1306_basic_draw_line(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2)
y1 += sy;
}
}
+ return 0;
}
diff --git a/app/src/app_service/ecg_service/algo/ecg_data_analyszer.c b/app/src/app_service/ecg_service/algo/ecg_data_analyszer.c
index 52d507a..6138b2a 100644
--- a/app/src/app_service/ecg_service/algo/ecg_data_analyszer.c
+++ b/app/src/app_service/ecg_service/algo/ecg_data_analyszer.c
@@ -3,5 +3,5 @@
void ecg_data_analyszer_init() {}
void ecg_data_analyszer_push_data(int32_t data) {}
-float ecg_data_analyszer_get_display_data() {}
-float ecg_data_analyszer_get_heart_rate() {}
\ No newline at end of file
+float ecg_data_analyszer_get_display_data() { return 50; }
+float ecg_data_analyszer_get_heart_rate() { return 50; }
\ No newline at end of file
diff --git a/app/src/app_service/ecg_service/algo/iflytop_simple_filter.c b/app/src/app_service/ecg_service/algo/iflytop_simple_filter.c
index a17498b..9a8d8f9 100644
--- a/app/src/app_service/ecg_service/algo/iflytop_simple_filter.c
+++ b/app/src/app_service/ecg_service/algo/iflytop_simple_filter.c
@@ -95,12 +95,12 @@ void NOTCHFilter_Init(NOTCHFilter_t *filter, float centerFreqHz, float notchWidt
float ww_rps = 2.0 * PI * notchWidthHz;
// pre warp center frequency
- float w0_pw_rps = (2.0 / sampleTimeS) * tanf(0.5 * w0_rps * sampleTimeS);
+ float w0_pw_rps = (2.0f / sampleTimeS) * tanf(0.5f * w0_rps * sampleTimeS);
// computing filter coefficients
- filter->alpha = 4.0 + w0_rps * w0_pw_rps * sampleTimeS * sampleTimeS;
- filter->beta = 2.0 * ww_rps * sampleTimeS;
+ filter->alpha = 4.0f + w0_rps * w0_pw_rps * sampleTimeS * sampleTimeS;
+ filter->beta = 2.0f * ww_rps * sampleTimeS;
// clearing input and output buffers
@@ -124,8 +124,8 @@ float NOTCHFilter_Update(NOTCHFilter_t *filter, float vin) {
filter->vin[0] = vin;
// compute new output
- filter->vout[0] = (filter->alpha * filter->vin[0] + 2.0 * (filter->alpha - 8.0) * filter->vin[1] + filter->alpha * filter->vin[2] -
- (2.0f * (filter->alpha - 8.0) * filter->vout[1] + (filter->alpha - filter->beta) * filter->vout[2])) /
+ filter->vout[0] = (filter->alpha * filter->vin[0] + 2.0f * (filter->alpha - 8.0f) * filter->vin[1] + filter->alpha * filter->vin[2] -
+ (2.0f * (filter->alpha - 8.0f) * filter->vout[1] + (filter->alpha - filter->beta) * filter->vout[2])) /
(filter->alpha + filter->beta);
return (filter->vout[0]);
diff --git a/app/src/app_service/ecg_service/ecg_data_mgr.c b/app/src/app_service/ecg_service/ecg_data_mgr.c
index e1fc03c..c96fe4f 100644
--- a/app/src/app_service/ecg_service/ecg_data_mgr.c
+++ b/app/src/app_service/ecg_service/ecg_data_mgr.c
@@ -1,4 +1,5 @@
#include "ecg_data_mgr.h"
+#include
static ecg_report_data_t m_report_data_cache;
diff --git a/app/src/app_service/ecg_service/ecg_service.c b/app/src/app_service/ecg_service/ecg_service.c
index 399226c..eefe3d6 100644
--- a/app/src/app_service/ecg_service/ecg_service.c
+++ b/app/src/app_service/ecg_service/ecg_service.c
@@ -55,11 +55,11 @@ uint8_t ads129x_send_cmd(uint8_t cmd) {
uint8_t rx = 0;
ADS129X_CS_RESET(); /* 选中设备 */
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
rx = port_spi_transmit_receive(cmd);
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
ADS129X_CS_SET(); /* 释放设备 */
return rx;
@@ -70,7 +70,7 @@ uint8_t ads129x_rw_reg(uint8_t cmd, uint8_t data) {
uint8_t rx = 0;
ADS129X_CS_RESET(); /* 选中设备 */
- port_ads129x_delay_us(1);
+ nrf_delay_us(1);
port_spi_transmit_receive(cmd); /* 发送读写指令 */
port_spi_transmit_receive(0X00); /* 只写一个数据 */
@@ -80,7 +80,7 @@ uint8_t ads129x_rw_reg(uint8_t cmd, uint8_t data) {
else
rx = port_spi_transmit_receive(data); /* 写入数值 */
- port_ads129x_delay_us(1);
+ nrf_delay_us(1);
ADS129X_CS_SET(); /* 释放设备 */
return rx;
@@ -91,19 +91,19 @@ void ads129x_write_multiregs(uint8_t reg, uint8_t* ch, uint8_t size) {
uint8_t i;
ADS129X_CS_RESET(); /* 选中设备 */
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
port_spi_transmit_receive(ADS129X_COMMAND_WREG | reg);
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
port_spi_transmit_receive(size - 1);
for (i = 0; i < size; i++) {
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
port_spi_transmit_receive(*ch);
ch++;
}
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
ADS129X_CS_SET();
}
@@ -112,19 +112,19 @@ void ads129x_read_multiregs(uint8_t reg, uint8_t* ch, uint8_t size) {
uint8_t i;
ADS129X_CS_RESET(); /* 选中设备 */
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
port_spi_transmit_receive(ADS129X_COMMAND_RREG | reg);
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
port_spi_transmit_receive(size - 1);
for (i = 0; i < size; i++) {
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
*ch = port_spi_transmit_receive(0);
ch++;
}
- port_ads129x_delay_us(100);
+ nrf_delay_us(100);
ADS129X_CS_SET();
}
@@ -167,10 +167,10 @@ void ads129x_read_data(ads129x_capture_data_t* capture_data) {
uint8_t rddata[9];
ADS129X_CS_RESET(); /* 选中设备 */
- port_ads129x_delay_us(10);
+ nrf_delay_us(10);
port_spi_transmit_receive(ADS129X_COMMAND_RDATA);
- port_ads129x_delay_us(1);
+ nrf_delay_us(1);
for (int i = 0; i < 9; i++) {
rddata[i] = port_spi_transmit_receive(0);
}
@@ -258,16 +258,16 @@ void ecg_service_load() {
ADS129X_REST_RESET();
ADS129X_START_RESET();
- port_ads129x_delay_ms(1000);
+ nrf_delay_ms(1000);
ADS129X_REST_SET();
- port_ads129x_delay_ms(100); /* 硬件复位 */
+ nrf_delay_ms(100); /* 硬件复位 */
ads129x_send_cmd(ADS129X_COMMAND_SDATAC); /* 软件复位,并停止连续读状态 */
- port_ads129x_delay_ms(100);
+ nrf_delay_ms(100);
ads129x_send_cmd(ADS129X_COMMAND_RESET);
- port_ads129x_delay_ms(1000);
+ nrf_delay_ms(1000);
ads129x_send_cmd(ADS129X_COMMAND_SDATAC);
- port_ads129x_delay_ms(100);
+ nrf_delay_ms(100);
static ads129x_regs_t regcache;
ads129x_readback_regs(®cache);
@@ -296,13 +296,26 @@ void ecg_service_unload() {
nrf_gpio_cfg_default(ADS1291_READY_PIN);
}
+static uint32_t ecg_service_captured_time = 0;
+
void ecg_service_start_capture() { //
ecg_data_mgr_clear_buffer();
ads129x_send_cmd(ADS129X_COMMAND_START); /* 发送开始数据转换(等效于拉高START引脚) */
+ ecg_service_captured_time = znordic_getpower_on_ms();
}
void ecg_service_stop_capture() { //
ads129x_send_cmd(ADS129X_COMMAND_STOP); /* 发送停止数据转换(等效于拉低START引脚) */
}
+uint32_t ecg_service_has_captured_time() { return znordic_haspassed_ms(ecg_service_captured_time); }
void ecg_service_subic_write_reg(uint8_t addr, uint8_t val) { ads129x_rw_reg(ADS129X_COMMAND_WREG | addr, val); }
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();
+}
diff --git a/app/src/app_service/ecg_service/ecg_service.h b/app/src/app_service/ecg_service/ecg_service.h
index f6459a9..d890698 100644
--- a/app/src/app_service/ecg_service/ecg_service.h
+++ b/app/src/app_service/ecg_service/ecg_service.h
@@ -28,6 +28,9 @@ 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/app_service/light_ctrl.c b/app/src/app_service/light_ctrl.c
index 19b1065..d4e2f07 100644
--- a/app/src/app_service/light_ctrl.c
+++ b/app/src/app_service/light_ctrl.c
@@ -37,7 +37,7 @@ static void light_ctrl_effect_tmr_handler(void* p_context) { //
}
} else if (m_led_green_light_effect == kLightEffect_quickFlash) {
if (BLINK_PERIOD_MS * m_blink_cnt >= QUICK_BLINK_PERIOD_MS) {
- board_light_toggle_green_light_state();
+ light_ctrl_toggle_green_light_state();
m_blink_cnt = 0;
return;
}
diff --git a/app/src/one_conduction_main.c b/app/src/one_conduction_main.c
index e41948e..e5e4b1d 100644
--- a/app/src/one_conduction_main.c
+++ b/app/src/one_conduction_main.c
@@ -136,12 +136,12 @@ void one_conduction_process_rx_packet(uint8_t* rx, int len) {
receipt->drop_state0 = (0);
receipt->drop_state1 = 0x00;
receipt->device_state0.sampling_state = (zapp_state_machine_now_state() == kdevice_state_sampling);
- receipt->device_state0.preview_state = zapp_get_gstate()->is_preview;
- receipt->device_state0.low_battery = (BatteryMgrService_get_battery_level() < APP_LOW_BATTERY_WARNING_LIMIT);
+ receipt->device_state0.report_state = 0;
+ receipt->device_state0.low_battery = (0 < APP_LOW_BATTERY_WARNING_LIMIT);
receipt->device_state0.full_storge = false;
receipt->device_state1 = 0;
- receipt->powerlevel = BatteryMgrService_get_battery_level();
+ receipt->powerlevel = battery_mgr_service_get_battery_level();
receipt->storage_item_num = 0;
zdatachannel_data_send2(bletxbuf, sendlen);