Ver Fonte

MC_VS7500-TC033001-MS2002-V2.1.6.1.1_20211103
1、按照客户需求增加指令,通过OBC清除ODO里程,仅在50km内可执行5次;
2、删除第一次清除TRIP时,清除ODO里程的功能。

dail há 3 anos atrás
pai
commit
e05ad622d7

Diff do ficheiro suprimidas por serem muito extensas
+ 2563 - 2563
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/MC_VS75XX-TC033001-MS2002-V2.1.6.1.1_20211103.bin


+ 39 - 20
User/Src/can_process.c

@@ -210,16 +210,6 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 					{
 					  MC_RideLog.TRIP_Km = 0;
 						MC_RideLog.TRIP_Time = 0;
-						if(strncmp("CLEAR_ODO", (char*)UserString1, 9) != 0)//利用UserString1作为是否允许清除ODO的标志
-						{
-						  if(MC_RideLog.ODO_Km < 1000) //前100km允许清除
-							{
-						  	MC_RideLog.ODO_Km = 0;
-					  		MC_RideLog.ODO_Time = 0;
-							}
-							strncpy((char*)UserString1, (char*)"CLEAR_ODO", 9);
-							IsFlashSaveDataUpdate = TRUE;
-						}
 						SaveParamToEEprom_24C02(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_RIDE_LOG, sizeof(MC_RideLog_Struct_t), (uint8_t*)&MC_RideLog.ODO_Km);
 						SendData(ID_MC_TO_PBU, MODE_REPORT, 0x5303, (uint8_t*)"ACK");
 						MC_RunInfo.Ride_Km = 0;
@@ -272,6 +262,45 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 					SendData(ID_MC_BC, MODE_REPORT, 0x1720, (uint8_t*)Firmware_Special);
 					break;
 				}
+				case 0x3A05://OBC清除ODO信息(定制功能),50km内允许清除5次
+				{
+				  if(strncmp("CLEAR", (char*)Data, DataLength) == 0)
+				  {
+            if(MC_RideLog.ODO_Km < 500) //前50km内允许清除
+						{
+						  //利用UserString1作为是否允许清除ODO的标志,前9个字符为标志,第11个字符为清除的次数
+							if(strncmp("CLEAR_ODO", (char*)UserString1, 9) != 0)//未清除过ODO
+							{
+								MC_RideLog.TRIP_Km = 0;
+						    MC_RideLog.TRIP_Time = 0;
+								MC_RideLog.ODO_Km = 0;
+					  		MC_RideLog.ODO_Time = 0;
+								strncpy((char*)UserString1, (char*)"CLEAR_ODO_1", 11);
+							  IsFlashSaveDataUpdate = TRUE;
+								SaveParamToEEprom_24C02(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_RIDE_LOG, sizeof(MC_RideLog_Struct_t), (uint8_t*)&MC_RideLog.ODO_Km);
+						    MC_RunInfo.Ride_Km = 0;
+						    MC_RunInfo.Ride_Time = 0;
+							}
+							else//清除过,判断次数
+							{
+							  if(UserString1[10] < '5')//小于5执行
+								{
+								  MC_RideLog.TRIP_Km = 0;
+									MC_RideLog.TRIP_Time = 0;
+									MC_RideLog.ODO_Km = 0;
+									MC_RideLog.ODO_Time = 0;
+									UserString1[10] += 1;
+									IsFlashSaveDataUpdate = TRUE;
+									SaveParamToEEprom_24C02(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_RIDE_LOG, sizeof(MC_RideLog_Struct_t), (uint8_t*)&MC_RideLog.ODO_Km);
+									MC_RunInfo.Ride_Km = 0;
+									MC_RunInfo.Ride_Time = 0;
+								}
+							}
+						}
+						SendData(ID_MC_TO_PBU, MODE_REPORT, 0x5303, (uint8_t*)"ACK");
+				  }
+					break;
+				}
 				
 				default:break;
 			}
@@ -346,16 +375,6 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 					{
 					  MC_RideLog.TRIP_Km = 0;
 						MC_RideLog.TRIP_Time = 0;
-						if(strncmp("CLEAR_ODO", (char*)UserString1, 9) != 0)//利用UserString1作为是否允许清除ODO的标志
-						{
-						  if(MC_RideLog.ODO_Km < 1000) //前100km允许清除
-							{
-						  	MC_RideLog.ODO_Km = 0;
-					  		MC_RideLog.ODO_Time = 0;
-							}
-							strncpy((char*)UserString1, (char*)"CLEAR_ODO", 9);
-							IsFlashSaveDataUpdate = TRUE;
-						}
 						SaveParamToEEprom_24C02(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_RIDE_LOG, sizeof(MC_RideLog_Struct_t), (uint8_t*)&MC_RideLog.ODO_Km);
 						SendData(ID_MC_TO_HMI, MODE_REPORT, 0x7403, (uint8_t*)"ACK");
 						MC_RunInfo.Ride_Km = 0;

+ 2 - 2
User/Src/var.c

@@ -515,8 +515,8 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
   strncpy(MC_VerInfo.HW_Version, (char*)"QD007H.         ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20210913.", 16);
-	strncpy(Firmware_Special, (char*)"TC033001-MS2002-V1r0.           ", 32);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20211103.", 16);
+	strncpy(Firmware_Special, (char*)"TC033001-MS2002-V1r1.           ", 32);
 		
 	//电机型号
 	strncpy(MC_VerInfo.Mode, (char*)"VS7500.         ", 16);

+ 3 - 1
修改说明.txt

@@ -434,5 +434,7 @@ MC_VS7500-TC033001-MS2002-V2.1.6.1.0_20210913_1
 1、修改I2C的驱动,解决频繁封波导致电机异常;
 2、增加清除历史记录的指令。
 
-
+MC_VS7500-TC033001-MS2002-V2.1.6.1.1_20211103
+1、按照客户需求增加指令,通过OBC清除ODO里程,仅在50km内可执行5次;
+2、删除第一次清除TRIP时,清除ODO里程的功能。
 

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff