Переглянути джерело

金茂科易,集成郑超更改,保留了打印信息

CHENJIE-PC\QiXiang_CHENJIE 3 роки тому
батько
коміт
a4b2ecc435
7 змінених файлів з 654 додано та 617 видалено
  1. 1 0
      inc/AppFunc.h
  2. 5 2
      inc/AppSignal.h
  3. 327 313
      src/AppFunc.c
  4. 135 134
      src/AppSignal.c
  5. 5 4
      src/AppTaskCan.c
  6. 25 8
      src/AppTaskMain.c
  7. 156 156
      src/hal_module_adapter.c

+ 1 - 0
inc/AppFunc.h

@@ -44,6 +44,7 @@ void DecodeFunction(UINT32 ID,UINT8* rawData);
 void canRxDiagnose(void);
 UINT8 canCOMInTableIndexFind(UINT32 canID);
 void canRxMsgSetInvalidValue(UINT32 ID);
+BOOL snCodeCompare(UINT8* savedSN, UINT8* receivedSN);
 void canTxTest(void);
 
 

+ 5 - 2
inc/AppSignal.h

@@ -76,6 +76,7 @@ extern	UINT8	numOfChrgableSubsys;
 extern	UINT8	lengthOfChrgableSysCode;
 extern	UINT8	chrgableSysCode;
 extern	UINT8	chrgableSubsysCode;
+extern	UINT8	numOfCellTemp;
 extern	UINT8	numOfBattErr;
 extern	UINT8	battCellTemp[CELL_TEMP_NUM];
 extern	UINT8	mainPosRlyStatus;
@@ -147,7 +148,8 @@ extern	UINT8	mainElectricityErrorClass;
 extern	UINT8	pumpWorkStatus;
 extern	UINT8	elecAirCompressorErrorStatus;
 extern	UINT8	elecAirCompressorWrokStatus;
-extern  UINT8   numOfCellTemp;
+
+
 
 //declear the UINT16 vars
 extern	UINT16	maxChrgCurrAllowed;
@@ -159,9 +161,10 @@ extern	UINT16	maxCellVol;
 extern	UINT16	minCellVol;
 extern	UINT16	maxVolCellCode;
 extern	UINT16	minVoCelllCode;
+extern	UINT16	numOfCells;
 extern	UINT16	battCellU[CELL_NUM];
 extern	UINT16	vcuDCVol;
-extern  UINT16  numOfCells;
+
 
 
 //declear the UINT32 vars

Різницю між файлами не показано, бо вона завелика
+ 327 - 313
src/AppFunc.c


+ 135 - 134
src/AppSignal.c

@@ -2,7 +2,7 @@
  *
  * Copy right:   2021-, Copyrigths of RLWL Ltd.
  * File name:    AppSignal.c
- * Description:  Global variable definition c file,姝ゆ枃浠跺瓨鏀続pp浣跨敤鍒扮殑鍏ㄥ眬鍙橀噺
+ * Description:  Global variable definition c file,此文件存放App使用到的全局变量
  * History:      Rev3.0   2021-07-06
  *
  ****************************************************************************/
@@ -17,26 +17,26 @@ BOOL canVINMsgRxCmpltFlag = false;
 
 
 
-UINT8   TcpErrorcount=0;            //Error count TCP鑱旂綉閿欒�璁℃暟
-UINT8   TCPWorkState = 0;           //Tcp宸ヤ綔鐘舵€侊紝0-琛ㄧず鍙戦€侊紝1-琛ㄧず搴旂瓟锛�2-琛ㄧず鐩戝惉浠ュ強蹇冭烦鍙戦€�
-UINT8 	TcpSendLen = 0;             //Tcp send status Tcp鍙戦€佺姸鎬�
-UINT8 	PosFlag = 0;                //瀹氫綅淇℃伅鏄�惁鏈夋晥鏍囧織浣�
-UINT8   GpsFlag = 0;                  //GPS 鏁版嵁鏈夋晥鏍囧織浣�
-UINT8   PadInterrupt = 0x00;           //姣忎釜bit浠h〃涓€涓�腑鏂�爣蹇�
+UINT8   TcpErrorcount=0;            //Error count TCP联网错误计数
+UINT8   TCPWorkState = 0;           //Tcp工作状态,0-表示发送,1-表示应答,2-表示监听以及心跳发送
+UINT8 	TcpSendLen = 0;             //Tcp send status Tcp发送状态
+UINT8 	PosFlag = 0;                //定位信息是否有效标志位
+UINT8   GpsFlag = 0;                  //GPS 数据有效标志位
+UINT8   PadInterrupt = 0x00;           //每个bit代表一个中断标志
 UINT8 	Lockstatus = 0x00;
 
 /**declear the uint16 vars**/
