Browse Source

增加上位机控制

陈杰 3 years ago
parent
commit
9ee79e231b

+ 14 - 2
System/Vehicle/AppFunc.c

@@ -25,11 +25,11 @@ void LockAndUnlockCtrl()
 		Delay = Delay + 10;
 		if (Delay > 10000)
 		{
-			PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 1);
+			PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 0);
 		}
 		else
 		{
-			PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 0);
+			PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 1);
 		}
 		if (Delay > 20000)
 		{
@@ -38,6 +38,18 @@ void LockAndUnlockCtrl()
 	}
 	else //Õý³£¹¤×÷ģʽ
 	{
+		if(bled_flg_lockCmd==1)
+		{
+			PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 0);
+		}
+		else if(bled_flg_unlockCmd==1)
+		{
+			PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 1);
+		}
+		else
+		{
+			PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 0);
+		}
 	}
 }
 /**

+ 9 - 1
System/Vehicle/Communication/BleCanProtocolFunc.c

@@ -624,6 +624,12 @@ void Can2ProtocolDecode(uint32 Can2ID,uint8 Data[])
         }
         break;
     }
+    case 0x1CEF00F1:
+    {
+    	ebcd_flg_ebcEolDone = Data[0];//下线检测完成(取消定时解锁)暂时放这里
+    	EEPROMDrv_bSaveInstantUB = 1;
+    	break;
+    }
     default:
         break;
     }
@@ -673,11 +679,13 @@ void Can2DataDecode(uint8 Data[])
     case 0x06: //解锁
     {
         bled_flg_unlockCmd = Data[1];
+        bled_flg_lockCmd = 0;
         break;
     }
     case 0x07: //锁紧
     {
         bled_flg_lockCmd = Data[1];
+        bled_flg_unlockCmd = 0;
         break;
     }
     case 0x08: //完成换电
@@ -745,7 +753,7 @@ void Can2DataDecode(uint8 Data[])
     {
         bled_flg_safeStopCmd = 1;
         break;
-    }
+    }//新增需要改数组
     default:
         break;
     }

+ 4 - 4
System/Vehicle/Communication/CANNet.c

@@ -29,11 +29,11 @@ void CANNet_Init(void)
 	/*示例代码*/
 
 	/*各个CAN节点初始化*/
-	MCANDrv_SetBaudrate(_CAN_INDEX_CAN0, 500000);
+	MCANDrv_SetBaudrate(_CAN_INDEX_CAN0, 250000);
 	MCANDrv_SetCANMode(_CAN_INDEX_CAN0, MCAN_NODEMODE_BUF);
 	MCANDrv_SetCallbackFunc(_CAN_INDEX_CAN0, (pFunc_RxMsgCallback)CANNet_RecvMsgCAN0, NULL_PTR);
 
-	MCANDrv_SetBaudrate(_CAN_INDEX_CAN1, 500000);
+	MCANDrv_SetBaudrate(_CAN_INDEX_CAN1, 250000);
 	MCANDrv_SetCANMode(_CAN_INDEX_CAN1, MCAN_NODEMODE_BUF);
 	MCANDrv_SetCallbackFunc(_CAN_INDEX_CAN1, (pFunc_RxMsgCallback)CANNet_RecvMsgCAN1, NULL_PTR);
 
@@ -48,7 +48,7 @@ void CANNet_Init(void)
 	CANNet_InfoRxMsgConfSA[0].infoMsgParU.B.DLC = 8;
 	CANNet_InfoRxMsgConfSA[0].infoMsgParU.B.IDE = _MCAN_IDE_EXT;
 	MCANDrv_SetMsgObj(CANNet_InfoRxMsgConfSA[0], CANNet_RecvMsgCAN2);
-	CANNet_InfoRxMsgConfSA[1].infoMsgIDUI = 0x1CEF0001UL;
+	CANNet_InfoRxMsgConfSA[1].infoMsgIDUI = 0x1CEF00F1UL;
 	CANNet_InfoRxMsgConfSA[1].infoMsgParU.B.CAN = 2;
 	CANNet_InfoRxMsgConfSA[1].infoMsgParU.B.MO = 4;
 	CANNet_InfoRxMsgConfSA[1].infoMsgParU.B.DIR = _MCAN_DIR_RX;
@@ -241,7 +241,7 @@ void CAN2Net_Manage1ms(void)
 		infoMsgS.datMsgUBA[0] = (uint8)(ebcd_st_lockSensor | (ebcd_st_unlockSensor << 4));
 		infoMsgS.datMsgUBA[1] = ebcd_st_pedstSensor;
 		infoMsgS.datMsgUBA[2] = ebcd_P_airSensor;
-		infoMsgS.datMsgUBA[3] = 0x00;
+		infoMsgS.datMsgUBA[3] = ebcd_flg_ebcEolDone;
 		infoMsgS.datMsgUBA[4] = ebcd_T_plugin[0];
 		infoMsgS.datMsgUBA[5] = ebcd_T_plugin[1];
 		infoMsgS.datMsgUBA[6] = ebcd_T_plugin[2];

+ 5 - 2
System/Vehicle/Communication/CanVar.c

@@ -730,10 +730,13 @@ uint8 ebcd_st_pedstSucJug;			 //
 uint8 ebcd_st_pluginLockSig;		 //互锁接插件信号具体状态,1-触发,0-无触发
 uint8 ebcd_st_unlockSensor;			 //解锁传感器信号:bit0-bit3:传感器0-3的状态每,bit:1-触发,0-不触发
 uint8 ebcd_st_unlockSucJug;			 //解锁完成判断:0-完全未解锁,1-完全解锁,2-未完全解锁
-
-#define APPLAYERVER_START_SEC_VAR
+#define EEPDATA_START_SEC_VAR
 #include "MemMap.h"
 uint8 ebcd_flg_ebcEolDone = 0;		 // EBC下线检测状态完成标志位
+#define EEPDATA_STOP_SEC_VAR
+#include "MemMap.h"
+#define APPLAYERVER_START_SEC_VAR
+#include "MemMap.h"
 const uint8 T_table[240] = {239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224,
 							223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, 204, 203,
 							202, 201, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182,

+ 5 - 1
System/Vehicle/Communication/CanVar.h

@@ -558,7 +558,11 @@ extern uint8 ebcd_st_chargingMod; //
 extern uint8 ebdc_st_lockUpState; //锁止机构状态,0-故障,1-解锁成功,2-上锁成功
 extern uint8 ebdc_st_ConnecState; //换电连接器状态(充电回路&放电回路同时闭合代表闭合,有一路断开则为断开),0_未连接 1_连接
 
-extern uint8 ebcd_flg_ebcEolDone;
+#define EEPDATA_START_SEC_VAR
+#include "MemMap.h"
+extern uint8 ebcd_flg_ebcEolDone;		 // EBC下线检测状态完成标志位
+#define EEPDATA_STOP_SEC_VAR
+#include "MemMap.h"
 extern const uint8 T_table[240];
 extern const uint32 R_table[240];
 extern const uint8 DataPackCounter[21];