K18血压提交
authorp15692025051 <846603105@qq.com>
Tue, 30 Apr 2024 08:21:38 +0000 (16:21 +0800)
committerp15692025051 <846603105@qq.com>
Tue, 30 Apr 2024 08:21:38 +0000 (16:21 +0800)
2.sdk/project/Z5_HA_K18/gui/lv_watch/mmi_default_CUSTOM.h
2.sdk/sdk/gui/lv_drivers/indev/FR8012HAQ/fr8012haq.c
2.sdk/sdk/product/craneg_modem/framework/cus/charger_cus.c
2.sdk/sdk/product/craneg_modem/framework/inc/cus/charger_cus.h
2.sdk/sdk/product/craneg_modem/hal/gps_device/src/gps_uart.c
2.sdk/sdk/product/craneg_modem/lv_gui_main.c

index f636c16..c920507 100644 (file)
@@ -8,21 +8,21 @@
 //server ip
 // fzd debug-lab.xcloudtech.com:9000; fzd-api.xcloudtech.com:9000
 // tongxin debug-tcptest.tx.kidxin.com:20500; tongxin-tcp.tx.kidxin.com:20500
-#define MMI_CUSTOMER_IP_ADDRESS                "iot.socket.thisiot.com" // "api.xcloudtech.com"
+#define MMI_CUSTOMER_IP_ADDRESS                "test.iot.socket.thisiot.com"
 
 #define MMI_CUSTOMER_IP_PORT           (9999) // (9000)
 
 // fzd-"bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
-#define MMI_CUSTOMER_PROTOCOL_MD5_KEY          "SZYhyGhroQ3xFKFWZq1g" // "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
+#define MMI_CUSTOMER_PROTOCOL_MD5_KEY          "2gJcBatAioDZOmvareIo"
 
 // fzd-"SZKW"
-#define MMI_CUSTOMER_PROTOCOL_DEVICE_NAME              "oxLwDqcwJCtiPSRu" // "SZKW"
+#define MMI_CUSTOMER_PROTOCOL_DEVICE_NAME              "bwuwcChPG1C42ay5"
 
 
 //
 #define MMI_CUSTOMER_HEARTBEAT_ACTION_INTERVAL         (7 * 60) // (5 * 60) // unit:s
 
-#define MMI_CUSTOMER_LOCATION_UPLOAD_INTERVAL          (30 * 60) // unit:s
+#define MMI_CUSTOMER_LOCATION_UPLOAD_INTERVAL          (120 * 60) // unit:s
 
 #define MMI_CUSTOMER_WEATHER_UPDATE_INTERVAL           (6 * 60 * 60) // unit:s
 
 
 
 //health measure timed
-#define MMI_CUSTOMER_HEART_TIMED_FLAG          true
+#define MMI_CUSTOMER_HEART_TIMED_FLAG          false
 
 #define MMI_CUSTOMER_HEART_TIMED_INTERVAL              (60 * 60) // unit:s
 
-#define MMI_CUSTOMER_TEMPERATURE_TIMED_FLAG            true
+#define MMI_CUSTOMER_TEMPERATURE_TIMED_FLAG            false
 
 #define MMI_CUSTOMER_TEMPERATURE_TIMED_INTERVAL                (60 * 60) // unit:s
 
-#define MMI_CUSTOMER_BLOOD_TIMED_FLAG          true
+#define MMI_CUSTOMER_BLOOD_TIMED_FLAG          false
 
 #define MMI_CUSTOMER_BLOOD_TIMED_INTERVAL              (60 * 60) // unit:s
 
-#define MMI_CUSTOMER_SPO2_TIMED_FLAG           true
+#define MMI_CUSTOMER_SPO2_TIMED_FLAG           false
 
 #define MMI_CUSTOMER_SPO2_TIMED_INTERVAL               (60 * 60) // unit:s
 
