Browse Source

对发送失败进行改动,对唤醒时网络连接进行改动

CHENJIE-PC\QiXiang_CHENJIE 4 years ago
parent
commit
1781b44c9c
1 changed files with 57 additions and 28 deletions
  1. 57 28
      src/app.c

+ 57 - 28
src/app.c

@@ -193,8 +193,8 @@ static void Main_Task(void* arg)
     uint32_t sleep_time_flag;
     int32_t inParam = 0xAABBCCDD;
     uint32_t Chrgend_Work_time = 180000;
-    uint32_t Wakeup_Work_time = 6000;
-    uint32_t Sleep_Time = 600000;
+    uint32_t Wakeup_Work_time = 30000;
+    uint32_t Sleep_Time = 300000;
     //上述参数应写入文件里
     slpManWakeSrc_e Wakeup_source;
     PROC_MAIN_STATE_SWITCH(PROCESS_STATE_IDLE);
@@ -399,38 +399,46 @@ uint8_t* Uart_Receive_func(Uart_Receive_Type Uart_Receive_Msg,uint8_t* Uart_Rece
     Uart_Send_buffer[7] = CRC_chk_buffer>>8;
     uint32_t timeout = 0x00000000;
     USARTdrv->Send(Uart_Send_buffer,8);
-    #ifdef USING_PRINTF
-    printf("Uart_Send_buffer:  ");
-    for(int i=0;i<8;i++)
-    {
-        printf("%x ",Uart_Send_buffer[i]);
-    }
-     printf("\n");
-    #endif
+    // #ifdef USING_PRINTF
+    // printf("Uart_Send_buffer:  ");
+    // for(int i=0;i<8;i++)
+    // {
+    //     printf("%x ",Uart_Send_buffer[i]);
+    // }
+    //  printf("\n");
+    // #endif
     USARTdrv->Receive(Uart_Rece_buffer,Data_Len);
     while((isRecvTimeout == false) && (isRecvComplete == false))
     {
         timeout++;
-        if (timeout>=7000000)
+        osDelay(100);
+        if (timeout>=10)
         {
             timeout =0;
             isRecvTimeout = true;
             break;
         }
     }
+    // #ifdef USING_PRINTF
+    //     printf("Uart_Rece_buffer1: ");
+    //     for(int i=0;i<Data_Len;i++)
+    //     {
+    //     printf("%x ",*(Uart_Rece_buffer+i));
+    //     }
+    // #endif
     if (isRecvComplete == true)
     {
         isRecvComplete = false;
         CRC_Rece_buffer =*(Uart_Rece_buffer+Data_Len-1)<<8|*(Uart_Rece_buffer+Data_Len-2);
         CRC_chk_buffer = crc_chk(Uart_Rece_buffer,Data_Len-2);
-        #ifdef USING_PRINTF
-            printf("Uart_Rece_buffer: ");
-            for(int i=0;i<Data_Len;i++)
-            {
-            printf("%x ",*(Uart_Rece_buffer+i));
-            }
-            printf("\ncrcchk:%x,%x\n ",CRC_chk_buffer,CRC_Rece_buffer);
-        #endif
+        // #ifdef USING_PRINTF
+        //     printf("Uart_Rece_buffer2: ");
+        //     for(int i=0;i<Data_Len;i++)
+        //     {
+        //     printf("%x ",*(Uart_Rece_buffer+i));
+        //     }
+        //     printf("\ncrcchk:%x,%x\n ",CRC_chk_buffer,CRC_Rece_buffer);
+        // #endif
         if (CRC_Rece_buffer == CRC_chk_buffer)//满足校验
         {
             return Uart_Rece_buffer;//此处指针移位出现重启问题
@@ -442,7 +450,7 @@ uint8_t* Uart_Receive_func(Uart_Receive_Type Uart_Receive_Msg,uint8_t* Uart_Rece
             return Uart_Rece_buffer;
         }
     }
-    else 
+    else if(isRecvTimeout == true)
     {
         memset(Uart_Rece_buffer,0x00,Data_Len);
         isRecvTimeout = false;
@@ -1109,7 +1117,7 @@ static void Tcp_Task(void* arg)
         {
             case PROCESS_TCP_STATE_IDLE:
             {
-                osDelay(1000);
+                osDelay(100);
                 break;
             }
             case PROCESS_TCP_STATE_LINK:
@@ -1121,7 +1129,7 @@ static void Tcp_Task(void* arg)
                     #endif
                     PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_IDLE);
                 }
-                else 
+                if(true) 
                 {
                     if(TcpconnectID<0)
                     {
@@ -1141,7 +1149,7 @@ static void Tcp_Task(void* arg)
                             #ifdef USING_PRINTF
                                 printf("Connect failed!%d\n",TcpconnectID);
                             #endif
-                            close(sockfd);
+                            closesocket(sockfd);
                             PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_IDLE);
                             break;
                         }
@@ -1156,6 +1164,9 @@ static void Tcp_Task(void* arg)
                         PROC_TCP_STATE_SWITCH(PROCESS_TCP_STATE_WORK);
                     }
                 }
+                #ifdef USING_PRINTF
+                        printf("tcp_statuts,%d,%d!\n",tcp_ready,TcpconnectID);
+                #endif
                 break;
             }
             case PROCESS_TCP_STATE_WORK:
@@ -1213,7 +1224,16 @@ static void Tcp_Task(void* arg)
                                 printf("\n");
                             #endif
                             free(TcpSendBuffer);
-                            Tcp_Index=2;
+                            if (TcpsendID<0)
+                            {
+                                closesocket(sockfd);
+                                TcpconnectID = -1;
+                                Tcp_Index=-1;
+                            }
+                            else
+                            {
+                                Tcp_Index=2;
+                            }
                             break;
                         }
                         case 2:
@@ -1243,7 +1263,16 @@ static void Tcp_Task(void* arg)
                             #endif
                             TcpsendID = send(sockfd, TcpSendBuffer, NB_send_len, 0 );
                             free(TcpSendBuffer);
-                            Tcp_Index=3;
+                            if (TcpsendID<0)
+                            {
+                                closesocket(sockfd);
+                                TcpconnectID = -1;
+                                Tcp_Index=-1;
+                            }
+                            else
+                            {
+                                Tcp_Index=3;
+                            }
                             break;
                         }
                         default:
@@ -1348,9 +1377,9 @@ void appInit(void *arg)
 {
     Main_Task_Init();
     Uart_Task_Init();
-    //Can_Task_Init();
-    //GpsTaskInit();
-    //Tcp_Task_Init();
+    Can_Task_Init();
+    GpsTaskInit();
+    Tcp_Task_Init();
 }
 //主函数入口
 void main_entry(void) {