|
|
@ -11,19 +11,6 @@ |
|
|
|
#include "one_conduction_board.h" |
|
|
|
PageState_t g_pageState; |
|
|
|
|
|
|
|
void dsp_mgr_init(void) { |
|
|
|
FontLibrary_regsiter(&fontclocklib); |
|
|
|
FontLibrary_regsiter(&font8x8_xo_lib); |
|
|
|
|
|
|
|
// 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.last_page = page; |
|
|
@ -39,18 +26,7 @@ uint32_t dsp_mgr_get_page_elapsed_time_s(void) { // |
|
|
|
|
|
|
|
void dsp_mgr_schedule(void) {} |
|
|
|
|
|
|
|
PageState_t* dsp_mgr_get_state(void) { return NULL;} |
|
|
|
|
|
|
|
void dsp_mgr_change_to_poweroff() { |
|
|
|
/** |
|
|
|
* @brief |
|
|
|
* 1. 关闭屏幕,关闭屏幕电源 |
|
|
|
* 2. 卸载屏幕外设 |
|
|
|
*/ |
|
|
|
SingleLeadECG_screen_deinit(); |
|
|
|
} |
|
|
|
|
|
|
|
void dsp_mgr_poweron() { SingleLeadECG_screen_init(); } |
|
|
|
PageState_t* dsp_mgr_get_state(void) { return NULL; } |
|
|
|
|
|
|
|
void dsp_mgr_change_to_welcome() { |
|
|
|
/** |
|
|
@ -66,7 +42,6 @@ void dsp_mgr_change_to_welcome() { |
|
|
|
dsp_mgr_change_to_page(kPage_welcome); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
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; } |
|
|
|
|
|
|
@ -87,22 +62,6 @@ void dsp_mgr_change_to_main() { |
|
|
|
dsp_mgr_change_to_page(kPage_main); |
|
|
|
} |
|
|
|
|
|
|
|
void dsp_mgr_change_to_chargingPage() { |
|
|
|
int16_t batterylevel = 80; |
|
|
|
int16_t hour = 12; |
|
|
|
int16_t min = 32; |
|
|
|
|
|
|
|
ssd1306_basic_clear(); |
|
|
|
uint8_t x = 20; |
|
|
|
uint8_t y = 32 - fontclocklib.heightPixel / 2; // 12*4 +12 |
|
|
|
uint8_t xchange, ychange; |
|
|
|
|
|
|
|
ssd1306_basic_draw_str(x, y, &xchange, &ychange, fmt("%02d:%02d", hour, min), &fontclocklib); |
|
|
|
x = x + 2 + xchange; |
|
|
|
ssd1306_basic_draw_battery_level(x, y, &xchange, &ychange, batterylevel, 12, 22); |
|
|
|
ssd1306_basic_gram_update(); |
|
|
|
dsp_mgr_change_to_page(kPage_main); |
|
|
|
} |
|
|
|
void dsp_mgr_change_to_preparePage() { |
|
|
|
ssd1306_basic_clear(); |
|
|
|
uint8_t x = 0; |
|
|
@ -120,19 +79,16 @@ void dsp_mgr_change_to_preparePage() { |
|
|
|
static wave_drawer_t wave_drawer; |
|
|
|
|
|
|
|
void dsp_mgr_change_to_sampling() { // |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wave_drawer_init(&wave_drawer, 1, 1, 120, 40); |
|
|
|
wave_drawer_draw_border(&wave_drawer); |
|
|
|
|
|
|
|
|
|
|
|
uint8_t xchange, ychange; |
|
|
|
|
|
|
|
ssd1306_basic_draw_progress(1, 47, 80, 8, 50, 30); |
|
|
|
|
|
|
|
ssd1306_basic_draw_str(82, 43, &xchange, &ychange, "<>123", &font_asicc16x8_lib); |
|
|
|
ssd1306_basic_gram_update(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void dsp_mgr_draw_point(int16_t y) { |
|
|
@ -196,3 +152,85 @@ void dsp_mgr_change_to_storagingSuc() { |
|
|
|
ssd1306_basic_gram_update(); |
|
|
|
dsp_mgr_change_to_page(kPage_storagingSuc); |
|
|
|
} |
|
|
|
|
|
|
|
#define SCREEN_CENTER_X 64 |
|
|
|
#define SCREEN_CENTER_Y 32 |
|
|
|
|
|
|
|
#define CHARGE_BATTERY_WIDTH (12 * 1.2) |
|
|
|
#define CHARGE_BATTERY_HEIGHT (22 * 1.2) |
|
|
|
|
|
|
|
/******************************************************************************* |
|
|
|
* 充电页面 * |
|
|
|
*******************************************************************************/ |
|
|
|
/** |
|
|
|
* 显示元素: |
|
|
|
* 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, SingleLeadECG_battery_val(), CHARGE_BATTERY_WIDTH, CHARGE_BATTERY_HEIGHT); |
|
|
|
m_nowshowbatterylevel = SingleLeadECG_battery_val(); |
|
|
|
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 = SingleLeadECG_battery_val(); |
|
|
|
} |
|
|
|
chargingPage_set_batteryLevel(m_nowshowbatterylevel); |
|
|
|
} |
|
|
|
|
|
|
|
/******************************************************************************* |
|
|
|
* 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(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void dsp_mgr_init(void) { |
|
|
|
static bool timer_inited = false; |
|
|
|
SingleLeadECG_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(100), NULL)); |
|
|
|
timer_inited = true; |
|
|
|
} |
|
|
|
void dsp_mgr_uninit(void) { |
|
|
|
app_timer_stop(m_dsp_mgr_schedule_tmr); |
|
|
|
SingleLeadECG_screen_deinit(); |
|
|
|
} |