|
|
@ -31,13 +31,6 @@ 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; } |
|
|
|
|
|
|
|
static wave_drawer_t wave_drawer; |
|
|
|
|
|
|
|
void dsp_mgr_draw_point(int16_t y) { |
|
|
|
wave_drawer_draw_next_point(&wave_drawer, y); |
|
|
|
ssd1306_basic_gram_update(); |
|
|
|
} |
|
|
|
|
|
|
|
void dsp_mgr_change_to_samplingError() { |
|
|
|
/** |
|
|
|
* @brief |
|
|
@ -203,6 +196,14 @@ void mainPage_show(bool colon_state) { |
|
|
|
|
|
|
|
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(); |
|
|
|
} |
|
|
|
|
|
|
|
/******************************************************************************* |
|
|
|
* ±£³Ö¾²Ö¹Ò³Ãæ * |
|
|
@ -247,25 +248,70 @@ 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; |
|
|
|
|
|
|
|
void dsp_mgr_change_to_sampling() { // |
|
|
|
wave_drawer_init(&wave_drawer, 1, 1, 120, 40); |
|
|
|
wave_drawer_draw_border(&wave_drawer); |
|
|
|
sample_page_state_t* sps = &m_sample_page_state; |
|
|
|
|
|
|
|
uint8_t xchange, ychange; |
|
|
|
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; |
|
|
|
|
|
|
|
ssd1306_basic_draw_progress(1, 47, 80, 8, 50, 30); |
|
|
|
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; |
|
|
|
|
|
|
|
ssd1306_basic_draw_str(82, 43, &xchange, &ychange, "<>123", &font_asicc16x8_lib); |
|
|
|
sps->heartrate_x = sps->progress_x + sps->progress_width + 2; |
|
|
|
sps->heartrate_y = sps->progress_y - 4; |
|
|
|
|
|
|
|
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_gram_update(); |
|
|
|
dsp_mgr_change_to_page(kPage_sampling); |
|
|
|
} |
|
|
|
|
|
|
|
void mainPage_schedule() { |
|
|
|
static uint32_t last_update_time = 0; |
|
|
|
if (znordic_haspassed_ms(last_update_time) < 300) { |
|
|
|
return; |
|
|
|
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; |
|
|
|
|
|
|
|
// 25 <=> 30 |
|
|
|
int progress = progress_s / 30.0 * 25; |
|
|
|
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); |
|
|
|
} |
|
|
|
last_update_time = znordic_getpower_on_ms(); |
|
|
|
mainPage_updateState(); |
|
|
|
} |
|
|
|
|
|
|
|
/******************************************************************************* |
|
|
|