index 92b5f95..1879100 100644 (file)
@@ -39,11 +39,11 @@ int factory_aps_val;
 // };
 
 static const uint32_t fr8012haq_mfp_cfgs_sleep[] = {
-    MFP_REG(GPIO_32) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_LPM_EDGE_FALL,
+    MFP_REG(GPIO_32) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_HIGH | MFP_SLEEP_FLOAT | MFP_LPM_EDGE_FALL,
     MFP_EOC            /*End of configuration, must have */
 };
 static const uint32_t fr8012haq_d2_exit_mfp_cfgs[] = {
-    MFP_REG(GPIO_32) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_LPM_EDGE_FALL,
+    MFP_REG(GPIO_32) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_LPM_EDGE_NONE,
     MFP_EOC            /*End of configuration, must have */
 };
 static  uint32_t fr8012haq_mfp_cfgs[] = {
@@ -129,8 +129,8 @@ static void fr8012haq_en_gpio_init(void)
     gpio_set_direction(GPIO16, GPIO_OUT);
 
     gpio_set_direction(GPIO123, GPIO_OUT);
-    //gpio_set_direction(GPIO32, GPIO_OUT);
-    // gpio_set_value(GPIO123, GPIO_HIGH);
+    gpio_set_direction(GPIO32, GPIO_IN);
+    gpio_set_value(GPIO123, GPIO_HIGH);
     // gpio_set_value(GPIO32, GPIO_HIGH);
     
 }
@@ -185,16 +185,41 @@ extern void gps_ui_delay_us(unsigned int us);
 //发送数据到蓝牙
 void fr8012haq_write_data(char *buf,int len)
 {
+    //cplog_printf("fr8012haq_write_data:len:%d buf:%s\r\n",len,buf);
+    gpio_enable_edge_detect(GPIO32, 0);//写数据关闭中断
+    gpio_set_value(GPIO123, GPIO_LOW);//唤醒蓝牙
+    unsigned int count = 50;//50ms超时
+    //gps_ui_delay_us(1400*3);
+    while(gpio_get_value(GPIO32))//等待唤醒成功
+    {
+        count --;
+        // if(count%700000)
+        //     gpio_set_value(GPIO123, GPIO_HIGH);
+        // else if (count%800000)
+        //     gpio_set_value(GPIO123, GPIO_LOW);
+        //UOS_SleepMs(4);
+        gps_ui_delay_us(700);
+        if(count <= 0)
+        {
+            break;
+        }
+    }
     
-    gpio_set_value(GPIO123, GPIO_LOW);
-    gps_ui_delay_us(500);
-    gpio_set_value(GPIO123, GPIO_HIGH);
-    gps_ui_delay_us(1400*3);
-    //UOS_SleepMs(1);
+    //gps_ui_delay_us(500);
+    uart4_send_data(buf,len);
+    //gps_ui_delay_us(1400*1);
+    //
+    
+    //gps_ui_delay_us(1400*4);
+    //UOS_SleepMs(8);
+    //UOS_SleepMs(4);
     // gpio_set_value(GPIO32, GPIO_LOW);
     // gps_ui_delay_us(1400);
     // gpio_set_value(GPIO32, GPIO_HIGH);
-    uart4_send_data(buf,len);
+    
+    gpio_set_value(GPIO123, GPIO_HIGH);
+    gpio_enable_edge_detect(GPIO32, EDGE_FLAG_FALL);//写完开中断
+    //FR8012HAQ_LOG("fr8012haq_write_data:count:%d\n",count);
 }
 
 
