提交 2c72f8cf 作者: wysheng

车辆验证

上级 1767d463
...@@ -631,6 +631,11 @@ void StartMeg(StructTCUSend * pPgnRecv) ...@@ -631,6 +631,11 @@ void StartMeg(StructTCUSend * pPgnRecv)
//24V //24V
BMS_24V_Set(eSwSta_On); BMS_24V_Set(eSwSta_On);
} }
if(StartMeg_A.PlugToChgFlag == 1)
{
TCUCurChgRecd.VehicleVerification = 0;
}
} }
else else
{ {
...@@ -678,6 +683,11 @@ void StartMeg(StructTCUSend * pPgnRecv) ...@@ -678,6 +683,11 @@ void StartMeg(StructTCUSend * pPgnRecv)
//24V //24V
BMS_24V_Set_B(eSwSta_On); BMS_24V_Set_B(eSwSta_On);
} }
if(StartMeg_B.PlugToChgFlag == 1)
{
TCUCurChgRecd_B.VehicleVerification = 0;
}
} }
else else
{ {
...@@ -992,20 +1002,20 @@ u8 AllowDTUStartCompCharge(u8 * Reason) ...@@ -992,20 +1002,20 @@ u8 AllowDTUStartCompCharge(u8 * Reason)
*Reason = 0x24; //24H:BCP 报文接收超时 *Reason = 0x24; //24H:BCP 报文接收超时
else if (CemMsg.Cem.Value.Bro == 1) else if (CemMsg.Cem.Value.Bro == 1)
*Reason = 0x27; //27H:BRO 报文(0xAA)接收超时 *Reason = 0x27; //27H:BRO 报文(0xAA)接收超时
else if ((CemMsg.Cem.Value.Bro != 0) || (ChargeStopType != 0)) //else if ((CemMsg.Cem.Value.Bro != 0) || (ChargeStopType != 0))
*Reason = 0x28; // *Reason = 0x28;
else if (CemMsg.Cem.Value.Bcl == 1) else if (CemMsg.Cem.Value.Bcl == 1)
*Reason = 0x29; //29H:BCL报文接收超时 *Reason = 0x29; //29H:BCL报文接收超时
else if (CemMsg.Cem.Value.Bcs == 1) else if (CemMsg.Cem.Value.Bcs == 1)
*Reason = 0x2A; //2AH:BCS报文接收超时 *Reason = 0x2A; //2AH:BCS报文接收超时
else if ((VerificaInfo.result == 1) && (StartMeg_A.PlugToChgFlag == 1)) else if ((VerificaInfo.result == 1) && (StartMeg_A.PlugToChgFlag == 1))
*Reason = 0x3D; //3DH: 车辆验证确认帧超时 *Reason = 0x3F; //3DH: 车辆验证确认帧超时
else if (TCUCommuStatus.ErrData.Value.verificationAck == 1) else if (TCUCommuStatus.ErrData.Value.verificationAck == 1)
*Reason = 0x3F; //3FH:车辆鉴权不通过 *Reason = 0x3D; //3FH:车辆鉴权不通过
else if (TCUCurChgRecd.TCUStartCompresult == 2) else if (TCUCurChgRecd.TCUStartCompresult == 2)
*Reason = 0x01; //控制导引故障 *Reason = 0x01; //控制导引故障
else else
* Reason = 0x28; //其他故障 * Reason = 0xFF; //其他故障
return FALSE; return FALSE;
} }
...@@ -1062,20 +1072,20 @@ u8 AllowDTUStartCompCharge_B(u8 * Reason) ...@@ -1062,20 +1072,20 @@ u8 AllowDTUStartCompCharge_B(u8 * Reason)
*Reason = 0x24; *Reason = 0x24;
else if (CemMsg_B.Cem.Value.Bro == 1) else if (CemMsg_B.Cem.Value.Bro == 1)
*Reason = 0x27; *Reason = 0x27;
else if ((CemMsg_B.Cem.Value.Bro != 0) || (ChargeStopType_B != 0)) //else if ((CemMsg_B.Cem.Value.Bro != 0) || (ChargeStopType_B != 0))
*Reason = 0x28; // *Reason = 0x28;
else if (CemMsg_B.Cem.Value.Bcl == 1) else if (CemMsg_B.Cem.Value.Bcl == 1)
*Reason = 0x29; //29H:BCL报文接收超时 *Reason = 0x29; //29H:BCL报文接收超时
else if (CemMsg_B.Cem.Value.Bcs == 1) else if (CemMsg_B.Cem.Value.Bcs == 1)
*Reason = 0x2A; //2AH:BCS报文接收超时 *Reason = 0x2A; //2AH:BCS报文接收超时
else if ((VerificaInfo_B.result == 1) && (StartMeg_B.PlugToChgFlag == 1)) else if ((VerificaInfo_B.result == 1) && (StartMeg_B.PlugToChgFlag == 1))
*Reason = 0x3D;
else if (TCUCommuStatus_B.ErrData.Value.verificationAck == 1)
*Reason = 0x3F; *Reason = 0x3F;
else if (TCUCommuStatus_B.ErrData.Value.verificationAck == 1)
*Reason = 0x3D;
else if (TCUCurChgRecd_B.TCUStartCompresult == 2) else if (TCUCurChgRecd_B.TCUStartCompresult == 2)
*Reason = 0x01; //控制导引故障 *Reason = 0x01; //控制导引故障
else else
* Reason = 0x28; //其他故障 * Reason = 0xFF; //其他故障
return FALSE; return FALSE;
} }
...@@ -2849,7 +2859,7 @@ void verification(void) ...@@ -2849,7 +2859,7 @@ void verification(void)
memcpy(&data[len], &BrmMsg.ChgCount, 3); memcpy(&data[len], &BrmMsg.ChgCount, 3);
len += 3; len += 3;
memcpy(&data[len], &BcpMsg.StartSoc, 2); memcpy(&data[len], &BcpMsg.StartSoc, 2);
len += 3; len += 2;
memcpy(&data[len], &BcpMsg.StartVolt, 2); memcpy(&data[len], &BcpMsg.StartVolt, 2);
len += 2; len += 2;
TCUMultiPackSendMsg(data, len, eCmd_verification, 6, ChargerCont1939Addr); TCUMultiPackSendMsg(data, len, eCmd_verification, 6, ChargerCont1939Addr);
...@@ -2870,7 +2880,7 @@ void verification_B(void) ...@@ -2870,7 +2880,7 @@ void verification_B(void)
memcpy(&data[len], &BrmMsg_B.ChgCount, 3); memcpy(&data[len], &BrmMsg_B.ChgCount, 3);
len += 3; len += 3;
memcpy(&data[len], &BcpMsg_B.StartSoc, 2); memcpy(&data[len], &BcpMsg_B.StartSoc, 2);
len += 3; len += 2;
memcpy(&data[len], &BcpMsg_B.StartVolt, 2); memcpy(&data[len], &BcpMsg_B.StartVolt, 2);
len += 2; len += 2;
TCUMultiPackSendMsg(data, len, eCmd_verification, 6, ChargerCont1939Addr_B); TCUMultiPackSendMsg(data, len, eCmd_verification, 6, ChargerCont1939Addr_B);
...@@ -2884,11 +2894,15 @@ void verificationAck(StructTCUSend * pPgnRecv) ...@@ -2884,11 +2894,15 @@ void verificationAck(StructTCUSend * pPgnRecv)
{ {
VerificaInfo.result = pPgnRecv->Data[1]; VerificaInfo.result = pPgnRecv->Data[1];
VerificaInfo.FailReason = pPgnRecv->Data[2]; VerificaInfo.FailReason = pPgnRecv->Data[2];
TCUCurChgRecd.VehicleVerification = 2;
} }
else if (pPgnRecv->DA == ChargerCont1939Addr_B) else if (pPgnRecv->DA == ChargerCont1939Addr_B)
{ {
VerificaInfo_B.result = pPgnRecv->Data[1]; VerificaInfo_B.result = pPgnRecv->Data[1];
VerificaInfo_B.FailReason = pPgnRecv->Data[2]; VerificaInfo_B.FailReason = pPgnRecv->Data[2];
TCUCurChgRecd_B.VehicleVerification = 2;
} }
} }
...@@ -2925,7 +2939,7 @@ void TCUErroCommAnalysis(StructTCUSend * pPgnRecv) ...@@ -2925,7 +2939,7 @@ void TCUErroCommAnalysis(StructTCUSend * pPgnRecv)
{ {
if (pPgnRecv->DA == ChargerCont1939Addr) if (pPgnRecv->DA == ChargerCont1939Addr)
{ {
memcpy(&TCUChgContralTCUEM_A.tcuem, &pPgnRecv->Data[1], 2); memcpy(&TCUChgContralTCUEM_A.tcuem, &pPgnRecv->Data[1], 3);
memset(&TCUCommuStatus, 0x00, sizeof(TCUCommuStatus)); //通讯初始化 memset(&TCUCommuStatus, 0x00, sizeof(TCUCommuStatus)); //通讯初始化
TCUCommuStatus.ConnectFlag = CONNECT_TIMEOUT; TCUCommuStatus.ConnectFlag = CONNECT_TIMEOUT;
...@@ -2935,7 +2949,7 @@ void TCUErroCommAnalysis(StructTCUSend * pPgnRecv) ...@@ -2935,7 +2949,7 @@ void TCUErroCommAnalysis(StructTCUSend * pPgnRecv)
} }
else if (pPgnRecv->DA == ChargerCont1939Addr_B) else if (pPgnRecv->DA == ChargerCont1939Addr_B)
{ {
memcpy(&TCUChgContralTCUEM_B.tcuem, &pPgnRecv->Data[1], 2); memcpy(&TCUChgContralTCUEM_B.tcuem, &pPgnRecv->Data[1], 3);
memset(&TCUCommuStatus_B, 0x00, sizeof(TCUCommuStatus)); //通讯初始化 memset(&TCUCommuStatus_B, 0x00, sizeof(TCUCommuStatus)); //通讯初始化
TCUCommuStatus_B.ConnectFlag = CONNECT_TIMEOUT; TCUCommuStatus_B.ConnectFlag = CONNECT_TIMEOUT;
...@@ -3063,4 +3077,48 @@ void StartDownloadAck(u8 ChgNum) ...@@ -3063,4 +3077,48 @@ void StartDownloadAck(u8 ChgNum)
} }
} }
void VehicleVerificationHandle(void)
{
static u32 VehicleVerificationTick = 0;
static u8 VehicleVerificationCount = 0;
if(1 == TCUCurChgRecd.VehicleVerification)
{
if(GetSystemTick() - VehicleVerificationTick >= 1000)
{
VehicleVerificationTick = GetSystemTick();
VehicleVerificationCount++;
if(VehicleVerificationCount <= 30)
{
verification();
}
else
{
TCUCurChgRecd.VehicleVerification = 0;
TCUCurChgRecd.TCUChargeEnable = 0;
TCUCommuStatus.ErrData.Value.verificationAck = 1;
TCUCommuStatus.ConEMSendFlag = 1; //错误帧发送
}
}
}
else if(2 == TCUCurChgRecd.VehicleVerification)
{
if(VerificaInfo.result)
{
TCUCurChgRecd.TCUChargeEnable = 0;
}
else
{
TCUCurChgRecd.TCUChargeEnable = 1;
}
TCUCurChgRecd.VehicleVerification = 0;
}
else
{
VehicleVerificationTick = GetSystemTick();
VehicleVerificationCount = 0;
}
}
...@@ -57,8 +57,16 @@ void ChgProChgRecognize(StructChargeCtrl *pChargeCtrl) ...@@ -57,8 +57,16 @@ void ChgProChgRecognize(StructChargeCtrl *pChargeCtrl)
if(0 != BrmMsg.Valid) if(0 != BrmMsg.Valid)
{//接收到Brm {//接收到Brm
pChargeCtrl->CurProcess = eChgPro_ChgConfigure; if(1 == TCUCurChgRecd.TCUChargeEnable)
pChargeCtrl->Param = 0; {
pChargeCtrl->CurProcess = eChgPro_ChgConfigure;
pChargeCtrl->Param = 0;
}
else if(2 == TCUCurChgRecd.TCUChargeEnable)
{
if(TCUCurChgRecd.VehicleVerification == 0)
TCUCurChgRecd.VehicleVerification = 1;
}
} }
else if((GetSystemTick() - BrmMsg.RecvTick) > (MsgTimeout_5S)) else if((GetSystemTick() - BrmMsg.RecvTick) > (MsgTimeout_5S))
{ {
......
...@@ -57,8 +57,17 @@ void ChgProChgRecognizeEx(StructChargeCtrl *pChargeCtrl) ...@@ -57,8 +57,17 @@ void ChgProChgRecognizeEx(StructChargeCtrl *pChargeCtrl)
if(0 != BrmMsg.Valid) if(0 != BrmMsg.Valid)
{//接收到Brm {//接收到Brm
pChargeCtrl->CurProcess = eChgPro_ChgConfigure; if(1 == TCUCurChgRecd.TCUChargeEnable)
pChargeCtrl->Param = 0; {
pChargeCtrl->CurProcess = eChgPro_ChgConfigure;
pChargeCtrl->Param = 0;
}
else if(2 == TCUCurChgRecd.TCUChargeEnable)
{
if(TCUCurChgRecd.VehicleVerification == 0)
TCUCurChgRecd.VehicleVerification = 1;
}
} }
else if((GetSystemTick() - BrmMsg.RecvTick) < (MsgTimeout_5S/2)) else if((GetSystemTick() - BrmMsg.RecvTick) < (MsgTimeout_5S/2))
{ {
......
...@@ -678,14 +678,9 @@ void TCUCurChgRecordInterface_A(void) ...@@ -678,14 +678,9 @@ void TCUCurChgRecordInterface_A(void)
if (TCUCurChgRecd.TCUChgStartNotetrl == 1) //启动帧逻辑 if (TCUCurChgRecd.TCUChgStartNotetrl == 1) //启动帧逻辑
{ {
StartMegAck_A(); //启动帧发送
ChgStartSendTick = GetSystemTick();
TCUCurChgRecd.TCUChgStartNotetrl = 2;
}
else if (TCUCurChgRecd.TCUChgStartNotetrl == 2)
{
if (GetSystemTick() -ChgStartSendTick >= 250UL) if (GetSystemTick() -ChgStartSendTick >= 250UL)
{ {
ChgStartSendTick = GetSystemTick();
if (ChgStartSendEcount < 8) //2S if (ChgStartSendEcount < 8) //2S
{ {
ChgStartSendEcount++; ChgStartSendEcount++;
...@@ -693,28 +688,25 @@ void TCUCurChgRecordInterface_A(void) ...@@ -693,28 +688,25 @@ void TCUCurChgRecordInterface_A(void)
} }
else else
{ {
ChgStartSendTick = 0;
TCUCurChgRecd.TCUChgStartNotetrl = 0; //停止发送 TCUCurChgRecd.TCUChgStartNotetrl = 0; //停止发送
ChgStartSendEcount = 0;
} }
} }
} }
else if (TCUCurChgRecd.TCUChgStarCompNotetrl == 1) else
{ {
startCompSend_A(); ChgStartSendTick = GetSystemTick();
ChgStartCompSendTick = GetSystemTick(); ChgStartSendEcount = 0;
TCUCurChgRecd.TCUChgStarCompNotetrl = 2;
} }
else if (TCUCurChgRecd.TCUChgStarCompNotetrl == 2)
if (TCUCurChgRecd.TCUChgStarCompNotetrl == 1)
{ {
if ((GetSystemTick() -ChgStartCompSendTick) > (250UL)) if ((GetSystemTick() -ChgStartCompSendTick) > (250UL))
{ {
ChgRecordSendTick = GetSystemTick();
ChgStartCompSendEcount++; ChgStartCompSendEcount++;
if (ChgRecordSendErr < 20) //超时5S if (ChgRecordSendErr < 20) //超时5S
{ //超时小于20次 { //超时小于20次
startCompSend_A(); startCompSend_A();
ChgRecordSendTick = GetSystemTick();
} }
else else
{ //超时大于,保存 { //超时大于,保存
...@@ -732,9 +724,14 @@ void TCUCurChgRecordInterface_A(void) ...@@ -732,9 +724,14 @@ void TCUCurChgRecordInterface_A(void)
TCUCurChgRecd.TCUStartCompresult = 0; // TCUCurChgRecd.TCUStartCompresult = 0; //
TCUCurChgRecd.TCUChargeEnable = 0; //归零 TCUCurChgRecd.TCUChargeEnable = 0; //归零
TCUCurChgRecd.StarChgType = 0; TCUCurChgRecd.StarChgType = 0;
}
else
{
ChgStartCompSendEcount = 0; ChgStartCompSendEcount = 0;
ChgRecordSendTick = GetSystemTick();
} }
else if (TCUCurChgRecd.TCUChgStopNotetrl == 1) //停止帧逻辑
if (TCUCurChgRecd.TCUChgStopNotetrl == 1) //停止帧逻辑
{ {
StopMegAck_A(); //停止帧发送 StopMegAck_A(); //停止帧发送
ChgStopSendTick = GetSystemTick(); ChgStopSendTick = GetSystemTick();
......
#ifndef __THD_TCU_H__ #ifndef __THD_TCU_H__
#define __THD_TCU_H__ #define __THD_TCU_H__
#include "Global.h" #include "Global.h"
#include "Drv_TCUComm.h" #include "Drv_TCUComm.h"
#include "Thd_TcuControl.h" #include "Thd_TcuControl.h"
#define CONNECT_NORMAL 0 #define CONNECT_NORMAL 0
#define CONNECT_TIMEOUT 1 #define CONNECT_TIMEOUT 1
typedef enum typedef enum {
{ HeartStage = 0, //心跳阶段默认
HeartStage =0,//心跳阶段默认 VersionStage = 1,
VersionStage = 1, ChageParamStage = 2,
ChageParamStage = 2, TimeStage = 3,
TimeStage = 3, ServiceContralStage = 4,
ServiceContralStage = 4, ElectLockStage = 5,
ElectLockStage = 5, PowerControlStage = 6,
PowerControlStage = 6, ChgInfornQueryStage = 7,
ChgInfornQueryStage = 7, StartDownloadStage = 8,
StartDownloadStage = 8, } EnumTCUCommStage;
}EnumTCUCommStage;
typedef union typedef union {
{ u16 Mult;
u16 Mult;
struct
{ struct {
u32 startCompAck :1;//充电启动完成状态确认超时 u32 startCompAck : 1; //充电启动完成状态确认超时
u32 stopCompAck: 1;//充电停止完成状态确认超时 u32 stopCompAck : 1; //充电停止完成状态确认超时
u32 DCTCUInfor : 1;//遥信报文接收超时 u32 DCTCUInfor : 1; //遥信报文接收超时
u32 DCTCUMeasu : 1;//遥测报文接收超时 u32 DCTCUMeasu : 1; //遥测报文接收超时
u32 Param : 1;//下发充电参数报文接收超时 u32 Param : 1; //下发充电参数报文接收超时
//接收请求发送数据帧超时 u32 DataRequestSend : 1; //接收请求发送数据帧超时
//接收数据发送帧超时 u32 DataSend : 1; //接收数据发送帧超时
u32 ProgramVerification: 1; //接收程序校验命令帧超时
//接收程序校验命令帧超时
//接收立即复位命令帧超时 u32 reset : 1; //接收立即复位命令帧超时
//车辆验证确认帧接收超时 u32 verificationAck : 1; // 车辆验证确认帧接收超时
u32 verificationAck : 1;//
}Value; } Value;
}UnionConEM;
} UnionConEM;
typedef struct
{
EnumTCUCommStage CommStage; typedef struct {
EnumTCUCommStage CommStage;
u8 VerChkVaild;
u8 ParamVaild;
u8 ChargingServiceSetValue;//保留下发设置值
u8 ServiceContralVaildValue;//服务控制下发失败原因 0成功
u8 ElectLockSetValue;//保留下发设置值
u8 ElectLockVaildValue;//电子锁控制下发失败原因 0成功
u8 PowerControltype;
u16 PowerControlParam;
u8 PowerControlVaildValue;//功率调节失败原因
u8 ConnectFlag;//0 未连接 其他已连接
u8 HeartBeatVaild;//接收心跳有效标志位
u8 HeartBeatErrCnt;
u16 HeartBeatNumCnt;
u16 HeartBeatLoseCnt;
u32 DCMeasuErrCnt;
UnionConEM ErrData;
u8 ConEMSendFlag;
}StructTCUCommuStatus;
typedef struct
{
u8 HeartPeriod;//秒
u8 HeartErrCntMax;//次
u8 HeartTimeout;//秒
u16 SignInPeriod;//分钟
}StructTCUCommuParam;
u8 VerChkVaild;
u8 ParamVaild;
u8 ChargingServiceSetValue; //保留下发设置值
u8 ServiceContralVaildValue; //服务控制下发失败原因 0成功
u8 ElectLockSetValue; //保留下发设置值
u8 ElectLockVaildValue; //电子锁控制下发失败原因 0成功
u8 PowerControltype;
u16 PowerControlParam;
u8 PowerControlVaildValue; //功率调节失败原因
u8 ConnectFlag; //0 未连接 其他已连接
u8 HeartBeatVaild; //接收心跳有效标志位
u8 HeartBeatErrCnt;
u16 HeartBeatNumCnt;
u16 HeartBeatLoseCnt;
u32 DCMeasuErrCnt;
UnionConEM ErrData;
u8 ConEMSendFlag;
} StructTCUCommuStatus;
typedef struct {
u8 HeartPeriod; //秒
u8 HeartErrCntMax; //次
u8 HeartTimeout; //秒
u16 SignInPeriod; //分钟
} StructTCUCommuParam;
extern StructTCUCommuStatus TCUCommuStatus; extern StructTCUCommuStatus TCUCommuStatus;
extern StructTCUCommuStatus TCUCommuStatus_B; extern StructTCUCommuStatus TCUCommuStatus_B;
extern void TCUComm(void const *argument); extern void TCUComm(void const * argument);
#endif #endif
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
#include "Thd_TcuControl.h" #include "Thd_TcuControl.h"
StructTCUCtrl TCUCtrl; StructTCUCtrl TCUCtrl;
u32 PlugToChgTick = 0;
u32 PlugToChgTick_B = 0;
StructTCUChgRecd TCUCurChgRecd = {0}; StructTCUChgRecd TCUCurChgRecd = {0};
StructTCUChgRecd TCUCurChgRecd_B = {0}; StructTCUChgRecd TCUCurChgRecd_B = {0};
...@@ -83,6 +84,11 @@ void TCUProPrstart(StructTCUCtrl *pLcdCtrl) ...@@ -83,6 +84,11 @@ void TCUProPrstart(StructTCUCtrl *pLcdCtrl)
if(TCUCurChgRecd.StarChgResult== 1)//允许启动 if(TCUCurChgRecd.StarChgResult== 1)//允许启动
{ {
TCUCurChgRecd.TCUChargeEnable = 1; TCUCurChgRecd.TCUChargeEnable = 1;
if(StartMeg_A.PlugToChgFlag)
{
TCUCurChgRecd.TCUChargeEnable = 2;
PlugToChgTick = GetSystemTick();
}
pLcdCtrl->CurScreen =eLcdPro_TCUBuildComm; pLcdCtrl->CurScreen =eLcdPro_TCUBuildComm;
TCUCurChgRecd.StarChgResult= 0; TCUCurChgRecd.StarChgResult= 0;
} }
...@@ -103,6 +109,11 @@ void TCUProPrstart_B(StructTCUCtrl *pLcdCtrl) ...@@ -103,6 +109,11 @@ void TCUProPrstart_B(StructTCUCtrl *pLcdCtrl)
if(TCUCurChgRecd_B.StarChgResult== 1)//允许启动 if(TCUCurChgRecd_B.StarChgResult== 1)//允许启动
{ {
TCUCurChgRecd_B.TCUChargeEnable = 1; TCUCurChgRecd_B.TCUChargeEnable = 1;
if(StartMeg_B.PlugToChgFlag)
{
TCUCurChgRecd_B.TCUChargeEnable = 2;
PlugToChgTick_B = GetSystemTick();
}
pLcdCtrl->CurScreen = eLcdPro_TCUBuildComm_B; pLcdCtrl->CurScreen = eLcdPro_TCUBuildComm_B;
TCUCurChgRecd_B.StarChgResult= 0; TCUCurChgRecd_B.StarChgResult= 0;
} }
...@@ -138,7 +149,21 @@ void TCUBuildComm(StructTCUCtrl *pLcdCtrl) ...@@ -138,7 +149,21 @@ void TCUBuildComm(StructTCUCtrl *pLcdCtrl)
TCUCurChgRecd.TCUChgStarCompNotetrl =1;//开始完成帧发送标志 TCUCurChgRecd.TCUChgStarCompNotetrl =1;//开始完成帧发送标志
pLcdCtrl->CurScreen = GetTCUProcess(eLcdPro_TCUMainMenu); pLcdCtrl->CurScreen = GetTCUProcess(eLcdPro_TCUMainMenu);
pLcdCtrl->Param = 0; pLcdCtrl->Param = 0;
break; break;
/*case eChgPro_ChgRecognize:
case eChgPro_ChgRecognizeEx:
if(GetSystemTick()- PlugToChgTick >= 30 *1000)
{
TCUCurChgRecd.TCUStartCompresult = 2;//失败
TCUCurChgRecd.TCUChgStarCompNotetrl =1;//开始完成帧发送标志
pLcdCtrl->CurScreen = GetTCUProcess(eLcdPro_TCUMainMenu);
pLcdCtrl->Param = 0;
TCUCurChgRecd.TCUChargeEnable = 0;
TCUCommuStatus.ErrData.Value.verificationAck = 1;
TCUCurChgRecd.VehicleVerification = 0;
TCUCommuStatus.ConEMSendFlag = 1; //错误帧发送
}
break;*/
default: default:
break; break;
} }
...@@ -168,6 +193,17 @@ void TCUBuildComm_B(StructTCUCtrl *pLcdCtrl) ...@@ -168,6 +193,17 @@ void TCUBuildComm_B(StructTCUCtrl *pLcdCtrl)
pLcdCtrl->CurScreen = GetTCUProcess(eLcdPro_TCUMainMenu); pLcdCtrl->CurScreen = GetTCUProcess(eLcdPro_TCUMainMenu);
pLcdCtrl->Param = 0; pLcdCtrl->Param = 0;
break; break;
/*case eChgPro_ChgRecognize:
case eChgPro_ChgRecognizeEx:
if(GetSystemTick()- PlugToChgTick_B >= 30 *1000)
{
TCUCurChgRecd_B.TCUStartCompresult = 2;//失败
TCUCurChgRecd_B.TCUChgStarCompNotetrl =1;//开始完成帧发送标志
pLcdCtrl->CurScreen = GetTCUProcess(eLcdPro_TCUMainMenu);
pLcdCtrl->Param = 0;
TCUCommuStatus_B.ErrData.Value.verificationAck = 1;
}
break;*/
default: default:
break; break;
} }
......
...@@ -63,6 +63,8 @@ typedef struct{ ...@@ -63,6 +63,8 @@ typedef struct{
u8 TCUChgStopNotetrl;//停机标识 u8 TCUChgStopNotetrl;//停机标识
u8 TCUChgStopCompNotetrl; //充电开始状态上传 0不需要发送 1等待发送 2已发送 3已回复 u8 TCUChgStopCompNotetrl; //充电开始状态上传 0不需要发送 1等待发送 2已发送 3已回复
u8 VehicleVerification; //车辆验证
}StructTCUChgRecd; }StructTCUChgRecd;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论