浏览代码

ota测试

CHENJIE-PC\QiXiang_CHENJIE 4 年之前
父节点
当前提交
6ddf359d26
共有 1 个文件被更改,包括 25 次插入13 次删除
  1. 25 13
      src/app.c

+ 25 - 13
src/app.c

@@ -438,28 +438,40 @@ void Tcp_Recv_fota(uint8_t* P)
     #ifdef USING_PRINTF
         printf("fota data handle\n");
     #endif
+    if(*(P+3)==0x01)
+    {
+        Fota_S.Fota_All_Data_Len = *(P+5)<<24|*(P+6)<<16|*(P+7)<<8|*(P+8);
+    }
+    else if(*(P+3)==0x02)
+    {
+        Fota_S.Fota_Current_Addres = *(P+9)<<24|*(P+10)<<16|*(P+11)<<8|*(P+12);
+        Fota_S.Fota_Recv_Data_Len = *(P+13);
+        memcpy(Fota_S.Fota_Recv_Data,*(P+14),*(P+13));
+    }
 }
 void Tcp_Recv_info(uint8_t* P)
 {
-    switch(*(P+1))
+    switch(*(P))
     {
-        case 0x00://非应答
+        case 0x80://查询
             Tcp_serviece=01;
+            if(*(P+2)==0x08)
+            {
+                tcpipConnectionSend(socContext.id, {08,01,08,00}, 5, 0, 0, 0);
+            }
             break;
-        case 0xfe://应答
+        case 0x82://控制
             Tcp_serviece=01;
-            switch(*(P))
+            if(*(P+2)==0x01)
             {
-                case 0x80:
-                    break;
-                case 0x82:
-                    Fota_S.Fota_update_flag=true;
-                    Tcp_Recv_fota(P);
-                    break;
-                default:
-                    Fota_S.Fota_update_flag = false;
+                Fota_S.Fota_update_flag=true;
+                Tcp_Recv_fota(P);    
             }
             break;
+        default:
+            P = NULL;
+            Tcp_serviece=00;
+            break;
     }
 }
 uint8_t Fota_crc_chk(uint8_t* data,uint8_t length)
@@ -560,7 +572,7 @@ static void Tcp_Task(void* arg)
                 case QMSG_ID_SOCK_SENDPKG:
                     if (socContext.id >= 0 && socContext.status == APP_SOCKET_CONNECTION_CONNECTED)
                     {
-                        if(Tcp_Servies)
+                        if(Tcp_serviece==0)
                         {
                             Tcp_Send_info();
                         }