@@ -223,29 +248,28 @@ void fr8012haq_timerout_cb(void)
 }
 void fr8012haq_timer_cfg(bool en)
 {
-    
+    return ;
     //FR8012HAQ_LOG("fr8012haq_timer_cfg :%d!!!!!!\n\n",en);
     if(en)
     {
         if(fr8012haq_timer == NULL )
             uos_timer_create(&fr8012haq_timer);
             //fr8012haq_timer = Helios_Timer_init( (void* )fr8012haq_timerout_cb, NULL);
-        if(FR8012HAQ_run_mode == WEAR_MODE)//如果是未佩戴,统一3秒
+        if(FR8012HAQ_run_mode == WEAR_MODE)//
         {
-            uos_timer_start(fr8012haq_timer, MS_TO_TICKS(5000), MS_TO_TICKS(5000), fr8012haq_timerout_cb, NULL);
+            uos_timer_start(fr8012haq_timer, MS_TO_TICKS(10000), MS_TO_TICKS(10000), fr8012haq_timerout_cb, NULL);
         }
         else if(FR8012HAQ_run_mode == BP_MODE)//血压500MS
         {
             FR8012HAQ_LOG("fr8012haq_timer_cfg:BP_MODE!!!!!\n");
-            uos_timer_start(fr8012haq_timer, MS_TO_TICKS(500), MS_TO_TICKS(500), fr8012haq_timerout_cb, NULL);
+            uos_timer_start(fr8012haq_timer, MS_TO_TICKS(1000), MS_TO_TICKS(1000), fr8012haq_timerout_cb, NULL);
+        }
+               else if(FR8012HAQ_run_mode == YYL_MODE)//中医10秒
+        {
+           uos_timer_start(fr8012haq_timer, MS_TO_TICKS(10000), MS_TO_TICKS(10000), fr8012haq_timerout_cb, NULL);
         }
-               //else if(FR8012HAQ_run_mode == YYL_MODE)//中医35秒
-        //{
-        //    uos_timer_start(fr8012haq_timer, MS_TO_TICKS(31000), MS_TO_TICKS(31000), fr8012haq_timerout_cb, NULL);
-        //}
                else//其他3秒
         {
-            
             uos_timer_start(fr8012haq_timer, MS_TO_TICKS(3000), MS_TO_TICKS(3000), fr8012haq_timerout_cb, NULL);
         }
 
@@ -273,9 +297,11 @@ static void DelayInUs(unsigned int us)
         endTime = GetTimer0CNT();    
     }
     while(Timer0IntervalInMicro(startTime, endTime) < us);
+    Timer0_Switch(0);
 }
 void FR8012HAQ_test(uint32_t mode)
 {
+    unsigned char count = 5;//重试次数
        s_FR8012HAQ_heart_rate = 0x0;
        s_FR8012HAQ_heart_rate_buff_count = 0; 
        s_FR8012HAQ_high_blood = 0x0;
@@ -284,7 +310,22 @@ void FR8012HAQ_test(uint32_t mode)
        //s_FR8012HAQ_wear_status = 0;
        s_FR8012HAQ_blood_oxygen = 0x0;
     FR8012HAQ_LOG("FR8012HAQ_test1:%d!!!!\n\n",mode);
-    unsigned char count = 5;//重试次数
+    char send_data[100] = {0};
+    int send_data_len = 0;
+    unsigned int time = 0;
+    Hal_Rtc_Gettime_Count_Utc(&time); //Hal_Rtc_Gettime_Count(&time);
+    count = 5;//重试次数
+    //UOS_SleepMs(100);
+    while(count--)
+    {
+        send_data_len = snprintf(send_data,sizeof(send_data),"{\"cmd\":\"3\",\"set_time\":\"%d\"}\n",time);//发送时间戳
+        fr8012haq_write_data(send_data,send_data_len);
+        if(fr8012haq_parse_returned_data(500) == 3)//必须解析到执行成功
+            break;
+        UOS_SleepMs(20);
+    }
+    UOS_SleepMs(20);
+    count = 5;//重试次数
     while(count--)
     {
         if(mode <= close_MODE)
@@ -353,55 +394,27 @@ void FR8012HAQ_test(uint32_t mode)
                     break;
             }
         }
-        if(fr8012haq_parse_returned_data(100) == 1)//必须解析到执行成功
-            break;
-        UOS_SleepMs(100);
-    }
-       char send_data[100] = {0};
-    int send_data_len = 0;
-    unsigned int time = 0;
-    Hal_Rtc_Gettime_Count_Utc(&time); //Hal_Rtc_Gettime_Count(&time);
-    count = 5;//重试次数
-    UOS_SleepMs(100);
-    while(count--)
-    {
-        send_data_len = snprintf(send_data,sizeof(send_data),"{\"cmd\":\"3\",\"set_time\":\"%d\"}\n",time);//发送时间戳
-        fr8012haq_write_data(send_data,send_data_len);
-        if(fr8012haq_parse_returned_data(100) == 3)//必须解析到执行成功
+        if(fr8012haq_parse_returned_data(1000) == 1)//必须解析到执行成功
             break;
-        UOS_SleepMs(100);
+        UOS_SleepMs(30);
     }
