|
|
@ -214,7 +214,7 @@ typedef struct { |
|
|
|
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; |
|
|
|
|
|
|
@ -274,6 +274,73 @@ void samplePage_update_state(int progress_s, int wave_y, int heartrate, bool upd |
|
|
|
} |
|
|
|
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 + 1; |
|
|
|
sps->progress_y = SMAPLE_PAGE_START_Y; |
|
|
|
sps->progress_width = 110; |
|
|
|
sps->progress_hight = 8; |
|
|
|
|
|
|
|
sps->wave_drawser_x = SMAPLE_PAGE_START_X; |
|
|
|
sps->wave_drawser_y = SMAPLE_PAGE_START_Y + sps->progress_hight + 10; |
|
|
|
sps->wave_drawser_hight = 40; |
|
|
|
sps->wave_drawser_width = 100; |
|
|
|
|
|
|
|
sps->heartrate_x = sps->wave_drawser_x + sps->wave_drawser_width + 5; |
|
|
|
sps->heartrate_y = sps->wave_drawser_y; |
|
|
|
|
|
|
|
int progress = progress_s / 30.0 * 25; |
|
|
|
uint8_t xchange, ychange; |
|
|
|
|
|
|
|
ssd1306_basic_clear_gram(); |
|
|
|
/** |
|
|
|
* @brief |
|
|
|
* =============== o |
|
|
|
* | | ÐÄ |
|
|
|
* | 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, sps->heartrate_y, &xchange, &ychange, "<>", &font_asicc16x8_lib); |
|
|
|
if (heartrate <= 0) { |
|
|
|
ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y + 20, &xchange, &ychange, "-- ", &font_asicc16x8_lib); |
|
|
|
} else { |
|
|
|
ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y + 20, &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 / 30.0 * 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); |
|
|
|
} |
|
|
|
|
|
|
|
ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y, &xchange, &ychange, "<>", &font_asicc16x8_lib); |
|
|
|
if (heartrate <= 0) { |
|
|
|
ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y + 20, &xchange, &ychange, "-- ", &font_asicc16x8_lib); |
|
|
|
} else { |
|
|
|
ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y + 20, &xchange, &ychange, fmt("%3d", 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; |
|
|
@ -282,10 +349,12 @@ void samplePage_schedule() { |
|
|
|
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, heartrate, count % 3 == 0); |
|
|
|
samplePage_update_state(capturetime / 1000, wave_y, heartrate, count % 10 == 0); |
|
|
|
} |
|
|
|
|
|
|
|
// |
|
|
|
/******************************************************************************* |
|
|
|
* samplingError * |
|
|
|
*******************************************************************************/ |
|
|
|
void dsp_mgr_change_to_samplingError() { |
|
|
|
/** |
|
|
|
* @brief |
|
|
|