提交 f76994c6 作者: wysheng

完善 充电桩状态信息帧

上级 d1d07ea1
......@@ -714,19 +714,173 @@ void TCUCurChgRecordInterface_B(void)
}
}
u8 TcuGetChgStatus(void)
{
u8 status = 0;
static u8 old_status = 0;
if(eSwSta_Off == CcStatusRead())
{
status = 0x00;
}
else if(old_status == 0)
{
status = 0x01;
}
if(ChargeCtrl.CurProcess == eChgPro_ShakeHand)
{
status = 0x02;
}
else if(ChargeCtrl.CurProcess == eChgPro_ImdCheck)
{
status = 0x03;
}
else if((ChargeCtrl.CurProcess == eChgPro_ChgRecognizeEx) \
||(ChargeCtrl.CurProcess == eChgPro_ChgRecognize))
{
status = 0x04;
}
else if(ChargeCtrl.CurProcess == eChgPro_ChgConfigure)
{
status = 0x05;
}
else if((ChargeCtrl.CurProcess == eChgPro_WaitBmsReady)\
||(ChargeCtrl.CurProcess == eChgPro_WaitPillarReady)\
||(ChargeCtrl.CurProcess == eChgPro_ChgStart))
{
status = 0x06;
}
else if(ChargeCtrl.CurProcess == eChgPro_ChgRun)
{
status = 0x07;
}
else if(ChargeCtrl.CurProcess == eChgPro_ChgBreak)
{
status = 0x08;
}
else if((ChargeCtrl.CurProcess == eChgPro_CommBreak)\
||(ChargeCtrl.CurProcess == eChgPro_CommError))
{
status = 0x09;
}
else if((ChargeCtrl.CurProcess == eChgPro_ChgIdle)\
&& (old_status == 0x09))
{
status = 0x0a;
}
else if(ChargeCtrl.CurProcess == eChgPro_ChgStop)
{
status = 0x0b;
}
else if((ChargeCtrl.CurProcess == eChgPro_ChgIdle)\
&& (old_status == 0x0b))
{
status = 0x0b;
}
old_status = status;
return status;
}
u8 TcuGetChgStatus_B(void)
{
/*
00H:车辆未连接
01H:车辆已连接
02H:参数握手阶段
03H:绝缘监测阶段
04H:参数辨识阶段
05H:参数配置阶段
06H:预充电阶段
07H:正式充电阶段
08H:充电暂停
09H:充电停止中
0AH:充电停止完成
0BH:充电完成
*/
u8 status = 0;
static u8 old_status = 0;
if(eSwSta_Off == CcStatusRead_B())
{
status = 0x00;
}
else if(old_status == 0)
{
status = 0x01;
}
if(ChargeCtrl_B.CurProcess == eChgPro_B_ShakeHand)
{
status = 0x02;
}
else if(ChargeCtrl_B.CurProcess == eChgPro_B_ImdCheck)
{
status = 0x03;
}
else if((ChargeCtrl_B.CurProcess == eChgPro_B_ChgRecognizeEx) \
||(ChargeCtrl_B.CurProcess == eChgPro_B_ChgRecognize))
{
status = 0x04;
}
else if(ChargeCtrl_B.CurProcess == eChgPro_B_ChgConfigure)
{
status = 0x05;
}
else if((ChargeCtrl_B.CurProcess == eChgPro_B_WaitBmsReady)\
||(ChargeCtrl_B.CurProcess == eChgPro_B_WaitPillarReady)\
||(ChargeCtrl_B.CurProcess == eChgPro_B_ChgStart))
{
status = 0x06;
}
else if(ChargeCtrl_B.CurProcess == eChgPro_B_ChgRun)
{
status = 0x07;
}
else if(ChargeCtrl_B.CurProcess == eChgPro_B_ChgBreak)
{
status = 0x08;
}
else if((ChargeCtrl_B.CurProcess == eChgPro_B_CommBreak)\
||(ChargeCtrl_B.CurProcess == eChgPro_B_CommError))
{
status = 0x09;
}
else if((ChargeCtrl_B.CurProcess == eChgPro_B_ChgIdle)\
&& (old_status == 0x09))
{
status = 0x0a;
}
else if(ChargeCtrl_B.CurProcess == eChgPro_B_ChgStop)
{
status = 0x0b;
}
else if((ChargeCtrl_B.CurProcess == eChgPro_B_ChgIdle)\
&& (old_status == 0x0b))
{
status = 0x0b;
}
old_status = status;
return status;
}
void SendStatus(void)
{
static u32 ChgStutusSendTick = 0;
u8 data[8] = {0};
if (TCUCommuStatus.VerChkVaild == 0) //版本检验未完成不发送
if (TCUCommuStatus.ConnectFlag == CONNECT_TIMEOUT)
return;
if ((GetSystemTick() -ChgStutusSendTick) > (500))
{
ChgStutusSendTick = GetSystemTick();
data[0] = 0;
data[1] = ChargeCtrl.CurProcess; //待完善 04/29
data[1] = TcuGetChgStatus();
TCUSinglePackSendMsg(data, 6, eCmd_status, 4,ChargerCont1939Addr);
data[1] = TcuGetChgStatus_B();
TCUSinglePackSendMsg(data, 6, eCmd_status, 4,ChargerCont1939Addr_B);
}
}
......@@ -755,7 +909,7 @@ void TCULinkProcess(void) //心跳帧处理
CommutionConfigurationStage(); //配置阶段
CommutionRunStage(); //运行阶段
ConEMSend(); //ab超时发送逻辑
SendStatus();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论