|
@@ -55,9 +55,15 @@ float _cur_1 = 0;
|
|
|
float _pow_2 = 0;
|
|
|
float _cur_2 = 0;
|
|
|
|
|
|
+float _outVol_1 = 0;
|
|
|
+float _outCur_1 = 0;
|
|
|
+float _outVol_2 = 0;
|
|
|
+float _outCur_2 = 0;
|
|
|
+
|
|
|
// 限制最大充電電壓,因應不同 type 槍線來限制
|
|
|
-// Chademo : 500V, GB : 750, CCS : 950V
|
|
|
-//TODO: change maximum charging voltage by connector type
|
|
|
+// Chademo : 500V, 125A,
|
|
|
+// GB : 750, 120A
|
|
|
+// CCS : 950V, 120A
|
|
|
float maxChargingVol[2] = { 9500, 9500 }; // 限制最大充電電壓,如依照模塊則填上 0
|
|
|
// 限制最大充電電流與能量透過 Web
|
|
|
float maxChargingCur[2] = { 600, 600 }; // 限制最大充電電流,如依照模塊則填上 0
|
|
@@ -2833,30 +2839,27 @@ void CANReceiver()
|
|
|
break;
|
|
|
case ACK_GET_MISCELLANEOUS_INFO:
|
|
|
{
|
|
|
+ _chargingData[targetGun]->GunLocked = frame.data[0];
|
|
|
+ _chargingData[targetGun]->PilotVoltage = (float)(-120 + frame.data[3]) / 10;
|
|
|
+
|
|
|
if (_chargingData[targetGun]->Type == _Type_Chademo)
|
|
|
{
|
|
|
- _chargingData[targetGun]->GunLocked = frame.data[0];
|
|
|
ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].ConnectorTemperatureP = frame.data[1];
|
|
|
ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].ConnectorTemperatureN = frame.data[2];
|
|
|
- _chargingData[targetGun]->PilotVoltage = (float)(-120 + frame.data[3]) / 10;
|
|
|
ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].EvboardStatus = frame.data[7];
|
|
|
}
|
|
|
else if (_chargingData[targetGun]->Type == _Type_GB)
|
|
|
{
|
|
|
- _chargingData[targetGun]->GunLocked = frame.data[0];
|
|
|
ShmGBTData->evse[_chargingData[targetGun]->type_index].ConnectorTemperatureP = frame.data[1];
|
|
|
ShmGBTData->evse[_chargingData[targetGun]->type_index].ConnectorTemperatureN = frame.data[2];
|
|
|
- _chargingData[targetGun]->PilotVoltage = (float)(-120 + frame.data[3]) / 10;
|
|
|
ShmGBTData->evse[_chargingData[targetGun]->type_index].EvboardStatus = frame.data[7];
|
|
|
}
|
|
|
else if (_chargingData[targetGun]->Type == _Type_CCS_2)
|
|
|
{
|
|
|
if (ShmCcsData->CommProtocol == 0x01)
|
|
|
{
|
|
|
- _chargingData[targetGun]->GunLocked = frame.data[0];
|
|
|
//ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index]. .ConnectorTemperatureP = frame.data[1];
|
|
|
//ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index]. .ConnectorTemperatureN = frame.data[2];
|
|
|
- _chargingData[targetGun]->PilotVoltage = (float)(-120 + frame.data[3]) / 10;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2915,17 +2918,23 @@ void SetPresentChargingOutputPower(struct ChargingInfoData *chargingData_1, stru
|
|
|
float vol1 = 0, cur1 = 0;
|
|
|
float vol2 = 0, cur2 = 0;
|
|
|
|
|
|
- //PRINTF_FUNC("f vol - 0 = %f \n", chargingData_1->FireChargingVoltage);
|
|
|
- //PRINTF_FUNC("f cur - 0 = %f \n", chargingData_1->PresentChargingCurrent);
|
|
|
- //PRINTF_FUNC("***********************f vol - 1 = %f \n", chargingData_2->FireChargingVoltage);
|
|
|
- //PRINTF_FUNC("***********************f cur - 1 = %f \n", chargingData_2->PresentChargingCurrent);
|
|
|
-
|
|
|
vol1 = chargingData_1->FireChargingVoltage;
|
|
|
cur1 = (chargingData_1->PresentChargingCurrent * 10);
|
|
|
|
|
|
vol2 = chargingData_2->FireChargingVoltage;
|
|
|
cur2 = (chargingData_2->PresentChargingCurrent * 10);
|
|
|
|
|
|
+ if (_outVol_1 != vol1 ||
|
|
|
+ _outCur_1 != cur1 ||
|
|
|
+ _outVol_2 != vol2 ||
|
|
|
+ _outCur_2 != cur2)
|
|
|
+ {
|
|
|
+ PRINTF_FUNC("G1 -> Output Vol = %f, Output Cur = %f -- G2 -> Output Vol = %f, Output Cur = %f \n",
|
|
|
+ vol1, cur1, vol2, cur2);
|
|
|
+
|
|
|
+ _outVol_1 = vol1; _outCur_1 = cur1; _outVol_2 = vol2; _outCur_2 = cur2;
|
|
|
+ }
|
|
|
+
|
|
|
SetPresentOutputPower(vol1, cur1, vol2, cur2);
|
|
|
}
|
|
|
|
|
@@ -3206,13 +3215,6 @@ int main(int argc, char *argv[])
|
|
|
{
|
|
|
case S_IDLE:
|
|
|
case S_RESERVATION:
|
|
|
- _chargingData[_index]->PresentChargedEnergy = 0;
|
|
|
- _chargingData[_index]->PresentChargingPower = 0;
|
|
|
- _chargingData[_index]->GroundFaultStatus = GFD_WAIT;
|
|
|
- _chargingData[_index]->StopChargeFlag = NO;
|
|
|
- _chargingData[_index]->ChargingFee = 0.0;
|
|
|
- chargingTime[_index] = 0;
|
|
|
-
|
|
|
if (_chargingData[_index]->Type == _Type_Chademo)
|
|
|
{
|
|
|
ClearAbnormalStatus_Chademo(_index);
|
|
@@ -3228,6 +3230,19 @@ int main(int argc, char *argv[])
|
|
|
|
|
|
if (priorityLow == 1)
|
|
|
{
|
|
|
+ _chargingData[_index]->PresentChargedEnergy = 0;
|
|
|
+ _chargingData[_index]->PresentChargingPower = 0;
|
|
|
+ _chargingData[_index]->GroundFaultStatus = GFD_WAIT;
|
|
|
+ _chargingData[_index]->RealRatingPower = 0;
|
|
|
+ _chargingData[_index]->StopChargeFlag = NO;
|
|
|
+ _chargingData[_index]->ChargingFee = 0.0;
|
|
|
+ _chargingData[_index]->EvBatterySoc = 0;
|
|
|
+ _chargingData[_index]->PresentChargingVoltage = 0;
|
|
|
+ _chargingData[_index]->PresentChargingCurrent = 0;
|
|
|
+ _chargingData[_index]->EvBatteryMaxVoltage = 0;
|
|
|
+
|
|
|
+ chargingTime[_index] = 0;
|
|
|
+
|
|
|
maxChargingPow = (ShmSysConfigAndInfo->SysConfig.MaxChargingPower * 10);
|
|
|
}
|
|
|
break;
|