+       
     fr8012haq_timer_cfg(true);
-    
        FR8012HAQ_LOG("FR8012HAQ_test2:%d!!!!\n\n",mode);
 }
 static void fr8012haq_start(void)
 {
     FR8012HAQ_LOG("fr8012haq_start:FR8012HAQ_run_mode:%d\n",FR8012HAQ_run_mode);
-    Timer0_Switch(1);
-    
+    fr8012haq_hisr_ref_flag = 1;//不响应中断
     hal_fr8012haq_int_init();
-    
-
-    
     FR8012HAQ_test(FR8012HAQ_run_mode);
-
-
-    // hal_gh30x_int_init();
-    // fr8012haq_en_gpio_enable(false);
-    // DelayInUs(10*1000);
-    // fr8012haq_en_gpio_enable(true);
-    // DelayInUs(50*1000);
-    // int ret = gh30x_module_init();
-    
-    
-    //gh30x_module_start_without_adt(measure_mode);
+    fr8012haq_hisr_ref_flag = 0;
 }
 
 static void fr8012haq_stop(void)
 {
     FR8012HAQ_LOG("[%s][%d]: \n", __FUNCTION__, __LINE__);
-    //gh30x_module_stop();
+    fr8012haq_hisr_ref_flag = 1;//不响应中断
     
     //fr8012haq_en_gpio_enable(false);
     FR8012HAQ_close();
@@ -409,8 +422,8 @@ static void fr8012haq_stop(void)
     //FR8012HAQ_run_mode = NULL_MODE;
     fr8012haq_ppg_timerout_flag = 0;
     fr8012haq_agc_timerout_flag = 0;
-    Timer0_Switch(0);
        FR8012HAQ_restart();
+    fr8012haq_hisr_ref_flag = 0;//
 }
 //读取并解析返回数据
 #define DATA_HANDLE (1<<24)
@@ -423,6 +436,53 @@ void my_str_print(char *data,int len)
         FR8012HAQ_LOG("%c",data[i]);
 #endif
 }
