浏览代码

版本号1.2.1.28,6060软件,Fota更新测试,新增:无效Uart数据滤除

CHENJIE-PC\QiXiang_CHENJIE 4 年之前
父节点
当前提交
f619a0183e
共有 5 个文件被更改,包括 15 次插入4 次删除
  1. 1 1
      inc/UartTask.h
  2. 1 1
      inc/app.h
  3. 1 1
      src/Fota.c
  4. 4 1
      src/TcpTask.c
  5. 8 0
      src/UartTask.c

+ 1 - 1
inc/UartTask.h

@@ -10,7 +10,7 @@
 extern UINT8 BattChrgEndFlag;
 typedef struct _UartRedMsg
 {
-	bool UartFlag;
+	volatile bool UartFlag;
     UINT8 Header[3];
     UINT8 data[120];
     UINT16 len;

+ 1 - 1
inc/app.h

@@ -34,7 +34,7 @@ extern "C" {
 #define HWVERSION		    0x0102    //硬件主版本,现为V1.2板
 #define	BLSWVERSION		0x01020000    //BootLoader版本号V1.2.0.0
 #define	DRVSWVERSION		0x01040000     //驱动层版本号V1.4.0.0
-#define	APPSWVERSION		0x0102011B     
+#define	APPSWVERSION		0x0102011C     
 
 //--------------------------------------------------------------------------------
 

+ 1 - 1
src/Fota.c

@@ -185,7 +185,7 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                     Data_Read_Buffer = malloc(Fota_S.Fota_Recv_Data_Len);
                     BSP_QSPI_Read_Safe(Data_Read_Buffer,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
                     Data_Read_Crc = Fota_crc_chk(Data_Read_Buffer,Fota_S.Fota_Recv_Data_Len);
-                    #ifdef USING_PRINTF
+                    #ifdef USING_PRINTF1
                         printf("\n\n\n");
                         UINT8 temp[1];
                         for(int i=0;i<Fota_S.Fota_Recv_Data_Len;i++)

+ 4 - 1
src/TcpTask.c

@@ -359,7 +359,10 @@ static void TcpDataInfoAssembleSend()
         BattToTcpInfo.CRC = bcc_chk((UINT8 *)&BattToTcpInfo, sizeof(BattMsgtoTcpType)-1 );
         osMutexRelease(UartMutex);
         UINT8 len;
-        len = tcpipConnectionSend(socContext.id, (UINT8 *)&BattToTcpInfo, sizeof(BattToTcpInfo), 0, 0, 0);
+        if(UartReadMsg.UartFlag)
+        {
+            len = tcpipConnectionSend(socContext.id, (UINT8 *)&BattToTcpInfo, sizeof(BattToTcpInfo), 0, 0, 0);
+        }
         #ifdef USING_PRINTF1
             printf("Len = %d\n",len);
             for(int i=0;i<sizeof(BattToTcpInfo);i++)

+ 8 - 0
src/UartTask.c

@@ -173,6 +173,14 @@ static void UartTask(void* arg)
                 Uart_Uds_LEN = Reg_Num*2;
                 memset(UartReadMsg.Header,0x00,Uart_Uds_LEN);
                 Uart_Recv_LEN = Uart_Transmit_func((UINT8 *)&Uart_Read_Msg,UartReadMsg.Header);
+				if(Uart_Recv_LEN>0)
+				{
+					UartReadMsg.UartFlag = TRUE;
+				}
+				else
+				{
+					UartReadMsg.UartFlag = FALSE;
+				}
                 UartReadMsg.len = Uart_Recv_LEN;
                 PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_IDLE);
                 if((UartReadMsg.data[(0x03+BATT_CELL_VOL_NUM)*2+1]&0x03)==0x02)