Эх сурвалжийг харах

[Improve][Modularization][Module_Ocppbackend]

2020.12.22 / Folus Wen

Actions:
1. Moudle_Upgrade.c UART start request packet add retry logic.

Files:
1. As follow commit history

Image version: D0.00.XX.XXXX.XX
Image checksum: XXXXXXXX

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen 4 жил өмнө
parent
commit
a9495fbb08

+ 57 - 39
EVSE/Modularization/Module_Upgrade.c

@@ -712,52 +712,70 @@ int Upgrade_UART(int uartfdOrd,unsigned int Type,unsigned char TargetAddr,char *
                 DEBUG_INFO("CRC32 by calculation: 0x%08X\n",crc32(ptr,ImageLen));
                 if(crc32(ptr,ImageLen) == ImageCRC)
                 {
-                    if(uart_update_start(uartfd, TargetAddr, crc32(ptr+48,DataLength))==PASS)
+                    if(YES)
                     {
                         int CNT_Fail = 0;
                         int CNT_Trans = 0;
+
                         do
                         {
-                            if(uart_update_transfer(uartfd, TargetAddr, CNT_Trans*1024, ptr+48+(CNT_Trans*1024), 1024)==PASS)
-                            {
-                                CNT_Fail = 0;
-                                CNT_Trans++;
-                                DEBUG_INFO("Upgrade progress:%.2f%%\n", ((float)(CNT_Trans*1024))/(DataLength)*100);
-                            }
-                            else
-                            {
-                                DEBUG_WARN("Data transfer fail, retry %d \n", ++CNT_Fail);
-                                sleep(1);
-                            }
-                        }while(DataLength-(CNT_Trans*1024)>0 && CNT_Fail<10);
+                        	if(uart_update_start(uartfd, TargetAddr, crc32(ptr+48,DataLength))==PASS)
+                        		break;
+							else
+								DEBUG_WARN("Upgrade start fail, retry %d \n", ++CNT_Fail);
+                        }while(CNT_Fail<10);
 
                         if(CNT_Fail>=10)
-                        {
-                            uart_update_abord(uartfd, TargetAddr);
-                            DEBUG_ERROR("UART upgrade transfer retry > limits, aboard upgrade.\n");
-                        }
-                        else
-                        {
-                        	do
-                        	{
-                        		if(uart_update_finish(uartfd, TargetAddr)==PASS)
-                        			break;
-                        		else
-                        			DEBUG_WARN("Upgrade finish fail, retry %d \n", ++CNT_Fail);
-                        	}while(CNT_Fail<10);
-
-                        	if(CNT_Fail>=10)
-                        	{
-                        		uart_update_abord(uartfd, TargetAddr);
-                        		DEBUG_ERROR("UART upgrade finish retry > limits, aboard upgrade.\n");
-                        	}
-                        	else
-                        	{
-                        		result = PASS;
-                        		printf("UART upgrade success.\n");
-                        	}
-
-                        }
+						{
+							uart_update_abord(uartfd, TargetAddr);
+							DEBUG_ERROR("UART upgrade start retry > limits, aboard upgrade.\n");
+						}
+						else
+						{
+							CNT_Fail = 0;
+							do
+							{
+								if(uart_update_transfer(uartfd, TargetAddr, CNT_Trans*1024, ptr+48+(CNT_Trans*1024), 1024)==PASS)
+								{
+									CNT_Fail = 0;
+									CNT_Trans++;
+									DEBUG_INFO("Upgrade progress:%.2f%%\n", ((float)(CNT_Trans*1024))/(DataLength)*100);
+								}
+								else
+								{
+									DEBUG_WARN("Data transfer fail, retry %d \n", ++CNT_Fail);
+									sleep(1);
+								}
+							}while(DataLength-(CNT_Trans*1024)>0 && CNT_Fail<10);
+
+							if(CNT_Fail>=10)
+							{
+								uart_update_abord(uartfd, TargetAddr);
+								DEBUG_ERROR("UART upgrade transfer retry > limits, aboard upgrade.\n");
+							}
+							else
+							{
+								CNT_Fail = 0;
+								do
+								{
+									if(uart_update_finish(uartfd, TargetAddr)==PASS)
+										break;
+									else
+										DEBUG_WARN("Upgrade finish fail, retry %d \n", ++CNT_Fail);
+								}while(CNT_Fail<10);
+
+								if(CNT_Fail>=10)
+								{
+									uart_update_abord(uartfd, TargetAddr);
+									DEBUG_ERROR("UART upgrade finish retry > limits, aboard upgrade.\n");
+								}
+								else
+								{
+									result = PASS;
+									printf("UART upgrade success.\n");
+								}
+							}
+						}
                     }
                     else
                         DEBUG_ERROR("UART upgrade request failed.\n");