+#define _UART4_RX_BUF_MAX 4*1024
+extern char uart4_rx_buf[_UART4_RX_BUF_MAX];
+extern int uart4_rx_buf_len ;
+int fr8012haq_uart4_recv_data(char *buf,int buf_max_len,unsigned int timeout)
+{
+       int len = 0;
+       int count = 0;
+       static int uart4_rx_buf_len_tmp = 0;
+       //timeout = timeout/8+1;
+       //cplog_printf("uart4_recv_data:timeout:%d\n",timeout);
+       while(1)
+       {
+               if(timeout > 0)
+                       timeout--;
+               
+               
+        gps_ui_delay_us(1400);
+               //UOS_SleepMs(1);
+               if(uart4_rx_buf_len == uart4_rx_buf_len_tmp && uart4_rx_buf_len != 0)
+               {
+                       count++;
+               }else
+                       count = 0;
+               uart4_rx_buf_len_tmp = uart4_rx_buf_len;
+               if((uart4_rx_buf_len != 0 && count> 8) || (timeout == 0))//连续15ms没新数据,认为是一帧数据,退出
+               {
+                       //cplog_printf("uart4_recv_data timeout:%d,count:%d,uart4_rx_buf_len:%d,\n", timeout,count,uart4_rx_buf_len);
+                       //cplog_printf("fr8012haq_uart4_recv_data:uart4_rx_buf_len:%d uart4_rx_buf:%c\n",uart4_rx_buf_len,uart4_rx_buf[uart4_rx_buf_len-2]);
+            break;
+               }
+                       
+               // if(count > 15)//连续15ms没新数据,认为是一帧数据,退出
+               //      break;
+       }
+       //cplog_printf("uart4_recv_data:count:%d timeout:%d\n",count,timeout);
+       if(uart4_rx_buf_len > buf_max_len)
+       {
+               len = buf_max_len;
+       }else
+       {
+               len = uart4_rx_buf_len;
+       }
+
+       memcpy(buf,uart4_rx_buf, len);
+       uart4_rx_buf_len = 0;
+       return len;
+}
 int fr8012haq_parse_returned_data(int timeout)
 {
     static char *UART4_buf = NULL;
@@ -437,18 +497,22 @@ int fr8012haq_parse_returned_data(int timeout)
         UART4_buf = malloc(UART4_BUF_LEN);
     if(UART4_buf == NULL)
         return -1;
-    sys_pm_wakeup_no_lcd();
+    gpio_enable_edge_detect(GPIO32, 0);//读关闭中断
+    gpio_set_value(GPIO123, GPIO_LOW);//告诉蓝牙可以发数据了
+    //sys_pm_wakeup_no_lcd();
     memset(UART4_buf,0,UART4_BUF_LEN);
-    len =uart4_recv_data(UART4_buf,UART4_BUF_LEN,timeout);//读串口数据
+    len =fr8012haq_uart4_recv_data(UART4_buf,UART4_BUF_LEN,timeout);//读串口数据
+    gpio_set_value(GPIO123, GPIO_HIGH);//
     if(len)
     {
+        uart4_send_data("{\"cmd\":\"0\"}",sizeof("{\"cmd\":\"0\"}"));//回蓝牙
         // FR8012HAQ_LOG("UART4:len:%d str:%s",len,UART4_buf);
         // FR8012HAQ_LOG("%s\n", (char *)UART4_buf+110);
         
         int print_len_tmp = len ;
         FR8012HAQ_LOG("UART4:len:%d data:",len);
         //my_str_print(UART4_buf,len);//打印
-        FR8012HAQ_LOG("\n\n");
+        FR8012HAQ_LOG("\r\n");
         cmd_str_tmp = UART4_buf;
         while(1)
         {
@@ -456,8 +520,10 @@ int fr8012haq_parse_returned_data(int timeout)
             if(count >30)
                 break;
             cmd_str_tmp = strstr(cmd_str_tmp,"{\"");
+            
             if(cmd_str_tmp)
             {
+                //FR8012HAQ_LOG("cmd_str_tmp:%s \n",cmd_str_tmp);
                 if(strstr(cmd_str_tmp,"\"cmd\":\"2\""))
                 {
                     ret = 2;
@@ -710,6 +776,11 @@ int fr8012haq_parse_returned_data(int timeout)
             }
             cmd_str_tmp += strlen("{\"");
         }
+    
+        
+    }else
+    {
+        FR8012HAQ_LOG("fr8012haq_parse_returned_data:TIMEOUT333333333!!!!\n\n");
     }
     
     if(UART4_buf!= NULL)    
@@ -717,66 +788,70 @@ int fr8012haq_parse_returned_data(int timeout)
         free(UART4_buf);
         UART4_buf = NULL;
     }
+    gpio_enable_edge_detect(GPIO32, EDGE_FLAG_FALL);//读完开中断
     return ret ;
 }
 
 void fr8012haq_process_data(uint32_t *process_data)
 {
-    sys_pm_wakeup_no_lcd();
-    Timer0_Switch(1);
+    //sys_pm_wakeup_no_lcd();
    
     FR8012HAQ_LOG("fr8012haq_process_data:%d!!!!\n\n",FR8012HAQ_run_mode);
     switch (FR8012HAQ_run_mode)
     {
-        case HRS_MODE:
-            /* code */
-            fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"hrs\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrs\"}\n"));
-            break;
-        case SPO2_MODE:
-            /* code */
-            fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"spo2\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"spo2\"}\n"));
-            break;
-        case BP_MODE:
-            /* code */
-            fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"bp\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"bp\"}\n"));
-            break;
-        case WEAR_MODE:
-            /* code */
-            fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"wear\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"wear\"}\n"));
-            break;
-        case HRV_MODE:
-            /* code */
-            //fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"hrv\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrv\"}"));
-            break;
-        case YYL_MODE:
-            /* code */
-            fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"yyl\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"yyl\"}\n"));
-            UOS_SleepMs(50);
-            break;
-        case TEMP_MODE:
-            /* code */
-            fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"temp\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"temp\"}\n"));
+        // case HRS_MODE:
+        //     /* code */
+        //     fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"hrs\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrs\"}\n"));
+        //     break;
+        // case SPO2_MODE:
+        //     /* code */
+        //     fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"spo2\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"spo2\"}\n"));
+        //     break;
+        // case BP_MODE:
+        //     /* code */
+        //     fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"bp\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"bp\"}\n"));
+        //     break;
+        // case WEAR_MODE:
+        //     /* code */
+        //     fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"wear\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"wear\"}\n"));
+        //     break;
+        // case HRV_MODE:
+        //     /* code */
+        //     //fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"hrv\"}",sizeof("{\"cmd\":\"2\",\"get_data\":\"hrv\"}"));
+        //     break;
+        // case YYL_MODE:
+        //     /* code */
+        //     fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"yyl\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"yyl\"}\n"));
+        //     //UOS_SleepMs(30);
+        //     //gps_ui_delay_us(1400*10);
+        //     break;
+        // case TEMP_MODE:
+        //     /* code */
+        //     fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"temp\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"temp\"}\n"));
             
