gengxin
author@CHENG <2393524978@qq.com>
Wed, 21 Feb 2024 10:25:34 +0000 (18:25 +0800)
committer@CHENG <2393524978@qq.com>
Wed, 21 Feb 2024 10:25:34 +0000 (18:25 +0800)
2.sdk/new_clean.sh
2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.c
2.sdk/sdk/gui/lv_watch/app_adaptor/app_adaptor_timing_control.h

index 5417f62..4ea13c0 100644 (file)
@@ -1,4 +1,4 @@
-echo "new clean !!!"
+echo "new the whole project"
 
 if [ ! -n "$1" ] ; then
     echo "Error: please add project name"
@@ -12,6 +12,12 @@ else
 
     typeset -u project_name
     project_name=$1
+    echo $project_name
+
+    cd sdk
+    make clean p=$project_name
+    cd ..
+
     echo $project_name > sdk/temp_project.h
     
     echo "#define MMI_BUILD_PROJECT \"$project_name\"" > sdk/build_info.h
@@ -20,10 +26,6 @@ else
 
     cp project/$project_name/make_option.mk sdk/
 
-    cd sdk
-    make clean p=$project_name
-    cd ..
-
     rm sdk/gui/lv_watch/resource -r
 
     cp project/$project_name/* sdk/ -r
index ba3a45d..559c687 100644 (file)
@@ -19,45 +19,174 @@ static int8_t s_timing_control_last_min = -1;
 #define TIMING_FIRST_TIMER_INTERVAL    (3 * 1000) // ms
 #define TIMING_TIMER_INTERVAL  (20 * 1000) // ms
 
+#define MMI_GUI_TIMING_TASK_PRIORITY 219
+#define MMI_GUI_TIMING_TASK_STACK_SIZE (1 * 1024)
+#define MMI_GUI_TIMING_MSG_QUEUE_SIZE (16)
+
+TASK_HANDLE * s_gui_timing_task_id = NULL;
+
+static void mmi_gui_timing_task_20_second_mission(void * time_param);
+static void mmi_gui_timing_task_1_minute_mission(void * time_param);
+
+
+void mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_ID_E msg_id, void * msg_param)
+{
+       if(NULL == s_gui_timing_task_id)
+       {
+               printf("[@CHENG_DEBUG][%s][%d]: task not exist\n",__FUNCTION__,__LINE__);
+               if(NULL != msg_param)
+                       Hal_Mem_Free(msg_param);
+               
+               return;
+       }
+       
+       if((MMI_GUI_TIMING_MSG_QUEUE_SIZE - 1) < Hal_Get_Message_Count(s_gui_timing_task_id))
+       {
+               printf("[@CHENG_DEBUG][%s][%d]: msg queue full\n",__FUNCTION__,__LINE__);
+               if(NULL != msg_param)
+                       Hal_Mem_Free(msg_param);
+               
+               return;
+       }
+
+       printf("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id);
+    mmi_gui_timing_task_msg_t * msg = Hal_Mem_Alloc(sizeof(mmi_gui_timing_task_msg_t));
+       if(NULL == msg)
+       {
+               printf("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n",__FUNCTION__,__LINE__);
+               if(NULL != msg_param)
+                       Hal_Mem_Free(msg_param);
+               
+               return;
+       }
+       msg->msg_id = msg_id;
+       msg->msg_param = msg_param;
+
+    Hal_Send_Message((TASK_ID)s_gui_timing_task_id, (void *)msg);
+}
+
+static void mmi_gui_timing_task_handle(void * param)
+{
+       mmi_gui_timing_task_msg_t * msg = (mmi_gui_timing_task_msg_t *)param;
+       MMI_GUI_TIMING_MSG_ID_E msg_id = msg->msg_id;
+       void * msg_param = msg->msg_param;
+
+       printf("[@CHENG_DEBUG][%s][%d]: msg_id=%d\n",__FUNCTION__,__LINE__, msg_id);
+    switch(msg_id)
+       {
+        case MMI_GUI_TIMING_MSG_20_SECOND:
+                       mmi_gui_timing_task_20_second_mission(msg_param);
+            break;
+
+        case MMI_GUI_TIMING_MSG_1_MINUTE:
+                       mmi_gui_timing_task_1_minute_mission(msg_param);
+            break;
+
+               default:
+                       break;
+    }
+}
+
+static void mmi_gui_timing_task_entry(void * para)
+{
+    while(NULL == s_gui_timing_task_id)
+       {
+        uos_sleep(10);
+    }
+
+    while(1)
+       {
+        mmi_gui_timing_task_msg_t * msg = (mmi_gui_timing_task_msg_t *)Hal_Receive_Message((TASK_ID)s_gui_timing_task_id, TRUE);
+
+               mmi_gui_timing_task_handle(msg);
+
+        Hal_Mem_Free(msg->msg_param);
+        Hal_Mem_Free(msg);
+    }
+}
+
+void mmi_gui_timing_task_create(void)
+{
+       s_gui_timing_task_id = uos_create_task(mmi_gui_timing_task_entry,
+                                                                                       NULL,
+                                                                                       MMI_GUI_TIMING_MSG_QUEUE_SIZE,
+                                                                                       MMI_GUI_TIMING_TASK_STACK_SIZE,
+                                                                                       MMI_GUI_TIMING_TASK_PRIORITY,
+                                                                                       "mmi_gui_timing_task");
+
+       printf("[@CHENG_DEBUG][%s][%d]: task_id=0x%x\n",__FUNCTION__,__LINE__, s_gui_timing_task_id);
+}
+
+static void mmi_gui_timing_task_20_second_mission(void * time_param)
+{
+    hal_rtc_t cur_time = {0};
+       
+       Hal_Mem_Copy(&cur_time, time_param, sizeof(hal_rtc_t));
+
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+       
+       // pedometer
+       mmi_pedometer_steps_mission(cur_time);
+
+
+
+
+}
+
+static void mmi_gui_timing_task_1_minute_mission(void * time_param)
+{
+    hal_rtc_t cur_time = {0};
+       
+       Hal_Mem_Copy(&cur_time, time_param, sizeof(hal_rtc_t));
+
+       printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+       // check remind
+       mmi_remind_mission_check(cur_time);
+
+       // check sleep time
+#ifdef __MMI_SLEEP_FUNCTION_SUPPORT__
+       mmi_watch_sleep_time_mission_check();
+#endif
+
+       // check tcms
+#ifdef __MMI_CUSTOM_HENGAI_TCMS__
+       mmi_hengai_tcms_mission_check();
+#endif
+
+
+
+
+}
+
 static void timing_timer_callback(uint32_t param)
 {
     hal_rtc_t cur_time = {0};
     Hal_Rtc_Gettime(&cur_time);
-       printf("[@CHENG_DEBUG][%s][%d]: %d,%d,%d\n", __FUNCTION__, __LINE__, cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec);
+       printf("[@CHENG_DEBUG][%s][%d]: %02d:%02d:%02d\n", __FUNCTION__, __LINE__, cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec);
 
        uos_timer_stop(s_timing_control_timer);
        uos_timer_start(s_timing_control_timer, MS_TO_TICKS(TIMING_TIMER_INTERVAL), 0, timing_timer_callback, NULL);
 
-       // pedometer
-       mmi_pedometer_steps_mission(cur_time);
+    hal_rtc_t * p_cur_time_20 = Hal_Mem_Alloc(sizeof(hal_rtc_t));
+       Hal_Mem_Copy(p_cur_time_20, &cur_time, sizeof(hal_rtc_t));
+       mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_20_SECOND, p_cur_time_20);
 
-       // every minuter check mission
        if(cur_time.tm_min != s_timing_control_last_min)
        {
-               printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+               printf("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, s_timing_control_last_min);
                
                s_timing_control_last_min = cur_time.tm_min;
-               
-               // check remind
-               mmi_remind_mission_check(cur_time);
-
-               // check sleep time
-       #ifdef __MMI_SLEEP_FUNCTION_SUPPORT__
-               mmi_watch_sleep_time_mission_check();
-       #endif
-
-               // check tcms
-       #ifdef __MMI_CUSTOM_HENGAI_TCMS__
-               mmi_hengai_tcms_mission_check();
-       #endif
-
-
-               
+               hal_rtc_t * p_cur_time_60 = Hal_Mem_Alloc(sizeof(hal_rtc_t));
+               Hal_Mem_Copy(p_cur_time_60, &cur_time, sizeof(hal_rtc_t));
+               mmi_gui_timing_task_msg_send(MMI_GUI_TIMING_MSG_1_MINUTE, p_cur_time_60);
        }
 }
 
 void app_adaptor_timing_control_init(void)
 {
+       mmi_gui_timing_task_create();
+
     uos_timer_create(&s_timing_control_timer);
     uos_timer_start(s_timing_control_timer, MS_TO_TICKS(TIMING_FIRST_TIMER_INTERVAL), 0, timing_timer_callback, NULL);
 }
index 5774e6c..5f6ac3f 100644 (file)
@@ -12,7 +12,30 @@ extern "C" {
 /**********************
  *   GLOBAL PROTOTYPES
 ***********************/
+
+#if 1 // def __MMI_ZHSX_SUPPORT__
+typedef enum
+{
+       MMI_GUI_TIMING_MSG_ID_START,
+
+    MMI_GUI_TIMING_MSG_5_SECOND,
+       MMI_GUI_TIMING_MSG_20_SECOND,
+    MMI_GUI_TIMING_MSG_1_MINUTE,
+       MMI_GUI_TIMING_MSG_2_MINUTE,
+
+    MMI_GUI_TIMING_MSG_ID_END
+}MMI_GUI_TIMING_MSG_ID_E;
+
+typedef struct
+{
+       uint16_t msg_id;
+       void * msg_param;
+}mmi_gui_timing_task_msg_t;
+
+#else
 void timing_upload_set_flag(void);
+#endif
+
 void app_adaptor_timing_control_init(void);