static uint8_t g_check_count = 0;
static void battery_check_timer_callback(void* data);
-errcode_t charger_plug_event_ui_callback(bool plugged);
+errcode_t charger_plug_event_notify(uint8_t plugged);
+errcode_t charger_plug_event_ui_sendmsg_toUI(uint8_t plugged);
static void battery_timer_start_check_released(uint32_t rtc_ms)
{
if (osTimerIsRunning(g_battery_timer)) osTimerStop(g_battery_timer);
osTimerStart(g_battery_timer, rtc_ms);
}
-void do_battery_check_msg(uint8_t cmd);
+void send_battery_svr_cmd_msg(uint8_t cmd);
static void battery_check_and_enable_charge(void);
static void battery_check_timer_callback(void * data)
{
unused(data);
- do_battery_check_msg(BATTERY_CMD_CHECK_VOLTAGE);
+ send_battery_svr_cmd_msg(BATTERY_CMD_CHECK_VOLTAGE);
}
void uapi_battery_deinit(void)
-void do_battery_check_msg(uint8_t cmd)
+void send_battery_svr_cmd_msg(uint8_t cmd)
{
int ret;
g_check_count++;
// PRINT("BATTERY_CMD_CHECK_VOLTAGE g_check_count %d\r\n",g_check_count);
-
if(last_battery_charge_enable_status == true){
if (g_check_count*CHARGE_CHECK_TIMER_CYCLE_MS >= ENABLE_CHARGE_TIMEOUT_MS)
{
- // PRINT("BATTERY_CMD_CHECK_VOLTAGE disable_charge \r\n");
+ PRINT("BATTERY_CMD_CHECK_VOLTAGE disable_charge \r\n");
g_check_count = 0 ;
//超时交换状态
disable_charge();
last_battery_charge_enable_status = false;
- // GraphicService::GetInstance()->PostGraphicEvent(std::bind(charger_plug_event_ui_callback, true));
-
+ // charger_plug_event_ui_sendmsg_toUI(0);
}
}else if (last_battery_charge_enable_status == false) {
if (g_check_count*CHARGE_CHECK_TIMER_CYCLE_MS >= DISABLE_CHARGE_CHECK_MS)
{
- // PRINT("BATTERY_CMD_CHECK_VOLTAGE battery_check_and_enable_charge \r\n");
+ PRINT("BATTERY_CMD_CHECK_VOLTAGE battery_check_and_enable_charge \r\n");
g_check_count = 0 ;
//超时交换状态
battery_check_and_enable_charge();
last_battery_charge_enable_status = true;
-
- // GraphicService::GetInstance()->PostGraphicEvent(std::bind(charger_plug_event_ui_callback, false));
-
+ // charger_plug_event_ui_sendmsg_toUI(1);
}
}
}else if (mail.comm.event == BATTERY_CMD_CHARGE_PLUG) {
- PRINT("[battery][service] charger_plug_event_ui_callback plugged \n");
- // GraphicService::GetInstance()->PostGraphicEvent(std::bind(charger_plug_event_ui_callback, true));
+ PRINT("[battery][service] charger_plug_event_ui_sendmsg_toUI plugged \n");
+ charger_plug_event_ui_sendmsg_toUI(1);
}else if (mail.comm.event == BATTERY_CMD_CHARGE_UNPLUG) {
- PRINT("[battery][service] charger_plug_event_ui_callback unplugged \n");
- // GraphicService::GetInstance()->PostGraphicEvent(std::bind(charger_plug_event_ui_callback, false));
+ PRINT("[battery][service] charger_plug_event_ui_sendmsg_toUI unplugged \n");
+ charger_plug_event_ui_sendmsg_toUI(0);
}
}
-}
-void ChargerEventPublish(uint16_t topic, uint16_t data)
+}
+
+
+void ChargerEventPublish(uint16_t topic, uint32_t data)
{
int32 ret;
- uint32 size = sizeof(uint16_t);
+ uint32 size = sizeof(uint32_t);
Request *request = NULL;
BroadcastApi *broadcastApi = NULL;
IUnknown *api = NULL;
return;
}
-errcode_t charger_plug_event_ui_callback(bool plugged)
+
+errcode_t charger_plug_event_notify(uint8_t plugged)
{
- if(plugged){
- ChargerEventPublish( TOPIC_EVENT_CHARGE_PLUG,0);
+
+ return 0;
+ #ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
+ if(plugged == 1){
+ ChargerEventPublish(TOPIC_EVENT_CHARGE_PLUG,1);
}else{
- ChargerEventPublish(TOPIC_EVENT_CHARGE_UNPLUG,1);
+ ChargerEventPublish(TOPIC_EVENT_CHARGE_UNPLUG,0);
}
+ #else
+ if(plugged == 1){
+ ChargerEventPublish(TOPIC_EVENT_STEPDATA_UPDATE,1);
+ }else{
+ ChargerEventPublish(TOPIC_EVENT_STEPDATA_UPDATE,0);
+ }
+ #endif
+ return 0;
}
+errcode_t charger_plug_event_ui_sendmsg_toUI(uint8_t plugged)
+{
+
+ /**通过UI事件发送Notify*/
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(charger_plug_event_notify, plugged));
+
+ // /**直接发送Notify , 会直接挂掉。*/
+ // charger_plug_event_notify(plugged);
+ return ERRCODE_SUCC;
+}
errcode_t battery_charger_plug_event_callback(uint8_t plugged)
{
- PRINT("[battery][service] battery_charger_plug plugged %u \n",plugged);
+ PRINT("[battery][service] battery_charger_plug_event_callback plugged=%u \n",plugged);
if(plugged == 1){
// PRINT("[battery][service] battery_charger_plug plugged \n");
- do_battery_check_msg(BATTERY_CMD_CHARGE_PLUG);
+ send_battery_svr_cmd_msg(BATTERY_CMD_CHARGE_PLUG);
+
}else{
// PRINT("[battery][service] battery_charger_plug unplugged \n");
- do_battery_check_msg(BATTERY_CMD_CHARGE_UNPLUG);
- }
+ send_battery_svr_cmd_msg(BATTERY_CMD_CHARGE_UNPLUG);
+ }
return ERRCODE_SUCC;
}
errcode_t uapi_battery_init(void)
{
+
+ // PRINT("uapi_battery_init !\r\n");
+
if (osal_msg_queue_create("battery_queue", APP_BOARD_MSG_COUNT, &g_app_queue,
0, sizeof(common_notify_mail_t)) != ERRCODE_SUCC) {
PRINT("[battery][service] app create mail fail\n");
osal_task *task_handle = osal_kthread_create((osal_kthread_handler)battery_check_task, NULL,
- "battery_service", APP_BOARD_TASK_SIZE);
+ "battery_service", APP_BOARD_TASK_SIZE*2);
if (task_handle == NULL) {
osal_msg_queue_is_full(g_app_queue);
PRINT("create battery service thread fail!\r\n");
osal_kthread_set_priority(task_handle, APP_BOARD_TASK_PRIO);
// osal_kthread_set_priority(task_handle, 10);
- g_battery_timer = osTimerNew((osTimerFunc_t)battery_check_timer_callback, osTimerOnce, NULL, NULL);
+ g_battery_timer = osTimerNew((osTimerFunc_t)battery_check_timer_callback, osTimerPeriodic, NULL, NULL);
/**下面初始化电池基本数据,充电线基本状态*/
uapi_register_charger_event_callback(battery_charger_plug_event_callback);
//开始timer
battery_timer_start_check_released(CHARGE_CHECK_TIMER_CYCLE_MS);
+ // PRINT("uapi_battery_init end!\r\n");
return ERRCODE_SUCC;
const PriorityMapper g_pri_mapper[] = {
{TOPIC_EVENT_ALARM_RING, PRIORITY_TWO},
{TOPIC_EVENT_NEXTDAY_UPDATE, PRIORITY_TWO},
+#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
{TOPIC_EVENT_CHARGE_PLUG, PRIORITY_TWO},
{TOPIC_EVENT_CHARGE_UNPLUG, PRIORITY_TWO},
+#endif
{TOPIC_EVENT_HFP_INCOMMING, PRIORITY_ONE},
{TOPIC_EVENT_HFP_FINISHED, PRIORITY_ONE},
{TOPIC_EVENT_HFP_PHONE_ACTIVE, PRIORITY_ONE},
MsgCenterSubscribeTopic(TOPIC_EVENT_HFP_FINISHED);
MsgCenterSubscribeTopic(TOPIC_EVENT_HFP_PHONE_TO_WATCH);
MsgCenterSubscribeTopic(TOPIC_EVENT_HFP_WATCH_TO_PHONE);
+#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
MsgCenterSubscribeTopic(TOPIC_EVENT_CHARGE_PLUG);
MsgCenterSubscribeTopic(TOPIC_EVENT_CHARGE_UNPLUG);
+#endif
}
static OHOS::UIViewGroup* showAlarmNotify(void)
AlarmPopUpPresenter::GetInstance()->DelayAlarmRing();
}
}
+#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
void MsgCenterNotifyChargePlugProc(const Topic topic, Request* req)
{
unused(req);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyProc:: CHarger UnPlug !");
}
+#endif
void MsgCenterNotifyNextDayProc(const Topic topic, Request* req)
{
unused(topic);
{TOPIC_EVENT_HFP_WATCH_TO_PHONE, MsgCenterNotifyHfpPhoneProc},
{TOPIC_EVENT_HFP_WATCH_ACTIVE, MsgCenterNotifyHfpWatchProc},
{TOPIC_EVENT_HFP_PHONE_TO_WATCH, MsgCenterNotifyHfpWatchProc},
+#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
{TOPIC_EVENT_CHARGE_PLUG, MsgCenterNotifyChargePlugProc},
{TOPIC_EVENT_CHARGE_UNPLUG, MsgCenterNotifyChargeUnPlugProc},
+#endif
};
static msg_center_notify_table_t *MsgCenterGetNotifyTblCb(uint8_t idx)