-UINT16	nbHwVersion = 0xFFFF;   //鏁版嵁妯″潡纭�欢鐘舵€�
-UINT16  ErrorNum[5]={0};        //Error array锛屾晠闅滄暟缁�
+UINT16	nbHwVersion = 0xFFFF;   //数据模块硬件状态
+UINT16  ErrorNum[5]={0};        //Error array,故障数组
 
 /**declear the uint32 vars**/
-UINT32	nbSwVersion = 0xFFFFFFFF;       // 鏁版嵁妯″潡杞�欢鐘舵€�
-volatile UINT32  TimeCounter = 0x00;             //涓讳换鍔″畾鏃跺櫒璁℃暟
+UINT32	nbSwVersion = 0xFFFFFFFF;       // 数据模块软件状态
+volatile UINT32  TimeCounter = 0x00;             //主任务定时器计数
 
 /**declear the Handle vars**/
-osMutexId_t Error_Mutex = NULL;         //鏁呴殰浜掗攣鍙ユ焺
-QueueHandle_t GpsRecvHandle = NULL;     //瀹氫綅淇℃伅闃熷垪鍙ユ焺
-QueueHandle_t UartWriteCmdHandle = NULL;//Uart鍐欏懡浠ら槦鍒楀彞鏌�
+osMutexId_t Error_Mutex = NULL;         //故障互锁句柄
+QueueHandle_t GpsRecvHandle = NULL;     //定位信息队列句柄
+QueueHandle_t UartWriteCmdHandle = NULL;//Uart写命令队列句柄
 
 /**declear other vars**/   
 
@@ -44,9 +44,9 @@ AppConfigDataType           AppNVMData;
 
 AppDataBody                 AppDataInfo;
 
-AppSocketConnectionContext  socContext = {-1,0};  //缃戠粶杩炴帴鐘舵€�
+AppSocketConnectionContext  socContext = {-1,0};  //网络连接状态
 
-process_app 		        gProcess_app; //鍏ㄥ眬宸ヤ綔鐘舵€�
+process_app 		        gProcess_app; //全局工作状态
 
 
 UINT32	COMInTable[133]	=	
@@ -174,8 +174,8 @@ UINT32	COMInTable[133]	=
 0x18FF69F3,
 0x18FF10D0,
 0x18FF20EF,
-0x18FF13A3,
-0x18FF1154,
+0x18FF14A3,
+0x18FF11F4,
 0x18FF09D0,
 0x18FEF1D0,
 0x18FF55D0,
@@ -187,6 +187,7 @@ UINT32	COMInTable[133]	=
 };
 
 
+
 UINT8 canRxShortError[133] = {0};
 UINT8 canRxLongError[133] = {0};
 UINT8 canRxErrorCounter[133] = {0};
@@ -199,129 +200,129 @@ UINT8 canRxFlag[133] = {0};
 
 //declear the UINT8 vars
 UINT8   csq = 0x00;
