添加充电线插入检测 Notification 暂时还有bug,默认未使能
authorSnickerSun <snickersun@163.com>
Sat, 3 Feb 2024 10:21:00 +0000 (18:21 +0800)
committerSnickerSun <snickersun@163.com>
Sat, 3 Feb 2024 10:21:00 +0000 (18:21 +0800)
code/sdk/application/battery/CMakeLists.txt
code/sdk/application/battery/service/battery_service.cpp
code/sdk/application/wearable/service/broadcast/include/broadcast_feature.h
code/sdk/application/wearable/service/broadcast/src/broadcast_implement.c
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp
code/sdk/application/wearable/service/msg_center/src/notify/notification_manager_customer.cpp
code/sdk/build/config/target_config/brandy/config.py

index c93422e..7d92711 100644 (file)
@@ -13,6 +13,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/service
 set(PRIVATE_HEADER
     ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/innerkits
     ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits
+    ${ROOT_DIR}/application/wearable/nativeapp/nativeui/heartrate/include
 )
 
 set(SOURCES
index 7e9eb07..eebc842 100644 (file)
@@ -100,21 +100,22 @@ static unsigned long g_app_queue;
 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)
@@ -127,7 +128,7 @@ void uapi_battery_deinit(void)
 
 
 
-void do_battery_check_msg(uint8_t cmd)
+void send_battery_svr_cmd_msg(uint8_t cmd)
 {
     int ret;
 
@@ -196,52 +197,50 @@ static void battery_check_task(void const *arg)
 
             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;
@@ -282,34 +281,60 @@ void ChargerEventPublish(uint16_t topic, uint16_t data)
 
     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");
@@ -318,7 +343,7 @@ errcode_t uapi_battery_init(void)
 
 
     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");
@@ -327,13 +352,14 @@ errcode_t uapi_battery_init(void)
 
     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;
index 92da7a2..96bdf46 100755 (executable)
@@ -43,8 +43,10 @@ typedef enum {
     TOPIC_EVENT_HFP_FINISHED,
     TOPIC_EVENT_HFP_PHONE_TO_WATCH,
     TOPIC_EVENT_HFP_WATCH_TO_PHONE,
+#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
     TOPIC_EVENT_CHARGE_PLUG,
     TOPIC_EVENT_CHARGE_UNPLUG,
+#endif
     TOPIC_END_NUM = 20000,
 } TopicNum;
 
index bb287c5..5bd4a5c 100755 (executable)
@@ -32,8 +32,10 @@ static const TopicToCore topicToCoreArray[] = {
     {TOPIC_EVENT_HFP_FINISHED, A_CORE_MASK, 1},
     {TOPIC_EVENT_HFP_PHONE_TO_WATCH, A_CORE_MASK, 1},
     {TOPIC_EVENT_HFP_WATCH_TO_PHONE, A_CORE_MASK, 1},
+#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
     {TOPIC_EVENT_CHARGE_PLUG, A_CORE_MASK, 1},
     {TOPIC_EVENT_CHARGE_UNPLUG, A_CORE_MASK, 1},
+#endif
 };
 
 /* 所有的topic,其对应的位图 */
index be760c3..3958be9 100755 (executable)
@@ -35,8 +35,10 @@ extern "C" {
 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},
@@ -72,8 +74,10 @@ void MsgCenterSubscribe()
     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)
@@ -106,6 +110,7 @@ void MsgCenterNotifyAlarmProc(const Topic topic, Request* req)
         AlarmPopUpPresenter::GetInstance()->DelayAlarmRing();
     }
 }
+#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
 void MsgCenterNotifyChargePlugProc(const Topic topic, Request* req)
 {
     unused(req);
@@ -120,6 +125,7 @@ void MsgCenterNotifyChargeUnPlugProc(const Topic topic, Request* req)
     WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyProc:: CHarger UnPlug !");
 
 }
+#endif
 void MsgCenterNotifyNextDayProc(const Topic topic, Request* req)
 {
     unused(topic);
@@ -176,8 +182,10 @@ static msg_center_notify_table_t g_msg_center_notify_table[] = {
     {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)
index 8c7311d..3fb982e 100755 (executable)
@@ -25,5 +25,8 @@ void NotificationManager::FreeNotifyViews()
     FreeAlarmRingView();
     FreePhoneCallView();
     FreeCallingView();
+#ifdef SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION
+    //Do Free notification view
+#endif
 }
 }
index 69cdaa5..f3c8bc7 100755 (executable)
@@ -126,8 +126,10 @@ target = {
                     'MIPI_ULPS_SUPPORT', 
                     'ENABLE_FONT_VECTOR_GLOBAL', 
                     'ENABLE_SHAPING',
-                    'TPTYPE_FT6X46', 
-                    'SUPPORT_ALIPAY_SEC'],
+                    'TPTYPE_FT6X46',
+                    # 'SUPPORT_CHARGER_PLUG_DETECTION_NOTIFICATION', 
+                    'SUPPORT_ALIPAY_SEC'
+                    ],
         'ram_component': ["algorithm", "dfx_port_brandy", "dfx_update", 'dfx_nv', "osal", "arch_port", "-:testsuite",
                           "liteos_port", 'lcd', 'qspi_display', 'dfx_file_operation',
                           'psram', 'hal_mipi', 'mipi_tx', 'non_os', 'touch',