|
@@ -2712,15 +2712,20 @@ void CANReceiver()
|
|
|
break;
|
|
|
case ACK_EV_FW_VERSION:
|
|
|
{
|
|
|
+ byte ver[16];
|
|
|
+
|
|
|
+ memset(ver, 0, sizeof(ver));
|
|
|
if (_chargingData[targetGun]->Type == _Type_Chademo)
|
|
|
{
|
|
|
- memcpy(ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].version, frame.data, frame.can_dlc);
|
|
|
+ memcpy(ver, frame.data, frame.can_dlc);
|
|
|
+ memcpy(ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
|
ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
|
PRINTF_FUNC("chademo ver. : %s\n", ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].version);
|
|
|
}
|
|
|
else if (_chargingData[targetGun]->Type == _Type_GB)
|
|
|
{
|
|
|
- memcpy(ShmGBTData->evse[_chargingData[targetGun]->type_index].version, frame.data, ARRAY_SIZE(frame.data));
|
|
|
+ memcpy(ver, frame.data, frame.can_dlc);
|
|
|
+ memcpy(ShmGBTData->evse[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
|
ShmGBTData->evse[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
|
PRINTF_FUNC("gbt ver. : %s\n", ShmGBTData->evse[_chargingData[targetGun]->type_index].version);
|
|
|
}
|
|
@@ -2728,7 +2733,18 @@ void CANReceiver()
|
|
|
{
|
|
|
if (ShmCcsData->CommProtocol == 0x01)
|
|
|
{
|
|
|
- memcpy(&ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].version, frame.data, frame.can_dlc);
|
|
|
+ for (byte _vCount = 0, _vPoint = 0; _vCount < frame.can_dlc; _vCount++)
|
|
|
+ {
|
|
|
+ if (_vCount % 2 == 0 && _vCount != 0)
|
|
|
+ {
|
|
|
+ ver[_vCount + _vPoint] = 0x2E;
|
|
|
+ _vPoint++;
|
|
|
+ }
|
|
|
+
|
|
|
+ ver[_vCount + _vPoint] = frame.data[_vCount];
|
|
|
+ }
|
|
|
+
|
|
|
+ memcpy(&ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
|
ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
|
PRINTF_FUNC("CCS FW = %s \n", ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].version);
|
|
|
}
|
|
@@ -2737,12 +2753,12 @@ void CANReceiver()
|
|
|
if (targetGun == 0)
|
|
|
{
|
|
|
memset(ShmSysConfigAndInfo->SysInfo.Connector1FwRev, 0, sizeof(ShmSysConfigAndInfo->SysInfo.Connector1FwRev));
|
|
|
- memcpy(ShmSysConfigAndInfo->SysInfo.Connector1FwRev, frame.data, frame.can_dlc);
|
|
|
+ memcpy(ShmSysConfigAndInfo->SysInfo.Connector1FwRev, ver, ARRAY_SIZE(ver));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
memset(ShmSysConfigAndInfo->SysInfo.Connector2FwRev, 0, sizeof(ShmSysConfigAndInfo->SysInfo.Connector2FwRev));
|
|
|
- memcpy(ShmSysConfigAndInfo->SysInfo.Connector2FwRev, frame.data, frame.can_dlc);
|
|
|
+ memcpy(ShmSysConfigAndInfo->SysInfo.Connector2FwRev, ver, ARRAY_SIZE(ver));
|
|
|
}
|
|
|
}
|
|
|
break;
|