-UINT8	bmsStatus= 0x00;
-UINT8	bmsErrClass= 0x00;
-UINT8	chrgConctStatus= 0x00;
-UINT8	highVolPwrDwnReq= 0x00;
-UINT8	chrgStatus= 0x00;
-UINT8	bmsErrNum= 0x00;
-UINT8	bmsLife= 0x00;
-UINT8	battSoc= 0x00;
-UINT8	maxCellTemp= 0x00;
-UINT8	minCellTemp= 0x00;
-UINT8	avgCellTemp= 0x00;
-UINT8	maxVolSubsysCode= 0x00;
-UINT8	minVolSubsysCode= 0x00;
-UINT8	maxTempSubsysCode= 0x00;
-UINT8	maxTempCellCode= 0x00;
-UINT8	minTempSubsysCode= 0x00;
-UINT8	minTempCellCode= 0x00;
-UINT8	numOfChrgableSubsys= 0x00;
-UINT8	lengthOfChrgableSysCode= 0x00;
-UINT8	chrgableSysCode= 0x00;
-UINT8	chrgableSubsysCode= 0x00;
-UINT8	numOfBattErr= 0x00;
-UINT8	battCellTemp[64] = {0x00};
-UINT8	mainPosRlyStatus= 0x00;
-UINT8	preRlyStatus= 0x00;
-UINT8	mainNegRlyStatus= 0x00;
-UINT8	thrRlyStatus= 0x00;
-UINT8	ptc1RlyStatus= 0x00;
-UINT8	airCondRlyStatus= 0x00;
-UINT8	dcChrg1PosRlyStatus= 0x00;
-UINT8	dcChrg1NegRlyStatus= 0x00;
-UINT8	dcChrg2PosRlyStatus= 0x00;
-UINT8	dcChrg2NegRlyStatus= 0x00;
-UINT8	heatPosRlyStatus= 0x00;
-UINT8	heatNegRlyStatus= 0x00;
-UINT8	coolRlyStatus= 0x00;
-UINT8	ptc2RlyStatus= 0x00;
-UINT8	mainPosRlyErrStatus= 0x00;
-UINT8	preRlyErrStatus= 0x00;
-UINT8	mainNegRlyErrStatus= 0x00;
-UINT8	thrRlyErrStatus= 0x00;
-UINT8	ptc1RlyErrStatus= 0x00;
-UINT8	airCondRlyErrStatus= 0x00;
-UINT8	dcChrg1PosRlyErrStatus= 0x00;
-UINT8	dcChrg1NegRlyErrStatus= 0x00;
-UINT8	dcChrg2PosRlyErrStatus= 0x00;
-UINT8	dcChrg2NegRlyErrStatus= 0x00;
-UINT8	heatPosRlyErrStatus= 0x00;
-UINT8	heatNegRlyErrStatus= 0x00;
-UINT8	coolRlyErrStatus= 0x00;
-UINT8	ptc2RlyErrStatus= 0x00;
-UINT8	battSOH= 0x00;
-UINT8	SN[24] = {0x00};
-UINT8	bmsHVOn= 0x00;
-UINT8	acRelayStatus= 0x00;
-UINT8	ptcRelayStatus= 0x00;
-UINT8	mainRelayStatus= 0x00;
-UINT8	preRelayStatus= 0x00;
-UINT8	ptc2RelayStatus= 0x00;
-UINT8	acRelayErrorStatus= 0x00;
-UINT8	ptcRelayErrorStatus= 0x00;
-UINT8	mainRelayErrorStatus= 0x00;
-UINT8	preRelayErrorStatus= 0x00;
-UINT8	hvLockErrorStatus= 0x00;
-UINT8	ptc2RelayErrorStatus= 0x00;
-UINT8	ebcStatus= 0x00;
-UINT8	ebcAskHVOn= 0x00;
-UINT8	ebcAskHVOff= 0x00;
-UINT8	retainLockSignal= 0x00;
-UINT8	dischargeLockSignal= 0x00;
-UINT8	chargeLockSignal= 0x00;
-UINT8	errorClass= 0x00;
-UINT8	errorCode1= 0x00;
-UINT8	errorCode2= 0x00;
-UINT8	chargeFlag= 0x00;
-UINT8	exchangeBattAirPressure= 0x00;
-UINT8	lifeSignal= 0x00;
-UINT8	vehicleStatus= 0x00;
-UINT8	currentGearPosition= 0x00;
-UINT8	parkingBreakStatus= 0x00;
-UINT8	breakingStatus= 0x00;
-UINT8	VIN[17] = {0x00};
-UINT8	frontBreakingPressure= 0x00;
-UINT8	backBreakingPressure= 0x00;
-UINT8	frontBreakingPressureErrorStatus= 0x00;
-UINT8	backBreakingPressureErrorStatus= 0x00;
-UINT8	dcdcErrorClass= 0x00;
-UINT8	dcdcWorkStatus= 0x00;
-UINT8	mainElectricityErrorClass= 0x00;
-UINT8	pumpWorkStatus= 0x00;
-UINT8	elecAirCompressorErrorStatus= 0x00;
-UINT8	elecAirCompressorWrokStatus= 0x00;
+UINT8	bmsStatus= 0xFF;
+UINT8	bmsErrClass= 0xFF;
+UINT8	chrgConctStatus= 0xFF;
+UINT8	highVolPwrDwnReq= 0xFF;
+UINT8	chrgStatus= 0xFF;
+UINT8	bmsErrNum= 0xFF;
+UINT8	bmsLife= 0xFF;
+UINT8	battSoc= 0xFF;
+UINT8	maxCellTemp= 0xFF;
+UINT8	minCellTemp= 0xFF;
+UINT8	avgCellTemp= 0xFF;
+UINT8	maxVolSubsysCode= 0xFF;
+UINT8	minVolSubsysCode= 0xFF;
+UINT8	maxTempSubsysCode= 0xFF;
+UINT8	maxTempCellCode= 0xFF;
+UINT8	minTempSubsysCode= 0xFF;
+UINT8	minTempCellCode= 0xFF;
+UINT8	numOfChrgableSubsys= 0xFF;
+UINT8	lengthOfChrgableSysCode= 0xFF;
+UINT8	chrgableSysCode= 0xFF;
+UINT8	chrgableSubsysCode= 0xFF;
+UINT8	numOfBattErr= 0xFF;
+UINT8	battCellTemp[CELL_TEMP_NUM] = {0xFF};
+UINT8	mainPosRlyStatus= 0xFF;
+UINT8	preRlyStatus= 0xFF;
+UINT8	mainNegRlyStatus= 0xFF;
+UINT8	thrRlyStatus= 0xFF;
+UINT8	ptc1RlyStatus= 0xFF;
+UINT8	airCondRlyStatus= 0xFF;
+UINT8	dcChrg1PosRlyStatus= 0xFF;
+UINT8	dcChrg1NegRlyStatus= 0xFF;
+UINT8	dcChrg2PosRlyStatus= 0xFF;
+UINT8	dcChrg2NegRlyStatus= 0xFF;
+UINT8	heatPosRlyStatus= 0xFF;
+UINT8	heatNegRlyStatus= 0xFF;
+UINT8	coolRlyStatus= 0xFF;
+UINT8	ptc2RlyStatus= 0xFF;
+UINT8	mainPosRlyErrStatus= 0xFF;
+UINT8	preRlyErrStatus= 0xFF;
+UINT8	mainNegRlyErrStatus= 0xFF;
+UINT8	thrRlyErrStatus= 0xFF;
+UINT8	ptc1RlyErrStatus= 0xFF;
+UINT8	airCondRlyErrStatus= 0xFF;
+UINT8	dcChrg1PosRlyErrStatus= 0xFF;
+UINT8	dcChrg1NegRlyErrStatus= 0xFF;
+UINT8	dcChrg2PosRlyErrStatus= 0xFF;
+UINT8	dcChrg2NegRlyErrStatus= 0xFF;
+UINT8	heatPosRlyErrStatus= 0xFF;
+UINT8	heatNegRlyErrStatus= 0xFF;
+UINT8	coolRlyErrStatus= 0xFF;
+UINT8	ptc2RlyErrStatus= 0xFF;
+UINT8	battSOH= 0xFF;
+UINT8	SN[24] = {0xFF};
+UINT8	bmsHVOn= 0xFF;
+UINT8	acRelayStatus= 0xFF;
+UINT8	ptcRelayStatus= 0xFF;
+UINT8	mainRelayStatus= 0xFF;
+UINT8	preRelayStatus= 0xFF;
+UINT8	ptc2RelayStatus= 0xFF;
+UINT8	acRelayErrorStatus= 0xFF;
+UINT8	ptcRelayErrorStatus= 0xFF;
+UINT8	mainRelayErrorStatus= 0xFF;
+UINT8	preRelayErrorStatus= 0xFF;
+UINT8	hvLockErrorStatus= 0xFF;
+UINT8	ptc2RelayErrorStatus= 0xFF;
+UINT8	ebcStatus= 0xFF;
+UINT8	ebcAskHVOn= 0xFF;
+UINT8	ebcAskHVOff= 0xFF;
+UINT8	retainLockSignal= 0xFF;
+UINT8	dischargeLockSignal= 0xFF;
+UINT8	chargeLockSignal= 0xFF;
+UINT8	errorClass= 0xFF;
+UINT8	errorCode1= 0xFF;
+UINT8	errorCode2= 0xFF;
+UINT8	chargeFlag= 0xFF;
+UINT8	exchangeBattAirPressure= 0xFF;
+UINT8	lifeSignal= 0xFF;
+UINT8	vehicleStatus= 0xFF;
+UINT8	currentGearPosition= 0xFF;
+UINT8	parkingBreakStatus= 0xFF;
+UINT8	breakingStatus= 0xFF;
+UINT8	VIN[17] = {0xFF};
+UINT8	frontBreakingPressure= 0xFF;
+UINT8	backBreakingPressure= 0xFF;
+UINT8	frontBreakingPressureErrorStatus= 0xFF;
+UINT8	backBreakingPressureErrorStatus= 0xFF;
+UINT8	dcdcErrorClass= 0xFF;
+UINT8	dcdcWorkStatus= 0xFF;
+UINT8	mainElectricityErrorClass= 0xFF;
+UINT8	pumpWorkStatus= 0xFF;
+UINT8	elecAirCompressorErrorStatus= 0xFF;
+UINT8	elecAirCompressorWrokStatus= 0xFF;
 UINT8   numOfCellTemp = CELL_TEMP_NUM;
 
 //declear the UINT16 vars
