Browse Source

update

3lead_uart_test_ok_version
zhaohe 1 year ago
parent
commit
affe532749
  1. 2
      app/src/basic/ssd1306/driver_ssd1306_basic.c
  2. 82
      app/src/one_conduction/display_manager.c
  3. 1
      app/src/one_conduction/display_manager.h
  4. 12
      app/src/one_conduction/one_conduction_main.c

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

@ -741,7 +741,7 @@ 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) {
if (i < progress_width || i == 0) {
ssd1306_gram_write_point(&gs_handle, xs + i, ys + yoff, 1);
} else if (i == width - 1) {
ssd1306_gram_write_point(&gs_handle, xs + i, ys + yoff, 1);

82
app/src/one_conduction/display_manager.c

@ -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();
}
/*******************************************************************************

1
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_draw_point(int16_t y);
void dsp_mgr_change_to_poweroff();
void dsp_mgr_change_to_welcome();

12
app/src/one_conduction/one_conduction_main.c

@ -249,11 +249,6 @@ static void state_machine__change_to_home_state() {
dsp_mgr_change_to_main();
}
static void state_machine__change_to_sampling_state() {
state_machine_change_to_state(kdevice_state_sampling);
dsp_mgr_change_to_sampling();
}
static void app_event_process_cb(void* p_event_data, uint16_t event_size) {
if (!p_event_data) return;
app_event_t* p_event = (app_event_t*)p_event_data;
@ -312,7 +307,8 @@ static void app_event_process_cb(void* p_event_data, uint16_t event_size) {
* *
*******************************************************************************/
if (cur_state_haspassed_ms() >= (500 * 5)) {
// state_machine__change_to_sampling_state();
state_machine_change_to_state(kdevice_state_sampling);
dsp_mgr_change_to_sampling();
} else if (cur_state_haspassed_ms() >= (500 * 4)) {
if (dsp_mgr_preparePage_get_progress() != 4) {
dsp_mgr_preparePage_set_progress(4);
@ -331,6 +327,10 @@ static void app_event_process_cb(void* p_event_data, uint16_t event_size) {
}
}
}
} else if (m_device_state == kdevice_state_sampling) {
/*******************************************************************************
* *
*******************************************************************************/
}
#if 0

Loading…
Cancel
Save