From e46ad73fe5ae8aa1a67a869e4a4722c2d20b04c5 Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Thu, 16 May 2024 11:36:58 +0800 Subject: [PATCH] =?utf8?q?=E8=A7=A3=E5=86=B3cywee=E4=B8=AD=E6=96=AD?= =?utf8?q?=E4=B8=8D=E8=A7=A6=E5=8F=91=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../brandy_evb/board_config/board_evb.h | 4 +- .../drivers/peripheral/cywee/Inc/cywee_hal.h | 4 +- .../peripheral/cywee/service/cywee_service.c | 239 +++++++++--------- .../drivers/peripheral/cywee/src/main_dml.c | 16 +- 4 files changed, 134 insertions(+), 129 deletions(-) diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h index e21d3d4cc..3ed74a4dc 100755 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h @@ -161,7 +161,7 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L9 dsp uart TP35 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 dsp uart TP36 #endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L11 G_INT1 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_AGPIO_L11 G_INT1 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L12 i2c data HX3507_SDIO { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L13 i2c CLK HX3507_SCLK @@ -291,7 +291,7 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { #ifdef ENABLE_CYWEE /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 采用timer 时这些中断要屏蔽*/ - //{ S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, + { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, #endif /**S_AGPIO_R1 GPO alipay默认resetpin*/ diff --git a/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h b/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h index 7df0ead03..65b672eac 100644 --- a/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h +++ b/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h @@ -499,8 +499,8 @@ void cywee_hrs_wearstatus_update(int hrs_data,int wearstatus); void cywee_set_user_info(int user_info[5]); void cywee_get_sleep_data(void); void cywee_reset_daily_data(void); -void cyw_inactivity_mode_change(int mode); -void cyw_activity_mode_change(int mode); +void cywee_inactivity_mode_change(int mode); +void cywee_activity_mode_change(int mode); void cywee_hand_updown_switch(int cmd); void cywee_ar_alert_switch(int cmd); extern uint8_t hrs_mode_state; diff --git a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c index 52b9abbed..72cb4b1d8 100644 --- a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c +++ b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c @@ -47,7 +47,7 @@ typedef struct * 其他cmd在Header里定义,对外开放 */ -#define CYWEE_CHECK_MS 500 +#define CYWEE_CHECK_MS 40 osTimerId_t g_cywee_service_timer = NULL; static bool g_batter_service_initialled = false; @@ -260,122 +260,127 @@ static void cywee_service_check_task(void const *arg) { continue; } - - if (mail.cmd == CYWEE_SERVICE_CMD_TIMER_CHECK) - { - cywee_int_handler(); - // lis2doc_read_data(); - // printf("CYWEE_SERVICE_CMD_TIMER_CHECK\r\n"); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_TEST) - { - test_api(); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_START_CHECK) - { - cywee_service_running_stat = true; - cywee_main_dml(); - cywee_service_timer_start_check(CYWEE_CHECK_MS); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_STOP_CHECK) - { - cywee_service_running_stat = false; - if (g_cywee_service_timer != NULL) - osTimerStop(g_cywee_service_timer); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_NORMAL_MODE) - { - PRINT("普通运动模式\r\n"); - cyw_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_TREADMILL_MODE) - { - cyw_activity_mode_change(SPORT_ACTIVE_MODE_TREADMILL); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_OUTDOOR_RUNNING_MODE) - { - PRINT("室外跑步模式\r\n"); - cyw_activity_mode_change(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE) - { - PRINT("室内跑步模式\r\n"); - cyw_activity_mode_change(SPORT_ACTIVE_MODE_INDOOR_RUNNING); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_FITNESS_PEDOMETER_MODE) - { - cyw_activity_mode_change(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_FREE_TRAINING_MODE) - { - PRINT("自由训练模式\r\n"); - cyw_activity_mode_change(SPORT_ACTIVE_MODE_FREE_TRAINING); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_AR_ALERT_MODE) - { - cyw_activity_mode_change(SPORT_ACTIVE_MODE_AR_ALERT); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_PAUSE) - { - activity_mode_setstatus(1); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_RESUME) - { - activity_mode_setstatus(0); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_ONCHARGING_CHANGE) - { - cywee_oncharging_update(mail.data[0]); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE) - { - cywee_wearstatus_update(mail.data[0]); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE) - { - cywee_hrs_wearstatus_update(mail.data[0], mail.data[1]); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_SEDENTARY_MODE) - { - cyw_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_NAP_MODE) - { - cyw_inactivity_mode_change(INACTIVITY_MODE_NAP); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_SLEEPING_MODE) - { - cyw_inactivity_mode_change(INACTIVITY_MODE_SLEEPING); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_OPEN_HAND_UPDOWN) + switch(mail.cmd) { - cywee_hand_updown_switch(1); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_CLOSE_HAND_UPDOWN) - { - cywee_hand_updown_switch(0); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_OPEN_AR_ALERT) - { - cywee_ar_alert_switch(1); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_CLOSE_AR_ALERT) - { - cywee_ar_alert_switch(0); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_TIME_SYNC) - { - cywee_time_sync(); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_GET_SLEEP_DATA) - { - cywee_get_sleep_data(); - } - else if (mail.cmd == CYWEE_SERVICE_CMD_RESET_DAILY_DATA) - { - cywee_reset_daily_data(); + case CYWEE_SERVICE_CMD_TIMER_CHECK: + cywee_int_handler(); + // lis2doc_read_data(); + // printf("CYWEE_SERVICE_CMD_TIMER_CHECK\r\n"); + break; + + case CYWEE_SERVICE_CMD_TEST: + test_api(); + break; + + case CYWEE_SERVICE_CMD_START_CHECK: + //cywee_service_running_stat = true; + cywee_main_dml(); + //cywee_service_timer_start_check(CYWEE_CHECK_MS); + break; + + case CYWEE_SERVICE_CMD_STOP_CHECK: + cywee_service_running_stat = false; + if (g_cywee_service_timer != NULL) + osTimerStop(g_cywee_service_timer); + break; + + case CYWEE_SERVICE_CMD_NORMAL_MODE: + PRINT("普通运动模式\r\n"); + cywee_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL); + break; + + case CYWEE_SERVICE_CMD_TREADMILL_MODE: + cywee_activity_mode_change(SPORT_ACTIVE_MODE_TREADMILL); + break; + + case CYWEE_SERVICE_CMD_OUTDOOR_RUNNING_MODE: + PRINT("室外跑步模式\r\n"); + cywee_activity_mode_change(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING); + break; + + case CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE: + PRINT("室内跑步模式\r\n"); + cywee_activity_mode_change(CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE); + break; + + case CYWEE_SERVICE_CMD_FITNESS_PEDOMETER_MODE: + cywee_activity_mode_change(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR); + break; + + case CYWEE_SERVICE_CMD_FREE_TRAINING_MODE: + PRINT("自由训练模式\r\n"); + cywee_activity_mode_change(SPORT_ACTIVE_MODE_FREE_TRAINING); + break; + + case CYWEE_SERVICE_CMD_AR_ALERT_MODE: + cywee_activity_mode_change(SPORT_ACTIVE_MODE_AR_ALERT); + break; + + case CYWEE_SERVICE_CMD_PAUSE: + activity_mode_setstatus(1); + break; + + case CYWEE_SERVICE_CMD_RESUME: + activity_mode_setstatus(0); + break; + + case CYWEE_SERVICE_CMD_ONCHARGING_CHANGE: + cywee_oncharging_update(mail.data[0]); + break; + + case CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE: + cywee_wearstatus_update(mail.data[0]); + break; + + case CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE: + cywee_hrs_wearstatus_update(mail.data[0], mail.data[1]); + break; + + case CYWEE_SERVICE_CMD_SEDENTARY_MODE: + cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY); + break; + + case CYWEE_SERVICE_CMD_NAP_MODE: + cywee_inactivity_mode_change(INACTIVITY_MODE_NAP); + break; + + case CYWEE_SERVICE_CMD_SLEEPING_MODE: + cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING); + break; + + case CYWEE_SERVICE_CMD_OPEN_HAND_UPDOWN: + cywee_hand_updown_switch(1); + break; + + case CYWEE_SERVICE_CMD_CLOSE_HAND_UPDOWN: + cywee_hand_updown_switch(0); + break; + + case CYWEE_SERVICE_CMD_OPEN_AR_ALERT: + cywee_ar_alert_switch(1); + break; + + case CYWEE_SERVICE_CMD_CLOSE_AR_ALERT: + cywee_ar_alert_switch(0); + break; + + case CYWEE_SERVICE_CMD_TIME_SYNC: + cywee_time_sync(); + break; + + case CYWEE_SERVICE_CMD_GET_SLEEP_DATA: + cywee_get_sleep_data(); + break; + + case CYWEE_SERVICE_CMD_RESET_DAILY_DATA: + cywee_reset_daily_data(); + break; + + default: + PRINT("unkonw cmd \r\n"); + break; + } - } } #define CYWEE_APP_BOARD_MSG_COUNT 50 @@ -400,7 +405,7 @@ errcode_t uapi_cywee_service_init(void) app_task_definition_t taskcfg = {0}; taskcfg.create_queue_handle = create_cywee_queue; taskcfg.attr.name = "cywee_service"; - taskcfg.attr.priority = osPriorityNormal; + taskcfg.attr.priority = osPriorityNormal2; taskcfg.attr.stack_size = CYWEE_APP_BOARD_TASK_SIZE; taskcfg.func = cywee_service_check_task; taskcfg.use_mem = USE_DTCM_MEM; @@ -422,7 +427,7 @@ errcode_t uapi_cywee_service_init(void) void cywee_int_callback(pin_t pin, uintptr_t param) { - // PRINT("cywee_int1_callback %d 0x%X\n",pin,param); + //PRINT("cywee_int1_callback %d 0x%X\n",pin,param); uapi_gpio_clear_interrupt(pin); do_cywee_service_check_msg(CYWEE_SERVICE_CMD_TIMER_CHECK, NULL); } diff --git a/code/sdk/drivers/peripheral/cywee/src/main_dml.c b/code/sdk/drivers/peripheral/cywee/src/main_dml.c index b6c48a847..dc21839ed 100644 --- a/code/sdk/drivers/peripheral/cywee/src/main_dml.c +++ b/code/sdk/drivers/peripheral/cywee/src/main_dml.c @@ -100,7 +100,7 @@ void cywee_time_sync(void) struct tm* timeinfo; time(&rawtime); timeinfo = localtime(&rawtime); - PRINT("year[%d], mon[%d], day[%d], hour[%d], min[%d], msc[%d] \r\n", + CWM_OS_dbgPrintf("year[%d], mon[%d], day[%d], hour[%d], min[%d], msc[%d] \r\n", timeinfo->tm_year+1900,timeinfo->tm_mon+1,timeinfo->tm_mday, timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec); @@ -162,7 +162,7 @@ void activity_mode_setstatus(int cmd) CWM_SettingControl(SCL_ACTIVITY_PAUSE, &scl); } -void cyw_inactivity_mode_change(int mode) +void cywee_inactivity_mode_change(int mode) { cywee_time_sync(); switch (mode) @@ -216,7 +216,7 @@ void cyw_inactivity_mode_change(int mode) } } -void cyw_activity_mode_change(int mode) +void cywee_activity_mode_change(int mode) { switch (mode) { @@ -293,7 +293,7 @@ void get_gsonsen_xyz(gsenson_t *t) void gsensor_get_n_data(uint8_t cnt,gsenson_t t[]) { - for(int i=0;i