-UINT16	maxChrgCurrAllowed = 0x00;
-UINT16	maxDischrgCurrAllowed = 0x00;
-UINT16	packTotalVol = 0x00;
-UINT16	packTotalCurr = 0x00;
-UINT16	insulationR = 0x00;
-UINT16	maxCellVol = 0x00;
-UINT16	minCellVol = 0x00;
-UINT16	maxVolCellCode = 0x00;
-UINT16	minVoCelllCode = 0x00;
-UINT16	battCellU[384] = {0x00};
-UINT16	vcuDCVol = 0x00;
+UINT16	maxChrgCurrAllowed = 0xFFFF;
+UINT16	maxDischrgCurrAllowed = 0xFFFF;
+UINT16	packTotalVol = 0xFFFF;
+UINT16	packTotalCurr = 0xFFFF;
+UINT16	insulationR = 0xFFFF;
+UINT16	maxCellVol = 0xFFFF;
+UINT16	minCellVol = 0xFFFF;
+UINT16	maxVolCellCode = 0xFFFF;
+UINT16	minVoCelllCode = 0xFFFF;
+UINT16	battCellU[384] = {0xFFFF};
+UINT16	vcuDCVol = 0xFFFF;
 UINT16  numOfCells = CELL_NUM;
 
 
 //declear the UINT32 vars
