提交 89661e88 作者: wysheng

修复TCU多包发送,修复上报BMS错误,修复状态长度

上级 f76994c6
...@@ -529,10 +529,20 @@ void TCUMultiPackSendMsg(u8 * pfram, u16 len, EnumTCUCommPgn cmd, u8 Prio, u8 ad ...@@ -529,10 +529,20 @@ void TCUMultiPackSendMsg(u8 * pfram, u16 len, EnumTCUCommPgn cmd, u8 Prio, u8 ad
else if (i == ((len + 3 + 2) / 7 + 1)) //最后一包 else if (i == ((len + 3 + 2) / 7 + 1)) //最后一包
{ {
FrameSend.Data[0] = i; FrameSend.Data[0] = i;
memcpy(&FrameSend.Data[1], &pfram[lenFlag], len - lenFlag); if(len >= lenFlag)
FrameSend.Data[len - lenFlag] = (u8)checkSum; {
FrameSend.Data[len - lenFlag + 1] = (u8) (checkSum >> 8); memcpy(&FrameSend.Data[1], &pfram[lenFlag], len - lenFlag + 1);
memset(&FrameSend.Data[len - lenFlag + 1 + 1], 0x00, 6 - len + lenFlag); FrameSend.Data[len - lenFlag+2] = (u8)checkSum;
FrameSend.Data[len - lenFlag + 3] = (u8) (checkSum >> 8);
memset(&FrameSend.Data[len - lenFlag + 4], 0x00, 4 - len + lenFlag);
}
else
{
FrameSend.Data[1] = (u8)checkSum;
FrameSend.Data[2] = (u8) (checkSum >> 8);
memset(&FrameSend.Data[3], 0x00, 5);
}
} }
else else
{ {
...@@ -1964,7 +1974,7 @@ void InformationReporting_22_A(void) ...@@ -1964,7 +1974,7 @@ void InformationReporting_22_A(void)
(0 != CemMsg.Cem.Value.Bsd)) && (TCUCurChgRecd.TCUChargeEnable == 1)) (0 != CemMsg.Cem.Value.Bsd)) && (TCUCurChgRecd.TCUChargeEnable == 1))
InformainReport_A.InfRe.BMSComm = 01; InformainReport_A.InfRe.BMSComm = 01;
else else
InformainReport_A.InfRe.BMSComm = 01; InformainReport_A.InfRe.BMSComm = 00;
InformainReport_A.InfRe.InVoltHi = 00; InformainReport_A.InfRe.InVoltHi = 00;
InformainReport_A.InfRe.InVoltlo = 00; InformainReport_A.InfRe.InVoltlo = 00;
...@@ -2080,7 +2090,7 @@ void InformationReporting_22_B(void) ...@@ -2080,7 +2090,7 @@ void InformationReporting_22_B(void)
(0 != CemMsg_B.Cem.Value.Bsd)) && (TCUCurChgRecd_B.TCUChargeEnable == 1)) (0 != CemMsg_B.Cem.Value.Bsd)) && (TCUCurChgRecd_B.TCUChargeEnable == 1))
InformainReport_B.InfRe.BMSComm = 01; InformainReport_B.InfRe.BMSComm = 01;
else else
InformainReport_B.InfRe.BMSComm = 01; InformainReport_B.InfRe.BMSComm = 00;
InformainReport_B.InfRe.InVoltHi = 00; InformainReport_B.InfRe.InVoltHi = 00;
InformainReport_B.InfRe.InVoltlo = 00; InformainReport_B.InfRe.InVoltlo = 00;
...@@ -2265,10 +2275,10 @@ void measuringReporting20_B(void) ...@@ -2265,10 +2275,10 @@ void measuringReporting20_B(void)
void ChgInfornQueryAck(void) void ChgInfornQueryAck(void)
{ {
u8 data[64]={0}; u8 len = 0;
u8 len = 0; u8 data[64]={0};
data[len++] = 0;//TCUCommuStatus.ChgNum; data[len++] = 0;
memcpy(&data[len], TCUControlInfo.ManufacturerCode, 4); memcpy(&data[len], TCUControlInfo.ManufacturerCode, 4);
len += 4; len += 4;
memcpy(&data[len], TCUControlInfo.DeviceModel, 2); memcpy(&data[len], TCUControlInfo.DeviceModel, 2);
...@@ -2281,12 +2291,10 @@ void ChgInfornQueryAck(void) ...@@ -2281,12 +2291,10 @@ void ChgInfornQueryAck(void)
len += 4; len += 4;
data[len++] = TCUControlInfo.BmsVersion; data[len++] = TCUControlInfo.BmsVersion;
data[len++] = (u8) data[len++] = (u8)TCUControlInfo.DcMaxVolt;
TCUControlInfo.DcMaxVolt; data[len++] = (u8)(TCUControlInfo.DcMaxVolt >> 8);
data[len++] = (u8) (TCUControlInfo.DcMaxVolt >> 8); data[len++] = (u8)TCUControlInfo.DcMinVolt;
data[len++] = (u8) data[len++] = (u8)(TCUControlInfo.DcMinVolt >> 8);
TCUControlInfo.DcMinVolt;
data[len++] = (u8) (TCUControlInfo.DcMinVolt >> 8);
data[len++] = (u8) (4000 - TCUControlInfo.DcMaxCurrt); data[len++] = (u8) (4000 - TCUControlInfo.DcMaxCurrt);
data[len++] = (u8) ((4000 - TCUControlInfo.DcMaxCurrt) >> 8); data[len++] = (u8) ((4000 - TCUControlInfo.DcMaxCurrt) >> 8);
......
...@@ -879,9 +879,9 @@ void SendStatus(void) ...@@ -879,9 +879,9 @@ void SendStatus(void)
ChgStutusSendTick = GetSystemTick(); ChgStutusSendTick = GetSystemTick();
data[0] = 0; data[0] = 0;
data[1] = TcuGetChgStatus(); data[1] = TcuGetChgStatus();
TCUSinglePackSendMsg(data, 6, eCmd_status, 4,ChargerCont1939Addr); TCUSinglePackSendMsg(data, 8, eCmd_status, 4,ChargerCont1939Addr);
data[1] = TcuGetChgStatus_B(); data[1] = TcuGetChgStatus_B();
TCUSinglePackSendMsg(data, 6, eCmd_status, 4,ChargerCont1939Addr_B); TCUSinglePackSendMsg(data, 8, eCmd_status, 4,ChargerCont1939Addr_B);
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论