-            break;
-        default:
-            break;
+        //     break;
+        // default:
+        //     break;
     }
     //UOS_SleepMs(20);
-    gps_ui_delay_us(1400*10);
-    //FR8012HAQ_LOG("fr8012haq_process_data2:%d!!!!\n",FR8012HAQ_run_mode);
+    //gps_ui_delay_us(1400*2);
+    
     // float tmp = 0x3FE2E147;
     // FR8012HAQ_LOG("float:%f\n",tmp);
-    fr8012haq_parse_returned_data(50);
-    //fr8012haq_write_data("{\"cmd\":\"0\"}",sizeof("{\"cmd\":\"0\"}"));//保活用
-    // gpio_enable_edge_detect(GPIO32, EDGE_FLAG_RISE);
+    
+    fr8012haq_parse_returned_data(1000);
+    
+    
+    
     // fr8012haq_sleep_resume();
+    //FR8012HAQ_LOG("fr8012haq_process_data2:%d!!!!\n",FR8012HAQ_run_mode);
     fr8012haq_hisr_ref_flag=0;
 }
 //返回是否激活返回0未激活,联网后判断一次是否激活,没激活需要执行激活参数
 char get_is_HA_activate(void)
 {
     fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"is_HA_activate\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"is_HA_activate\"}\n"));
-    fr8012haq_parse_returned_data(100);
+    fr8012haq_parse_returned_data(500);
     return is_HA_activate;
 }
 //获取请求码