-UINT32	accChrgAh= 0x00;
-UINT32	accDischrgAh= 0x00;
-UINT32	accChrgkWh= 0x00;
-UINT32	accDischrgkWh= 0x00;
-UINT32	accRecvryChrgAh= 0x00;
-UINT32	accRecvryChrgkWh= 0x00;
-UINT32	accStationChrgAh= 0x00;
-UINT32	accStationChrgkWh= 0x00;
-UINT32	accGunChrgAh= 0x00;
-UINT32	accGunChrgkWh= 0x00;
-UINT32	sglChrgAh= 0x00;
-UINT32	sglChrgkWh= 0x00;
-UINT32	ODO= 0x00;
+UINT32	accChrgAh= 0xFFFFFFFF;
+UINT32	accDischrgAh= 0xFFFFFFFF;
+UINT32	accChrgkWh= 0xFFFFFFFF;
+UINT32	accDischrgkWh= 0xFFFFFFFF;
+UINT32	accRecvryChrgAh= 0xFFFFFFFF;
+UINT32	accRecvryChrgkWh= 0xFFFFFFFF;
+UINT32	accStationChrgAh= 0xFFFFFFFF;
+UINT32	accStationChrgkWh= 0xFFFFFFFF;
+UINT32	accGunChrgAh= 0xFFFFFFFF;
+UINT32	accGunChrgkWh= 0xFFFFFFFF;
+UINT32	sglChrgAh= 0xFFFFFFFF;
+UINT32	sglChrgkWh= 0xFFFFFFFF;
+UINT32	ODO= 0xFFFFFFFF;
 
 
 

+ 5 - 4
src/AppTaskCan.c

