|
|
@ -269,14 +269,10 @@ typedef struct { |
|
|
|
|
|
|
|
int heartrate_x; |
|
|
|
int heartrate_y; |
|
|
|
|
|
|
|
bool in30spage; |
|
|
|
bool hasover30s; |
|
|
|
|
|
|
|
} sample_page_state_t; |
|
|
|
sample_page_state_t m_sample_page_state; |
|
|
|
|
|
|
|
void dsp_mgr_change_to_sampling() { // |
|
|
|
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; |
|
|
@ -291,66 +287,49 @@ void dsp_mgr_change_to_sampling() { // |
|
|
|
|
|
|
|
sps->heartrate_x = sps->progress_x + sps->progress_width + 2; |
|
|
|
sps->heartrate_y = sps->progress_y - 4; |
|
|
|
sps->in30spage = false; |
|
|
|
sps->hasover30s = false; |
|
|
|
|
|
|
|
int progress = progress_s / 30.0 * 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, 0); |
|
|
|
// 显示?123 |
|
|
|
ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y, &xchange, &ychange, "<>--", &font_asicc16x8_lib); |
|
|
|
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_set_in30s_page() { |
|
|
|
/** |
|
|
|
* @brief |
|
|
|
* 不足30秒[X] |
|
|
|
*/ |
|
|
|
ssd1306_basic_clear(); |
|
|
|
uint8_t x = 20; |
|
|
|
uint8_t y = 32 - font24x24_zh_lib.heightPixel / 2; // 12*4 +12 |
|
|
|
uint8_t xchange, ychange; |
|
|
|
|
|
|
|
// ssd1306_basic_draw_str(&x, &y, "123", &fontclocklib); |
|
|
|
|
|
|
|
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 samplePage_update_state(int progress_s, int wave_y, int heartrate) { // |
|
|
|
|
|
|
|
sample_page_state_t* sps = &m_sample_page_state; |
|
|
|
uint8_t xchange, ychange; |
|
|
|
|
|
|
|
if (!sps->in30spage) { |
|
|
|
if (!sps->hasover30s && progress_s > 30) { |
|
|
|
// 切换到30s页面 |
|
|
|
|
|
|
|
} else { |
|
|
|
// 25 <=> 30 |
|
|
|
int progress = progress_s / 30.0 * 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); |
|
|
|
} |
|
|
|
ssd1306_basic_gram_update(); |
|
|
|
} |
|
|
|
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(); |
|
|
|
} |
|
|
|
|
|
|
|
void samplePage_schedule() { |
|
|
|