@@ -801,8 +876,9 @@ int HA_lib_activate(char *key_code)
         {
             send_data_len = snprintf(send_data,sizeof(send_data),"{\"cmd\":\"3\",\"set_HA_key_code\":\"%s\"}\n",HA_key_code);
             fr8012haq_write_data(send_data,send_data_len);
-            if(fr8012haq_parse_returned_data(100)==3)
+            if(fr8012haq_parse_returned_data(500)==3)
             {
+                UOS_SleepMs(30);
                 if(get_is_HA_activate() == 1)//查询一次
                 {
                     ret = 1;
@@ -835,6 +911,7 @@ void HA_lib_init(void)
         //获取HA_req_code
         while(count--)
         {
+            UOS_SleepMs(30);
             fr8012haq_write_data("{\"cmd\":\"2\",\"get_data\":\"HA_req_code\"}\n",sizeof("{\"cmd\":\"2\",\"get_data\":\"HA_req_code\"}\n"));
             if(fr8012haq_parse_returned_data(500)==2)
                 break;
@@ -844,12 +921,14 @@ void HA_lib_init(void)
 static void fr8012haq_isr_callback(void)
 {
     //sys_pm_wakeup_no_lcd();
-    // gpio_enable_edge_detect(GPIO32, 0);
+    
     // fr8012haq_sleep_suspend();
-    FR8012HAQ_LOG("fr8012haq_isr_callback :!!!!!!!!!!!!\n");
+    gpio_enable_edge_detect(GPIO32, 0);//关闭中断
+    //FR8012HAQ_LOG("fr8012haq_isr_callback:111111111111111!!!!!!!\n");
     if(fr8012haq_hisr_ref_flag == 1)
         return;
     fr8012haq_hisr_ref_flag=1;
+    //FR8012HAQ_LOG("fr8012haq_isr_callback:222222222222222!!!!\n");
     OS_Activate_HISR(&fr8012haq_hisr_ref);
 }
 void hal_fr8012haq_int_init(void)
@@ -857,21 +936,20 @@ void hal_fr8012haq_int_init(void)
     // code implement by user
     // must register func hal_gh30x_int_handler as callback
     
-    Timer0_Switch(1);
     mfp_config(fr8012haq_mfp_cfgs);
-    // gpio_set_direction(GPIO32, GPIO_IN);
-    // gpio_register_int_handler(GPIO32, fr8012haq_isr_callback);
-    // gpio_enable_edge_detect(GPIO32, EDGE_FLAG_RISE);
+    gpio_set_direction(GPIO32, GPIO_IN);
+    gpio_register_int_handler(GPIO32, fr8012haq_isr_callback);
+    gpio_enable_edge_detect(GPIO32, 0);//先关闭中断,等待初始化完再开
     fr8012haq_en_gpio_init();
-    UOS_SleepMs(100);
-    FR8012HAQ_LOG("FR8012HAQ ID : 0x%02x\n",get_fr8012haq_id());
+    UOS_SleepMs(160);
+    //FR8012HAQ_LOG("FR8012HAQ ID : 0x%02x\n",get_fr8012haq_id());
 }
 void Fr8012haq_Init(void)
 {
     //char data[100]= {0};
     //int len = 0;
-    Timer0_Switch(1);
     FR8012HAQ_LOG("Fr8012haq_Init1!!!!\n\n");
+    fr8012haq_hisr_ref_flag = 1;//不响应中断
     static bool register_dev_flag = false;
     if(!register_dev_flag)
     {
@@ -885,23 +963,16 @@ void Fr8012haq_Init(void)
         FR8012HAQ_LOG("Fr8012haq_Init1.1!!!!\n\n");
     }
     uart4_debug();
-    FR8012HAQ_LOG("Fr8012haq_Init2!!!!\n\n");
+
     fr8012haq_create_hisr();
-    FR8012HAQ_LOG("Fr8012haq_Init3!!!!\n\n");
+
     hal_fr8012haq_int_init();
-    FR8012HAQ_LOG("Fr8012haq_Init4!!!!\n\n");
+
     FR8012HAQ_restart();
     //uart4_debug();
     UOS_SleepMs(5);
     HA_lib_init();
-    // while(1)
-    // {
-    //     UOS_SleepMs(1000);
-    //     FR8012HAQ_LOG("Fr8012haq_Init5!!!!\n\n");
-    // }
-       //fr8012haq_init(WEAR_MODE);//打开佩戴检测
-    // FR8012HAQ_run_mode = YYL_MODE;
-    // fr8012haq_start();
+    fr8012haq_hisr_ref_flag = 0;
 
 }
 
@@ -987,9 +1058,9 @@ void fr8012haq_measure_OTA_start(void)
 void FR8012HAQ_restart(void)
 {
        fr8012haq_en_gpio_enable(false);
-       fr8012haq_delay(50);
+       fr8012haq_delay(20);
        fr8012haq_en_gpio_enable(true);
-       fr8012haq_delay(100);
+       fr8012haq_delay(160);
     
     
     FR8012HAQ_LOG("FR8012HAQ_restart!!!\n");
@@ -1178,7 +1249,7 @@ void FR8012HAQ_result_set_wear_status(unsigned char wear_status)
     }
         
        //printf("[@CHENG_DEBUG][%s][%d]: wear=%d,s_wear=%d\n", __FUNCTION__, __LINE__, wear_status, s_FR8012HAQ_wear_status);
-   FR8012HAQ_LOG("s_FR8012HAQ_wear_status:%d !!!!!!!!!!!!!!!!!\n\n\n",s_FR8012HAQ_wear_status);
+   //FR8012HAQ_LOG("s_FR8012HAQ_wear_status:%d !!!!!!!!!!!!!!!!!\n\n\n",s_FR8012HAQ_wear_status);
 }
 unsigned char FR8012HAQ_result_get_wear_status(void)
 {
index be4c612..eafd65c 100644 (file)
@@ -9,6 +9,44 @@ PMIC_CONFIG_T g_tgtPmdCfg[] =
        /*************************************************************************************
                        Battery inital parameters
        **************************************************************************************/
+#if defined (For_Watch_Battery_Z5_HA_K18)
+    {
+        4330,
+        3100,
+        30,
+        3450,
+        3450,
+        PMIC_CHARGER_300MA,
+               500,
+               PRE_CHARGER_100MA,
+               TER_CHARGER_25MA,
+               VBAT_VOL_4V35,
+               TRICKIE_CHARGER_TOUT_15M,
+               PRE_CHARGER_TOUT_60M,
+               CCCV_TOUT_240M,
+               200,
+               200,
+               1,
+               1,
+        {  
+            4323,4280,4260,4249,4235,4219,4207,4193,4182,4172,
+            4158,4147,4134,4125,4111,4102,4092,4080,4070,4058,
+            4049,4037,4028,4019,4008,3999,3988,3979,3968,3960,
+            3952,3942,3934,3924,3917,3907,3900,3891,3884,3877,
+            3868,3863,3854,3849,3841,3836,3831,3824,3820,3814,
+            3809,3803,3799,3794,3790,3787,3782,3778,3774,3771,
+            3766,3764,3761,3757,3754,3751,3748,3745,3743,3741,
+            3738,3736,3734,3732,3728,3726,3724,3721,3718,3714,
+            3711,3706,3702,3698,3691,3685,3677,3670,3662,3657,
+            3653,3648,3643,3635,3625,3606,3581,3519,3448,3343,
+            3120
+        },
+        0,
+        {
+            0
+        },
+    },
+#endif
 #if defined (For_Watch_Battery) && defined (For_Watch_Battery_K_632832H)
        {
                4400,
index 7b1f5cd..72434e8 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef __CHARGER_CUS_H__
 #define __CHARGER_CUS_H__
-
+//#include "lv_conf_CUSTOM.h"
+#include "../../../config/watch/lv_conf_CUSTOM.h"
 //#define For_Battery_M20H 1
 //#define For_Watch_Battery  1
 //#define For_Watch_Battery_K_632832H 1
@@ -8,8 +9,11 @@
 #ifdef For_Watch_Battery_K_632832H
 #define Watch_K_632832H_battery_id_vol 200  //need change this value by battery id
 #endif
+#if DRV_PROJECT_Z5_HA_K18
+#define    For_Watch_Battery_Z5_HA_K18
+#else
 #define For_Watch_Battery_602730P600  1
 //#define For_Watch_Battery_652730P650  1
 //#define For_Watch_Battery_632730P620  1
-
+#endif
 #endif
index 35c283e..efb5fd4 100644 (file)
@@ -1226,8 +1226,12 @@ int uart4_recv_data(char *buf,int buf_max_len,unsigned int timeout)
                }else
                        count = 0;
                uart4_rx_buf_len_tmp = uart4_rx_buf_len;
-               if((timeout == 0 && count> 15) || (timeout == 0 && uart4_rx_buf_len == 0))//连续15ms没新数据,认为是一帧数据,退出
+               if((uart4_rx_buf_len != 0 && count> 10) || (timeout == 0))//连续15ms没新数据,认为是一帧数据,退出
+               {
+                       //cplog_printf("uart4_recv_data timeout:%d,count:%d,uart4_rx_buf_len:%d,\n", timeout,count,uart4_rx_buf_len);
                        break;
+               }
+                       
                // if(count > 15)//连续15ms没新数据,认为是一帧数据,退出
                //      break;
        }
index 2c2ec50..e9afaa5 100644 (file)
@@ -775,7 +775,10 @@ static int sdk_d2_enter()
 #if USE_MY_XMOTION
     xmotion_int_gpio_d2_ent_callback();
 #endif
+#if USE_FR8012HAQ
 
+    fr8012haq_int_gpio_d2_ent_callback();
+#endif
 #if USE_MULTI_KEY
     multi_key_d2_enter();
 #endif
@@ -792,7 +795,9 @@ static int sdk_d2_exit(BOOL ExitFromD2)
 #if USE_MY_XMOTION
     xmotion_int_gpio_d2_exit_callback();
 #endif
-
+#if USE_FR8012HAQ
+    fr8012haq_int_gpio_d2_exit_callback();
+#endif
 #if USE_MULTI_KEY
     multi_key_d2_exit();
 #endif