@@ -62,7 +62,7 @@ static void CanTask()
 				ConvertCounter = 0;
 				while(TRUE)
 				{
-					osDelay(100);
+					osDelay(1);
 					ConvertCounter++;
 					if(gProcess_app!=WORK)
 					{
@@ -80,13 +80,14 @@ static void CanTask()
 			case PROCESS_CAN_STATE_WORK:
 			{
 				//printf("can task work\n");
+				memset(CanRxMsg,0,sizeof(CanRxMsg));
 				if(HAL_Can_Receive(CanRxMsg)>0)					
 				{
 					//printf("can receive message\n");
 					delayconuter=0;						
 					for(int i=0;i<2;i++)
 					{
-						if(CanRxMsg[i].Id != 0x00)
+						if(CanRxMsg[i].Id != 0x00 && CanRxMsg[i].DLC == 0x08)
 						{
 							DecodeFunction(CanRxMsg[i].Id,CanRxMsg[i].Data);
 							canRxFlag[canCOMInTableIndexFind(CanRxMsg[i].Id)] = 1;
@@ -100,13 +101,13 @@ static void CanTask()
 				else
 				{
 					delayconuter++;
-					osDelay(10);			
+					osDelay(1);			
 				}					
 				if(delayconuter>=100)
 				{
 					delayconuter=0;
 					clrbit(PadInterrupt,0);
-					//PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_IDLE);
+					PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_IDLE);
 				}				
 				break;
 			}	

+ 25 - 8
src/AppTaskMain.c

@@ -30,6 +30,7 @@ static void appAfterSlp2(void *pdata, slpManLpState state);
 UINT8 MainSlpHandler          = 0xff;//主线程睡眠句柄
 static void MainTask(void* arg)
 {
+	
     UINT8 PadInterrupt_clrCounter = 0;
     TimerHandle_t monitor_timer = NULL;
     TimerHandle_t work_timer = NULL;
@@ -79,6 +80,9 @@ static void MainTask(void* arg)
             {
                 osDelay(100);
                 PROC_APP_STATE_SWITCH(WORK);
+                //canTxTest();
+                canRxDiagnose();
+                //printf("%d\n",TimeCounter);
                 //状态转换延时
                 if(TimeCounter%10==0)
                 {
@@ -87,14 +91,27 @@ static void MainTask(void* arg)
                         printf("[%d]-%x",__LINE__,battWorkState);
                         printf("[%d]%x - %x - %x - %x - %x\n",__LINE__,WorkTimerEnd,BMS_Fota_update_flag,TCPWorkState,BattWorkStateDelay,PadInterrupt);
                     #endif
-                    if(strcmp(AppNVMData.battSN,SN)!=0&&SN[0]!=0xFF&&SN[0]!=0x00&&SN[15]!=0xFF&&SN[15]!=0x00)
-                    {
-                        AppNVMData.appDataModify = TRUE;
-                        AppNVMData.battSN[0] = 'J';
-                        AppNVMData.battSN[1] = 'M';
-                        MEMCPY(AppNVMData.battSN,SN,15);
-                        AppNVMData.EOLState=1;
-                    }
+                    //if(strcmp(AppNVMData.battSN,SN)!=0&&SN[0]!=0xFF&&SN[0]!=0x00&&SN[15]!=0xFF&&SN[15]!=0x00)
+                    if(canSNMsgRxCmpltFlag == true && canSNMsgLostFlag == false)
+                    {                   
+                        if(snCodeCompare(AppNVMData.battSN, SN))
+                        {                        	
+                        	AppNVMData.battSN[0] = 'T';//truck
+	                        AppNVMData.battSN[1] = 'J';//金茂电池包
+	                        AppNVMData.battSN[2] = 'M';
+	                        AppNVMData.battSN[3] = 'C';//宁德时代电芯
+	                        AppNVMData.battSN[4] = 'L';
+                        	MEMCPY(&(AppNVMData.battSN[5]),SN,12);
+                        	AppNVMData.EOLState=1;
+                        	AppNVMData.appDataModify = TRUE;
+                        	
+
+                        	printf("AppNVMData.battSN = ");
+		                    for(int j =0;j<17;j++)
+		                    	printf("%x\t",AppNVMData.battSN[j]);
+							printf("\n\n");
+						}                        
+                    }                    
                 }
                 if(AppDataInfo.appDataModify)
                 {

+ 156 - 156
src/hal_module_adapter.c

@@ -1116,174 +1116,174 @@ UINT8  HAL_Can_Receive(CAN_Msg_Type* CanRxMsgBuffer)
 	UINT8 ret = 0;
 	
 	CAN_ReadReg(CANINTF,1,&temp);
-		//printf("CANINTF = %x\n",temp);
-		ret = temp&0x03;
+	//printf("CANINTF = %x\n",temp);
+	ret = temp&0x03;
 
-		switch(ret)
-		{
-			case 0x00:
-				return ret;
-				break;
-			case 0x01:
-				/*get the id information*/
-				CAN_ReadReg(RXB0SIDH,1,&SIdH);
-				CAN_ReadReg(RXB0SIDL,1,&SIdL);
-				CAN_ReadReg(RXB0EID8,1,&EId8);
-				CAN_ReadReg(RXB0EID0,1,&EId0);
-				
-				CAN_ReadReg(RXB0DLC,1,&len);		
-				len = len&0x0F;
-				CanRxMsgBuffer[0].DLC = len;
+	switch(ret)
+	{
+		case 0x00:
+			return ret;
+			break;
+		case 0x01:
+			/*get the id information*/
+			CAN_ReadReg(RXB0SIDH,1,&SIdH);
+			CAN_ReadReg(RXB0SIDL,1,&SIdL);
+			CAN_ReadReg(RXB0EID8,1,&EId8);
+			CAN_ReadReg(RXB0EID0,1,&EId0);
+			
+			CAN_ReadReg(RXB0DLC,1,&len);		
+			len = len&0x0F;
+			CanRxMsgBuffer[0].DLC = len;
 
-				if(SIdL & 0x8)  // if SIdL.3 = 1, the id belongs to ExtID
-				{
-					(CanRxMsgBuffer[0]).Id = ((SIdH<<5 | (SIdL>>5)<<2 | SIdL&0x3 )<<16 | (EId8<<8) | EId0);
-				}
-				else
-				{
-					(CanRxMsgBuffer[0]).Id = SIdH<<3 | SIdL>>5;
-				}
-				
-				j = 0;
-				while(j<len)
-				{	
-					CAN_ReadReg(RXB0D0+j,1,&((CanRxMsgBuffer[0]).Data[j]));
-					j++;
-				}	
-			#ifdef USING_PRINTF1	
-				printf("buffer0 ID = %x\n",CanRxMsgBuffer[0].Id);
-				for(j=0;j<8;j++)
-				{
-					printf("%x ",CanRxMsgBuffer[0].Data[j]);
-				}
-				printf("\n");
-			#endif
-				CAN_WriteReg(CANINTF,temp&0xFE);
-				return ret;
-				break;
-
-			case 0x02:
-				/*get the id information*/
-				CAN_ReadReg(RXB1SIDH,1,&SIdH);
-				CAN_ReadReg(RXB1SIDL,1,&SIdL);
-				CAN_ReadReg(RXB1EID8,1,&EId8);
-				CAN_ReadReg(RXB1EID0,1,&EId0);
-				
-				CAN_ReadReg(RXB1DLC,1,&len);		
-				len = len & 0x0F;
-				CanRxMsgBuffer[1].DLC = len;
+			if(SIdL & 0x8)  // if SIdL.3 = 1, the id belongs to ExtID
+			{
+				(CanRxMsgBuffer[0]).Id = ((SIdH<<5 | (SIdL>>5)<<2 | SIdL&0x3 )<<16 | (EId8<<8) | EId0);
+			}
+			else
+			{
+				(CanRxMsgBuffer[0]).Id = SIdH<<3 | SIdL>>5;
+			}
 			
-				if(SIdL & 0x8)  // SIdL.3 = 1, ExtID
-				{
-					(CanRxMsgBuffer[1]).Id = ((SIdH<<5 | (SIdL>>5)<<2 | SIdL&0x3 )<<16 | (EId8<<8) | EId0);
-				}
-				else
-				{
-					(CanRxMsgBuffer[1]).Id = SIdH<<3 | SIdL>>5;
-				}
+			j = 0;
+			while(j<len)
+			{	
+				CAN_ReadReg(RXB0D0+j,1,&((CanRxMsgBuffer[0]).Data[j]));
+				j++;
+			}	
+		#ifdef USING_PRINTF1	
+			printf("buffer0 ID = %x\n",CanRxMsgBuffer[0].Id);
+			for(j=0;j<8;j++)
+			{
+				printf("%x ",CanRxMsgBuffer[0].Data[j]);
+			}
+			printf("\n");
+		#endif
+			CAN_WriteReg(CANINTF,temp&0xFE);
+			return ret;
+			break;
 
-				j = 0 ;
-				while(j<len)
-				{	
-					CAN_ReadReg(RXB1D0+j,1,&((CanRxMsgBuffer[1]).Data[j]));
-					j++;			
-				}
+		case 0x02:
+			/*get the id information*/
+			CAN_ReadReg(RXB1SIDH,1,&SIdH);
+			CAN_ReadReg(RXB1SIDL,1,&SIdL);
+			CAN_ReadReg(RXB1EID8,1,&EId8);
+			CAN_ReadReg(RXB1EID0,1,&EId0);
+			
+			CAN_ReadReg(RXB1DLC,1,&len);		
+			len = len & 0x0F;
+			CanRxMsgBuffer[1].DLC = len;
+		
+			if(SIdL & 0x8)  // SIdL.3 = 1, ExtID
+			{
+				(CanRxMsgBuffer[1]).Id = ((SIdH<<5 | (SIdL>>5)<<2 | SIdL&0x3 )<<16 | (EId8<<8) | EId0);
+			}
+			else
+			{
+				(CanRxMsgBuffer[1]).Id = SIdH<<3 | SIdL>>5;
+			}
 
-			#ifdef USING_PRINTF1	
-				printf("buffer1 ID = %x\n",CanRxMsgBuffer[1].Id);
-				for(j=0;j<8;j++)
-				{
-					printf("%x ",CanRxMsgBuffer[1].Data[j]);
-				}
-				printf("\n");
-			#endif
-				CAN_WriteReg(CANINTF,temp&0xFD);
-				return ret;
-				break;
-			case 0x03:
-				/*get the id information*/
-				CAN_ReadReg(RXB0SIDH,1,&SIdH);
-				CAN_ReadReg(RXB0SIDL,1,&SIdL);
-				CAN_ReadReg(RXB0EID8,1,&EId8);
-				CAN_ReadReg(RXB0EID0,1,&EId0);
-				
-				CAN_ReadReg(RXB0DLC,1,&len);		
-				len = len&0x0F;
-				CanRxMsgBuffer[0].DLC = len;
+			j = 0 ;
+			while(j<len)
+			{	
+				CAN_ReadReg(RXB1D0+j,1,&((CanRxMsgBuffer[1]).Data[j]));
+				j++;			
+			}
 
-				if(SIdL & 0x8)  // if SIdL.3 = 1, the id belongs to ExtID
-				{
-					(CanRxMsgBuffer[0]).Id = ((SIdH<<5 | (SIdL>>5)<<2 | SIdL&0x3 )<<16 | (EId8<<8) | EId0);
-				}
-				else
-				{
-					(CanRxMsgBuffer[0]).Id = SIdH<<3 | SIdL>>5;
-				}
-				
-				j = 0;
-				while(j<len)
-				{	
-					CAN_ReadReg(RXB0D0+j,1,&((CanRxMsgBuffer[0]).Data[j]));
-					j++;
-				}	
-			#ifdef USING_PRINTF1	
-				printf("buffer0 ID = %x\n",CanRxMsgBuffer[0].Id);
-				for(j=0;j<8;j++)
-				{
-					printf("%x ",CanRxMsgBuffer[0].Data[j]);
-				}
-				printf("\n");
-			#endif
-
-				/*get the id information*/
-				CAN_ReadReg(RXB1SIDH,1,&SIdH);
-				CAN_ReadReg(RXB1SIDL,1,&SIdL);
-				CAN_ReadReg(RXB1EID8,1,&EId8);
-				CAN_ReadReg(RXB1EID0,1,&EId0);
-				
-				CAN_ReadReg(RXB1DLC,1,&len);		
-				len = len & 0x0F;
-				CanRxMsgBuffer[1].DLC = len;
+		#ifdef USING_PRINTF1	
+			printf("buffer1 ID = %x\n",CanRxMsgBuffer[1].Id);
+			for(j=0;j<8;j++)
+			{
+				printf("%x ",CanRxMsgBuffer[1].Data[j]);
+			}
+			printf("\n");
+		#endif
+			CAN_WriteReg(CANINTF,temp&0xFD);
+			return ret;
+			break;
+		case 0x03:
+			/*get the id information*/
+			CAN_ReadReg(RXB0SIDH,1,&SIdH);
+			CAN_ReadReg(RXB0SIDL,1,&SIdL);
+			CAN_ReadReg(RXB0EID8,1,&EId8);
+			CAN_ReadReg(RXB0EID0,1,&EId0);
 			
-				if(SIdL & 0x8)  // SIdL.3 = 1, ExtID
-				{
-					(CanRxMsgBuffer[1]).Id = ((SIdH<<5 | (SIdL>>5)<<2 | SIdL&0x3 )<<16 | (EId8<<8) | EId0);
-				}
-				else
-				{
-					(CanRxMsgBuffer[1]).Id = SIdH<<3 | SIdL>>5;
-				}
+			CAN_ReadReg(RXB0DLC,1,&len);		
+			len = len&0x0F;
+			CanRxMsgBuffer[0].DLC = len;
 
-				j = 0 ;
-				while(j<len)
-				{	
-					CAN_ReadReg(RXB1D0+j,1,&((CanRxMsgBuffer[1]).Data[j]));
-					j++;			
-				}
-
-			#ifdef USING_PRINTF1		
-				printf("buffer1 ID = %x\n",CanRxMsgBuffer[1].Id);
-				for(j=0;j<8;j++)
-				{
-					printf("%x ",CanRxMsgBuffer[1].Data[j]);
-				}
-				printf("\n");
-			#endif
-				CAN_WriteReg(CANINTF,temp&0xFC);
-				return ret;
-				break;
+			if(SIdL & 0x8)  // if SIdL.3 = 1, the id belongs to ExtID
+			{
+				(CanRxMsgBuffer[0]).Id = ((SIdH<<5 | (SIdL>>5)<<2 | SIdL&0x3 )<<16 | (EId8<<8) | EId0);
+			}
+			else
+			{
+				(CanRxMsgBuffer[0]).Id = SIdH<<3 | SIdL>>5;
+			}
+			
+			j = 0;
+			while(j<len)
+			{	
+				CAN_ReadReg(RXB0D0+j,1,&((CanRxMsgBuffer[0]).Data[j]));
+				j++;
+			}	
+		#ifdef USING_PRINTF1	
+			printf("buffer0 ID = %x\n",CanRxMsgBuffer[0].Id);
+			for(j=0;j<8;j++)
+			{
+				printf("%x ",CanRxMsgBuffer[0].Data[j]);
+			}
+			printf("\n");
+		#endif
+
+			/*get the id information*/
+			CAN_ReadReg(RXB1SIDH,1,&SIdH);
+			CAN_ReadReg(RXB1SIDL,1,&SIdL);
+			CAN_ReadReg(RXB1EID8,1,&EId8);
+			CAN_ReadReg(RXB1EID0,1,&EId0);
+			
+			CAN_ReadReg(RXB1DLC,1,&len);		
+			len = len & 0x0F;
+			CanRxMsgBuffer[1].DLC = len;
+		
+			if(SIdL & 0x8)  // SIdL.3 = 1, ExtID
+			{
+				(CanRxMsgBuffer[1]).Id = ((SIdH<<5 | (SIdL>>5)<<2 | SIdL&0x3 )<<16 | (EId8<<8) | EId0);
+			}
+			else
+			{
+				(CanRxMsgBuffer[1]).Id = SIdH<<3 | SIdL>>5;
+			}
 
-			default:
-				break;
+			j = 0 ;
+			while(j<len)
+			{	
+				CAN_ReadReg(RXB1D0+j,1,&((CanRxMsgBuffer[1]).Data[j]));
+				j++;			
+			}
 
-		}
-/*
-		CAN_ReadReg(CANINTF,1, &temp1);
-		if((temp1&0x03) == (temp&0x03))
-		{
+		#ifdef USING_PRINTF1		
+			printf("buffer1 ID = %x\n",CanRxMsgBuffer[1].Id);
+			for(j=0;j<8;j++)
+			{
+				printf("%x ",CanRxMsgBuffer[1].Data[j]);
+			}
+			printf("\n");
+		#endif
 			CAN_WriteReg(CANINTF,temp&0xFC);
+			return ret;
 			break;
-		}
+
+		default:
+			break;
+
+	}
+/*
+	CAN_ReadReg(CANINTF,1, &temp1);
+	if((temp1&0x03) == (temp&0x03))
+	{
+		CAN_WriteReg(CANINTF,temp&0xFC);
+		break;
+	}
 */
 	return ret;
 //	CAN_ReadReg(CANINTF,1,&temp);

Деякі файли не було показано, через те що забагато файлів було змінено