return ERRCODE_SUCC;
}
-static void porting_button_add_veto(void)
+static void porting_button_add_veto(uint8_t id)
{
- uapi_pm_add_sleep_veto(PM_ID_BUTTON);
+ if(id==0)
+ {
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_BUTTON);
+ if(cnt==0)
+ {
+ uapi_pm_add_sleep_veto(PM_ID_BUTTON);
+ printf("PM_ID_BUTTON:%d\r\n",id);
+ }
+ else
+ {
+ printf(" porting_button_add_veto:%d\r\n",cnt);
+ }
+ }
+ else
+ {
+
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_BUTTON_GPIO);
+ if(cnt==0)
+ {
+ uapi_pm_add_sleep_veto(PM_ID_BUTTON_GPIO);
+ printf("PM_ID_BUTTON:%d\r\n",id);
+ }
+ else
+ {
+ printf(" porting_button_add_veto:%d\r\n",cnt);
+ }
+ }
}
-static void porting_button_remove_veto(void)
+static void porting_button_remove_veto(uint8_t id)
{
- uapi_pm_remove_sleep_veto(PM_ID_BUTTON);
+ if(id==0)
+ {
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_BUTTON);
+ for (int i = 0; i < cnt; i++)
+ {
+ uapi_pm_remove_sleep_veto(PM_ID_BUTTON);
+ }
+ printf("porting_button_remove_veto:%d\r\n",id);
+ }
+ else
+ {
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_BUTTON_GPIO);
+ for (int i = 0; i < cnt; i++)
+ {
+ uapi_pm_remove_sleep_veto(PM_ID_BUTTON_GPIO);
+ }
+ printf("porting_button_remove_veto:%d\r\n",id);
+ }
+
+
}
button_peripheral_api g_brandy_button_api = {
button_api->button_clear_interrupt(pin);
button_press_state_t press_state = button_get_press_state(pin);
button_send_msg(BUTTON_PWREN_ID, press_state);
- button_api->button_add_veto();
+ button_api->button_add_veto(0);
button_timer_start_check_released();
}
osal_irq_restore(irq_sts);
button_peripheral_api *button_api = button_port_get_api();
- button_api->button_add_veto();
+ button_api->button_add_veto(1);
button_timer_start();
}
button_timer_start();
} else {
button_peripheral_api *button_api = button_port_get_api();
- button_api->button_remove_veto();
+ button_api->button_remove_veto(1);
}
}
press_state = button_get_press_state(PIN_NONE);
if (press_state == 1) {
button_send_msg(1, RELEASED);
- button_api->button_remove_veto();
+ button_api->button_remove_veto(0);
} else {
button_timer_start_check_released();
}
button_api->button_clear_interrupt(pin);
button_press_state_t press_state = button_get_press_state(pin);
button_send_msg(BUTTON_PWREN_ID, press_state);
- button_api->button_add_veto();
+ printf("button_irq_callback pin\r\n");
+ button_api->button_add_veto(0);
button_timer_start_check_released();
}
osal_irq_restore(irq_sts);
button_peripheral_api *button_api = button_port_get_api();
- button_api->button_add_veto();
+ button_api->button_add_veto(1);
button_timer_start();
}
button_timer_start();
} else {
button_peripheral_api *button_api = button_port_get_api();
- button_api->button_remove_veto();
+ button_api->button_remove_veto(1);
}
}
press_state = button_get_press_state(PIN_NONE);
if (press_state == 1) {
button_send_msg(1, RELEASED);
- button_api->button_remove_veto();
+ button_api->button_remove_veto(0);
} else {
button_timer_start_check_released();
}
button_press_state_t (*button_get_state)(pin_t pin);
errcode_t (*button_register_callback)(pin_t pin, osal_irq_handler thread_handler);
errcode_t (*button_unregister_callback)(pin_t pin);
- void (*button_add_veto)(void);
- void (*button_remove_veto)(void);
+ void (*button_add_veto)(uint8_t);
+ void (*button_remove_veto)(uint8_t);
} button_peripheral_api;
/**
PM_ID_GSENSOR,//新增,加速计
PM_ID_CAT1,//Cat1 communication
PM_ID_P_TEST,//产测
+ PM_ID_BUTTON_GPIO,//gpio按键
PM_ID_MAX,
} pm_id_t;
"PM_ID_GSENSOR",//新增,加速计
"PM_ID_CAT1",//Cat1 communication
"PM_ID_P_TEST",
+ "PM_ID_BUTTON_GPIO",//GPIO按键
"PM_ID_MAX"
};