Browse Source

update

3lead_uart_test_ok_version
zhaohe 1 year ago
parent
commit
e7eb6bdcc6
  1. 8
      app/src/basic/ssd1306/driver_ssd1306_basic.c
  2. 63
      app/src/one_conduction/display_manager.c
  3. 4
      app/src/one_conduction/display_manager.h
  4. 6
      app/src/one_conduction/one_conduction_main.c

8
app/src/basic/ssd1306/driver_ssd1306_basic.c

@ -741,17 +741,19 @@ uint8_t ssd1306_basic_draw_progress(uint8_t xs, uint8_t ys, uint16_t width, uint
uint16_t markpos_off = width * markpos / 100.0;
for (uint16_t yoff = 0; yoff < high - 2; yoff++) {
for (uint16_t i = 0; i < width; i++) {
if (i < progress_width || i == 0) {
ssd1306_gram_write_point(&gs_handle, xs + i, ys + yoff, 1);
} else if (i == width - 1) {
if (i == width - 1) {
ssd1306_gram_write_point(&gs_handle, xs + i, ys + yoff, 1);
} else if (i >= markpos_off && i < markpos_off + 1) {
ssd1306_gram_write_point(&gs_handle, xs + i, ys + yoff, 1);
} else {
if (i < progress_width || i == 0) {
ssd1306_gram_write_point(&gs_handle, xs + i, ys + yoff, 1);
} else {
ssd1306_gram_write_point(&gs_handle, xs + i, ys + yoff, 0);
}
}
}
}
ys += high - 2;
/**

63
app/src/one_conduction/display_manager.c

@ -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,43 +287,22 @@ 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_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();
dsp_mgr_change_to_page(kPage_sampling);
} else {
ssd1306_basic_draw_str(sps->heartrate_x, sps->heartrate_y, &xchange, &ychange, fmt("<>%3d", heartrate), &font_asicc16x8_lib);
}
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);
dsp_mgr_change_to_page(kPage_sampling);
}
void samplePage_update_state(int progress_s, int wave_y, int heartrate) { //
@ -335,22 +310,26 @@ 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();
}
} 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() {

4
app/src/one_conduction/display_manager.h

@ -62,7 +62,6 @@ 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();
@ -72,7 +71,8 @@ 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();
void dsp_mgr_change_to_sampling(int progress_s, int heartrate);
void dsp_mgr_change_to_samplingError();
void dsp_mgr_change_to_storaging();
void dsp_mgr_change_to_storagingSuc();

6
app/src/one_conduction/one_conduction_main.c

@ -88,9 +88,7 @@ static uint32_t m_plod_state_disconnect_timepoint = 0;
static uint32_t m_plod_state_connect_timepoint = 0;
static bool m_plod_state_connected_state = false;
static uint32_t plod_state_has_disconnected_ms() { return znordic_haspassed_ms(m_plod_state_disconnect_timepoint); }
static bool plod_state_is_connected() {
return m_plod_state_connected_state;
}
static bool plod_state_is_connected() { return m_plod_state_connected_state; }
static void m_plod_state_event_detect_tmr_cb(void* p_context) { //
static uint32_t connecte_state_trigger_cnt = 0;
static uint32_t connecte_state_trigger_cnt_last_val = 0;
@ -299,7 +297,7 @@ void app_event_process_cb(void* p_event_data, uint16_t event_size) {
* 3. Çл»Ò³Ãæ
*/
state_machine_change_to_state(kdevice_state_sampling);
dsp_mgr_change_to_sampling();
dsp_mgr_change_to_sampling(0, 0);
hwss_start_capture();
} else if (cur_state_haspassed_ms() >= (500 * 4)) {
if (dsp_mgr_preparePage_get_progress() != 4) {

Loading…
Cancel
Save