|
@@ -54,10 +54,6 @@ struct CHAdeMOData *ShmCHAdeMOData;
|
|
struct GBTData *ShmGBTData;
|
|
struct GBTData *ShmGBTData;
|
|
struct CcsData *ShmCcsData;
|
|
struct CcsData *ShmCcsData;
|
|
struct PsuData *ShmPsuData;
|
|
struct PsuData *ShmPsuData;
|
|
-#if defined METER_ENABLE //DS60-120 add
|
|
|
|
-struct MeterInformation *ShmCsuMeterData;
|
|
|
|
-struct DcCommonInformation *ShmDcCommonData;
|
|
|
|
-#endif //defined METER_ENABLE
|
|
|
|
|
|
|
|
byte gun_count;
|
|
byte gun_count;
|
|
int chargingTime[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY];
|
|
int chargingTime[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY];
|
|
@@ -126,15 +122,13 @@ struct Ev_Board_Cmd Ev_Cmd = {
|
|
|
|
|
|
unsigned char mask_table[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
|
|
unsigned char mask_table[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
|
|
|
|
|
|
-void PRINTF_FUNC(char *string, ...);
|
|
|
|
-
|
|
|
|
void GetMaxVolAndCurMethod(byte index, float *vol, float *cur);
|
|
void GetMaxVolAndCurMethod(byte index, float *vol, float *cur);
|
|
void GetMaxPowerMethod(byte index, float *pow);
|
|
void GetMaxPowerMethod(byte index, float *pow);
|
|
unsigned long GetTimeoutValue(struct timeval _sour_time);
|
|
unsigned long GetTimeoutValue(struct timeval _sour_time);
|
|
|
|
|
|
-#define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
|
-#define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
|
-#define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
|
|
|
+#define log_info(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
|
+#define log_warn(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
|
+#define log_error(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
|
|
|
unsigned long GetTimeoutValue(struct timeval _sour_time)
|
|
unsigned long GetTimeoutValue(struct timeval _sour_time)
|
|
{
|
|
{
|
|
@@ -186,17 +180,6 @@ int DiffTimeb(struct timeb ST, struct timeb ET)
|
|
return (StopTime - StartTime) * 1000 + ET.millitm - ST.millitm;
|
|
return (StopTime - StartTime) * 1000 + ET.millitm - ST.millitm;
|
|
}
|
|
}
|
|
|
|
|
|
-void PRINTF_FUNC(char *string, ...)
|
|
|
|
-{
|
|
|
|
- va_list args;
|
|
|
|
- char buffer[4096];
|
|
|
|
- va_start(args, string);
|
|
|
|
- vsnprintf(buffer, sizeof(buffer), string, args);
|
|
|
|
- va_end(args);
|
|
|
|
-
|
|
|
|
- DEBUG_INFO("%s \n", buffer);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
//=================================
|
|
//=================================
|
|
// Common routine
|
|
// Common routine
|
|
//=================================
|
|
//=================================
|
|
@@ -283,20 +266,6 @@ int InitShareMemory()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-#if defined METER_ENABLE //DS60-120 add
|
|
|
|
- if ((MeterSMId = shmget(ShmCsuMeterKey, sizeof(struct MeterInformation), IPC_CREAT | 0777)) < 0) {
|
|
|
|
- return FAIL;
|
|
|
|
- } else if ((ShmCsuMeterData = shmat(MeterSMId, NULL, 0)) == (void *) - 1) {
|
|
|
|
- return FAIL;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if ((MeterSMId = shmget(ShmCommonKey, sizeof(struct DcCommonInformation), IPC_CREAT | 0777)) < 0) {
|
|
|
|
- return FAIL;
|
|
|
|
- } else if ((ShmDcCommonData = shmat(MeterSMId, NULL, 0)) == (void *) - 1) {
|
|
|
|
- return FAIL;
|
|
|
|
- }
|
|
|
|
-#endif //define METER_ENABLE
|
|
|
|
-
|
|
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -320,19 +289,19 @@ int InitCanBus()
|
|
tv.tv_usec = 10000;
|
|
tv.tv_usec = 10000;
|
|
if (setsockopt(s0, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(struct timeval)) < 0) {
|
|
if (setsockopt(s0, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(struct timeval)) < 0) {
|
|
#ifdef SystemLogMessage
|
|
#ifdef SystemLogMessage
|
|
- DEBUG_ERROR("Set SO_RCVTIMEO NG");
|
|
|
|
|
|
+ log_error("Set SO_RCVTIMEO NG");
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
nbytes = 40960;
|
|
nbytes = 40960;
|
|
if (setsockopt(s0, SOL_SOCKET, SO_RCVBUF, &nbytes, sizeof(int)) < 0) {
|
|
if (setsockopt(s0, SOL_SOCKET, SO_RCVBUF, &nbytes, sizeof(int)) < 0) {
|
|
#ifdef SystemLogMessage
|
|
#ifdef SystemLogMessage
|
|
- DEBUG_ERROR("Set SO_RCVBUF NG");
|
|
|
|
|
|
+ log_error("Set SO_RCVBUF NG");
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
nbytes = 40960;
|
|
nbytes = 40960;
|
|
if (setsockopt(s0, SOL_SOCKET, SO_SNDBUF, &nbytes, sizeof(int)) < 0) {
|
|
if (setsockopt(s0, SOL_SOCKET, SO_SNDBUF, &nbytes, sizeof(int)) < 0) {
|
|
#ifdef SystemLogMessage
|
|
#ifdef SystemLogMessage
|
|
- DEBUG_ERROR("Set SO_SNDBUF NG");
|
|
|
|
|
|
+ log_error("Set SO_SNDBUF NG");
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
@@ -390,21 +359,21 @@ void AddrAssignment(byte *data)
|
|
{
|
|
{
|
|
//DS60-120 add
|
|
//DS60-120 add
|
|
if (_chargingData[index - 1]->Type == _Type_Chademo) {
|
|
if (_chargingData[index - 1]->Type == _Type_Chademo) {
|
|
- PRINTF_FUNC("Set EV board info : (Chademo) TargetAddr = %d \n", index);
|
|
|
|
|
|
+ log_info("Set EV board info : (Chademo) TargetAddr = %d \n", index);
|
|
} else if (_chargingData[index - 1]->Type == _Type_CCS_2) {
|
|
} else if (_chargingData[index - 1]->Type == _Type_CCS_2) {
|
|
- PRINTF_FUNC("Set EV board info : (CCS) TargetAddr = %d \n", index);
|
|
|
|
|
|
+ log_info("Set EV board info : (CCS) TargetAddr = %d \n", index);
|
|
} else if (_chargingData[index - 1]->Type == _Type_GB) {
|
|
} else if (_chargingData[index - 1]->Type == _Type_GB) {
|
|
- PRINTF_FUNC("Set EV board info : (GB) TargetAddr = %d \n", index);
|
|
|
|
|
|
+ log_info("Set EV board info : (GB) TargetAddr = %d \n", index);
|
|
}
|
|
}
|
|
- //PRINTF_FUNC("EV board id = %x \n", index); //DS60-120 remove
|
|
|
|
|
|
+ //log_info("EV board id = %x \n", index); //DS60-120 remove
|
|
|
|
|
|
-// PRINTF_FUNC("target_number[0] = %x \n", target_number[0]);
|
|
|
|
-// PRINTF_FUNC("target_number[1] = %x \n", target_number[1]);
|
|
|
|
-// PRINTF_FUNC("target_number[2] = %x \n", target_number[2]);
|
|
|
|
-// PRINTF_FUNC("target_number[3] = %x \n", target_number[3]);
|
|
|
|
-// PRINTF_FUNC("target_number[4] = %x \n", target_number[4]);
|
|
|
|
|
|
+// log_info("target_number[0] = %x \n", target_number[0]);
|
|
|
|
+// log_info("target_number[1] = %x \n", target_number[1]);
|
|
|
|
+// log_info("target_number[2] = %x \n", target_number[2]);
|
|
|
|
+// log_info("target_number[3] = %x \n", target_number[3]);
|
|
|
|
+// log_info("target_number[4] = %x \n", target_number[4]);
|
|
|
|
|
|
- PRINTF_FUNC("SetTargetAddr = %d, type = %d \n", index, _chargingData[index - 1]->Type);
|
|
|
|
|
|
+ log_info("SetTargetAddr = %d, type = %d \n", index, _chargingData[index - 1]->Type);
|
|
SetTargetAddr(target_number, index);
|
|
SetTargetAddr(target_number, index);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -595,7 +564,7 @@ void ClearAbnormalStatus_Chademo(byte gun_index)
|
|
if (isCleanCheck) {
|
|
if (isCleanCheck) {
|
|
for (byte index = 0; index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; index++) {
|
|
for (byte index = 0; index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; index++) {
|
|
if (index != gun_index || ShmSysConfigAndInfo->SysConfig.TotalConnectorCount == 1) {
|
|
if (index != gun_index || ShmSysConfigAndInfo->SysConfig.TotalConnectorCount == 1) {
|
|
- PRINTF_FUNC("CHA clean error : index = %d, EvConnAlarmCode = %s, code = %s \n", index, _chargingData[index]->EvConnAlarmCode, code);
|
|
|
|
|
|
+ log_info("CHA clean error : index = %d, EvConnAlarmCode = %s, code = %s \n", index, _chargingData[index]->EvConnAlarmCode, code);
|
|
if (strncmp((char *)_chargingData[index]->EvConnAlarmCode, code, 6) != EQUAL) {
|
|
if (strncmp((char *)_chargingData[index]->EvConnAlarmCode, code, 6) != EQUAL) {
|
|
if (strncmp(code, "023700", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.ChademoEvCommFail = NO; }
|
|
if (strncmp(code, "023700", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.ChademoEvCommFail = NO; }
|
|
if (strncmp(code, "023704", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.ChademoBatteryMalfun = NO; }
|
|
if (strncmp(code, "023704", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.ChademoBatteryMalfun = NO; }
|
|
@@ -963,7 +932,7 @@ void ClearAbnormalStatus_GB(byte gun_index)
|
|
if (isCleanCheck) {
|
|
if (isCleanCheck) {
|
|
for (byte index = 0; index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; index++) {
|
|
for (byte index = 0; index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; index++) {
|
|
if (index != gun_index || ShmSysConfigAndInfo->SysConfig.TotalConnectorCount == 1) {
|
|
if (index != gun_index || ShmSysConfigAndInfo->SysConfig.TotalConnectorCount == 1) {
|
|
- PRINTF_FUNC("GBT clean error : index = %d, EvConnAlarmCode = %s, code = %s \n", index, _chargingData[index]->EvConnAlarmCode, code);
|
|
|
|
|
|
+ log_info("GBT clean error : index = %d, EvConnAlarmCode = %s, code = %s \n", index, _chargingData[index]->EvConnAlarmCode, code);
|
|
if (strncmp((char *)_chargingData[index]->EvConnAlarmCode, code, 6) != EQUAL) {
|
|
if (strncmp((char *)_chargingData[index]->EvConnAlarmCode, code, 6) != EQUAL) {
|
|
if (strncmp(code, "023702", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.GbEvCommFail = NO; }
|
|
if (strncmp(code, "023702", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.GbEvCommFail = NO; }
|
|
if (strncmp(code, "023900", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.ERROR_CODE_GBT_LOS_CC1 = NO; }
|
|
if (strncmp(code, "023900", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.ERROR_CODE_GBT_LOS_CC1 = NO; }
|
|
@@ -1772,7 +1741,7 @@ void ClearAbnormalStatus_CCS(byte gun_index)
|
|
if (isCleanCheck) {
|
|
if (isCleanCheck) {
|
|
for (byte index = 0; index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; index++) {
|
|
for (byte index = 0; index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; index++) {
|
|
if (index != gun_index || ShmSysConfigAndInfo->SysConfig.TotalConnectorCount == 1) {
|
|
if (index != gun_index || ShmSysConfigAndInfo->SysConfig.TotalConnectorCount == 1) {
|
|
- PRINTF_FUNC("CCS clean error : index = %d, EvConnAlarmCode = %s, code = %s \n", index, _chargingData[index]->EvConnAlarmCode, code);
|
|
|
|
|
|
+ log_info("CCS clean error : index = %d, EvConnAlarmCode = %s, code = %s \n", index, _chargingData[index]->EvConnAlarmCode, code);
|
|
if (strncmp((char *)_chargingData[index]->EvConnAlarmCode, code, 6) != EQUAL) {
|
|
if (strncmp((char *)_chargingData[index]->EvConnAlarmCode, code, 6) != EQUAL) {
|
|
if (strncmp(code, "012219", 6) == EQUAL) { ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemCcsOutputOVP = NO; }
|
|
if (strncmp(code, "012219", 6) == EQUAL) { ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemCcsOutputOVP = NO; }
|
|
if (strncmp(code, "023701", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.CcsEvCommFail = NO; }
|
|
if (strncmp(code, "023701", 6) == EQUAL) { ShmStatusCodeData->InfoCode.InfoEvents.bits.CcsEvCommFail = NO; }
|
|
@@ -1930,7 +1899,7 @@ bool AbnormalStopAnalysis(byte gun_index, byte *errCode)
|
|
char string[7];
|
|
char string[7];
|
|
sprintf(string, "%d%d%d%d%d%d", *(errCode + 0), *(errCode + 1), *(errCode + 2), *(errCode + 3), *(errCode + 4), *(errCode + 5));
|
|
sprintf(string, "%d%d%d%d%d%d", *(errCode + 0), *(errCode + 1), *(errCode + 2), *(errCode + 3), *(errCode + 4), *(errCode + 5));
|
|
|
|
|
|
- PRINTF_FUNC("NOTIFICATION_EV_STOP : Err Code = %s \n", string);
|
|
|
|
|
|
+ log_info("NOTIFICATION_EV_STOP : Err Code = %s \n", string);
|
|
//if (strncmp(string, "000000", 6) == EQUAL ||
|
|
//if (strncmp(string, "000000", 6) == EQUAL ||
|
|
// strncmp((char *)_chargingData[gun_index]->EvConnAlarmCode, "", 6) != EQUAL) {
|
|
// strncmp((char *)_chargingData[gun_index]->EvConnAlarmCode, "", 6) != EQUAL) {
|
|
// return;
|
|
// return;
|
|
@@ -1945,7 +1914,7 @@ bool AbnormalStopAnalysis(byte gun_index, byte *errCode)
|
|
}
|
|
}
|
|
|
|
|
|
memcpy(_chargingData[gun_index]->EvConnAlarmCode, string, 6);
|
|
memcpy(_chargingData[gun_index]->EvConnAlarmCode, string, 6);
|
|
- PRINTF_FUNC("NOTIFICATION_EV_STOP : EvConnAlarmCode = %s \n", _chargingData[gun_index]->EvConnAlarmCode);
|
|
|
|
|
|
+ log_info("NOTIFICATION_EV_STOP : EvConnAlarmCode = %s \n", _chargingData[gun_index]->EvConnAlarmCode);
|
|
//OVP error
|
|
//OVP error
|
|
if (strcmp(string, "012217") == EQUAL) { ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemChademoOutputOVP = YES; }
|
|
if (strcmp(string, "012217") == EQUAL) { ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemChademoOutputOVP = YES; }
|
|
if (strcmp(string, "012219") == EQUAL) { ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemCcsOutputOVP = YES; }
|
|
if (strcmp(string, "012219") == EQUAL) { ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemCcsOutputOVP = YES; }
|
|
@@ -2205,6 +2174,8 @@ void CANReceiver()
|
|
canRecPid = fork();
|
|
canRecPid = fork();
|
|
|
|
|
|
if (canRecPid > 0) {
|
|
if (canRecPid > 0) {
|
|
|
|
+ uint8_t temperatureP[2] = {0};
|
|
|
|
+ uint8_t temperatureN[2] = {0};
|
|
int nbytes;
|
|
int nbytes;
|
|
struct can_frame frame;
|
|
struct can_frame frame;
|
|
int intCmd;
|
|
int intCmd;
|
|
@@ -2221,7 +2192,7 @@ void CANReceiver()
|
|
isPass = true;
|
|
isPass = true;
|
|
for (byte _index = 0; _index < gun_count; _index++) {
|
|
for (byte _index = 0; _index < gun_count; _index++) {
|
|
if (!FindChargingInfoData(_index, &_chargingData[0])) {
|
|
if (!FindChargingInfoData(_index, &_chargingData[0])) {
|
|
- DEBUG_ERROR("EvComm (main) : FindChargingInfoData false \n");
|
|
|
|
|
|
+ log_error("EvComm (main) : FindChargingInfoData false \n");
|
|
isPass = false;
|
|
isPass = false;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -2241,14 +2212,13 @@ void CANReceiver()
|
|
for (byte _index = 0; _index < gun_count; _index++) {
|
|
for (byte _index = 0; _index < gun_count; _index++) {
|
|
if (GetTimeoutValue(_cmd_ack_timeout[_index]) >= 5000000) {
|
|
if (GetTimeoutValue(_cmd_ack_timeout[_index]) >= 5000000) {
|
|
// ACK timeout
|
|
// ACK timeout
|
|
- //PRINTF_FUNC("gun = %x, ack timeout \n", _index);
|
|
|
|
|
|
+ //log_info("gun = %x, ack timeout \n", _index);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
if (nbytes > 0) {
|
|
if (nbytes > 0) {
|
|
byte target;
|
|
byte target;
|
|
byte targetGun = 0x00;
|
|
byte targetGun = 0x00;
|
|
- byte findIndex = 0x00; //DS60-120 add
|
|
|
|
intCmd = (int) (frame.can_id & CAN_EFF_MASK);
|
|
intCmd = (int) (frame.can_id & CAN_EFF_MASK);
|
|
|
|
|
|
if (!isClearBuf) { //DS60-120 add
|
|
if (!isClearBuf) { //DS60-120 add
|
|
@@ -2256,43 +2226,26 @@ void CANReceiver()
|
|
}
|
|
}
|
|
|
|
|
|
if (intCmd == ADDRESS_REQ) {
|
|
if (intCmd == ADDRESS_REQ) {
|
|
-#if defined METER_ENABLE
|
|
|
|
- ShmDcCommonData->CcsVersion = _CCS_VERSION_CHECK_TAG_V013S0;
|
|
|
|
-#endif //defined METER_ENABLE
|
|
|
|
AddrAssignment(frame.data);
|
|
AddrAssignment(frame.data);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
+
|
|
intCmd = (int) (frame.can_id & CAN_EFF_MASK & 0xFFFFFF00);
|
|
intCmd = (int) (frame.can_id & CAN_EFF_MASK & 0xFFFFFF00);
|
|
|
|
|
|
target = ((byte) (frame.can_id & 0x000000FF)); // 0x01 or 0x02
|
|
target = ((byte) (frame.can_id & 0x000000FF)); // 0x01 or 0x02
|
|
|
|
|
|
for (byte _index = 0; _index < gun_count; _index++) { // 假設有找到回應的 Index
|
|
for (byte _index = 0; _index < gun_count; _index++) { // 假設有找到回應的 Index
|
|
- findIndex = target;
|
|
|
|
-#if defined METER_ENABLE
|
|
|
|
- if (gun_count == 1 &&
|
|
|
|
- _chargingData[_index]->Type == _Type_CCS_2 &&
|
|
|
|
- ShmDcCommonData->CcsVersion == _CCS_VERSION_CHECK_TAG_V015S0) {
|
|
|
|
- target -= 1;
|
|
|
|
- }
|
|
|
|
-#endif //defined METER_ENABLE
|
|
|
|
if (_chargingData[_index]->Evboard_id == target) {
|
|
if (_chargingData[_index]->Evboard_id == target) {
|
|
targetGun = _index;
|
|
targetGun = _index;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //PRINTF_FUNC("target = %d, %d, %d\r\n", target, _chargingData[targetGun]->Evboard_id, targetGun);
|
|
|
|
|
|
+ //log_info("target = %d, %d, %d\r\n", target, _chargingData[targetGun]->Evboard_id, targetGun);
|
|
|
|
|
|
if (targetGun < 0 || targetGun >= CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY) {
|
|
if (targetGun < 0 || targetGun >= CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY) {
|
|
- PRINTF_FUNC("EvComm (CANReceiver) : Target index = %x is < 0 or > QUANTITY \n", targetGun);
|
|
|
|
|
|
+ log_info("EvComm (CANReceiver) : Target index = %x is < 0 or > QUANTITY \n", targetGun);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
-#if defined METER_ENABLE
|
|
|
|
- else if (gun_count == 1 && targetGun == 0 && findIndex == 1 &&
|
|
|
|
- ShmDcCommonData->CcsVersion == _CCS_VERSION_CHECK_TAG_V015S0) {
|
|
|
|
- // 這樣的條件下~ 也是單槍 CCS 舊版本的狀況 : 因為舊版 CCS 不會 timeout, then send request id
|
|
|
|
- ShmDcCommonData->CcsVersion = _CCS_VERSION_CHECK_TAG_V013S0;
|
|
|
|
- }
|
|
|
|
-#endif //defined METER_ENABLE
|
|
|
|
|
|
|
|
if (intCmd == 256) {
|
|
if (intCmd == 256) {
|
|
continue;
|
|
continue;
|
|
@@ -2302,22 +2255,22 @@ void CANReceiver()
|
|
switch (intCmd) {
|
|
switch (intCmd) {
|
|
case NOTIFICATION_EV_STATUS: {
|
|
case NOTIFICATION_EV_STATUS: {
|
|
if (_chargingData[targetGun]->ConnectorPlugIn != frame.data[0]) {
|
|
if (_chargingData[targetGun]->ConnectorPlugIn != frame.data[0]) {
|
|
- //PRINTF_FUNC("index = %d, ConnectorPlugIn = %x, data[0] = %x \n", targetGun, _chargingData[targetGun]->ConnectorPlugIn, frame.data[0]);
|
|
|
|
|
|
+ //log_info("index = %d, ConnectorPlugIn = %x, data[0] = %x \n", targetGun, _chargingData[targetGun]->ConnectorPlugIn, frame.data[0]);
|
|
|
|
|
|
if (frame.data[0] == PLUG) {
|
|
if (frame.data[0] == PLUG) {
|
|
- PRINTF_FUNC("Conn %d, Plugin. \n", targetGun);
|
|
|
|
|
|
+ log_info("Conn %d, Plugin. \n", targetGun);
|
|
} else if (frame.data[0] == UNPLUG) {
|
|
} else if (frame.data[0] == UNPLUG) {
|
|
- PRINTF_FUNC("Conn %d, Unplug. \n", targetGun);
|
|
|
|
|
|
+ log_info("Conn %d, Unplug. \n", targetGun);
|
|
} else {
|
|
} else {
|
|
- PRINTF_FUNC("Conn %d, None Check. (%d) \n", targetGun, frame.data[0]);
|
|
|
|
|
|
+ log_info("Conn %d, None Check. (%d) \n", targetGun, frame.data[0]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
_chargingData[targetGun]->ConnectorPlugIn = frame.data[0];
|
|
_chargingData[targetGun]->ConnectorPlugIn = frame.data[0];
|
|
_chargingData[targetGun]->PilotVoltage = frame.data[1];
|
|
_chargingData[targetGun]->PilotVoltage = frame.data[1];
|
|
|
|
|
|
- //PRINTF_FUNC("index = %d, ConnectorPlugIn = %x, data[0] = %x \n", targetGun, _chargingData[targetGun]->ConnectorPlugIn, frame.data[0]);
|
|
|
|
- //PRINTF_FUNC("ConnectorPlugIn = %x \n", (-120 + frame.data[1]) / 10);
|
|
|
|
|
|
+ //log_info("index = %d, ConnectorPlugIn = %x, data[0] = %x \n", targetGun, _chargingData[targetGun]->ConnectorPlugIn, frame.data[0]);
|
|
|
|
+ //log_info("ConnectorPlugIn = %x \n", (-120 + frame.data[1]) / 10);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case ACK_EV_FW_VERSION: {
|
|
case ACK_EV_FW_VERSION: {
|
|
@@ -2328,12 +2281,12 @@ void CANReceiver()
|
|
memcpy(ver, frame.data, frame.can_dlc);
|
|
memcpy(ver, frame.data, frame.can_dlc);
|
|
memcpy(ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
memcpy(ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
- //PRINTF_FUNC("chademo ver. : %s\n", ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].version);
|
|
|
|
|
|
+ //log_info("chademo ver. : %s\n", ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].version);
|
|
} else if (_chargingData[targetGun]->Type == _Type_GB) {
|
|
} else if (_chargingData[targetGun]->Type == _Type_GB) {
|
|
memcpy(ver, frame.data, frame.can_dlc);
|
|
memcpy(ver, frame.data, frame.can_dlc);
|
|
memcpy(ShmGBTData->evse[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
memcpy(ShmGBTData->evse[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
ShmGBTData->evse[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
ShmGBTData->evse[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
- //PRINTF_FUNC("gbt ver. : %s\n", ShmGBTData->evse[_chargingData[targetGun]->type_index].version);
|
|
|
|
|
|
+ //log_info("gbt ver. : %s\n", ShmGBTData->evse[_chargingData[targetGun]->type_index].version);
|
|
} else if (_chargingData[targetGun]->Type == _Type_CCS_2) {
|
|
} else if (_chargingData[targetGun]->Type == _Type_CCS_2) {
|
|
if (ShmCcsData->CommProtocol == _CCS_COMM_V2GMessage_DIN70121) {
|
|
if (ShmCcsData->CommProtocol == _CCS_COMM_V2GMessage_DIN70121) {
|
|
memcpy(ver, frame.data, frame.can_dlc); //DS60-120 add
|
|
memcpy(ver, frame.data, frame.can_dlc); //DS60-120 add
|
|
@@ -2350,7 +2303,7 @@ void CANReceiver()
|
|
|
|
|
|
memcpy(&ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
memcpy(&ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].version, ver, ARRAY_SIZE(ver));
|
|
ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].SelfTest_Comp = PASS;
|
|
- //PRINTF_FUNC("CCS FW = %s \n", ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].version);
|
|
|
|
|
|
+ //log_info("CCS FW = %s \n", ShmCcsData->V2GMessage_DIN70121[_chargingData[targetGun]->type_index].version);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2364,7 +2317,7 @@ void CANReceiver()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case ACK_EV_HW_VERSION: {
|
|
case ACK_EV_HW_VERSION: {
|
|
- //PRINTF_FUNC("Get EV HW = %s \n", frame.data);
|
|
|
|
|
|
+ //log_info("Get EV HW = %s \n", frame.data);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case ACK_GET_OUTPUT_REQ: {
|
|
case ACK_GET_OUTPUT_REQ: {
|
|
@@ -2425,10 +2378,10 @@ void CANReceiver()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- //PRINTF_FUNC("EvBatterytargetVoltage = %f \n", _chargingData[targetGun]->EvBatterytargetVoltage);
|
|
|
|
- //PRINTF_FUNC("EvBatterytargetCurrent = %f \n", _chargingData[targetGun]->EvBatterytargetCurrent);
|
|
|
|
- //PRINTF_FUNC("BatteryVoltage = %d \n", ShmCHAdeMOData->ev[_chargingData[target]->type_index].TargetBatteryVoltage);
|
|
|
|
- //PRINTF_FUNC("CurrentRequest = %d \n", ShmCHAdeMOData->ev[_chargingData[target]->type_index].ChargingCurrentRequest);
|
|
|
|
|
|
+ //log_info("EvBatterytargetVoltage = %f \n", _chargingData[targetGun]->EvBatterytargetVoltage);
|
|
|
|
+ //log_info("EvBatterytargetCurrent = %f \n", _chargingData[targetGun]->EvBatterytargetCurrent);
|
|
|
|
+ //log_info("BatteryVoltage = %d \n", ShmCHAdeMOData->ev[_chargingData[target]->type_index].TargetBatteryVoltage);
|
|
|
|
+ //log_info("CurrentRequest = %d \n", ShmCHAdeMOData->ev[_chargingData[target]->type_index].ChargingCurrentRequest);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case ACK_GET_EV_BATTERY_INFO: {
|
|
case ACK_GET_EV_BATTERY_INFO: {
|
|
@@ -2441,9 +2394,9 @@ void CANReceiver()
|
|
ShmCHAdeMOData->ev[_chargingData[targetGun]->type_index].TotalBatteryCapacity = ((short) frame.data[2] << 8) + (short) frame.data[1];
|
|
ShmCHAdeMOData->ev[_chargingData[targetGun]->type_index].TotalBatteryCapacity = ((short) frame.data[2] << 8) + (short) frame.data[1];
|
|
ShmCHAdeMOData->ev[_chargingData[targetGun]->type_index].MaxiBatteryVoltage = _chargingData[targetGun]->EvBatteryMaxVoltage;
|
|
ShmCHAdeMOData->ev[_chargingData[targetGun]->type_index].MaxiBatteryVoltage = _chargingData[targetGun]->EvBatteryMaxVoltage;
|
|
|
|
|
|
- //PRINTF_FUNC("EvBatteryMaxVoltage = %f \n", _chargingData[target]->EvBatteryMaxVoltage);
|
|
|
|
- //PRINTF_FUNC("TotalBatteryCapacity = %d \n", ShmCHAdeMOData->ev[_chargingData[target]->type_index].TotalBatteryCapacity);
|
|
|
|
- //PRINTF_FUNC("MaxiBatteryVoltage = %d \n", ShmCHAdeMOData->ev[_chargingData[target]->type_index].MaxiBatteryVoltage);
|
|
|
|
|
|
+ //log_info("EvBatteryMaxVoltage = %f \n", _chargingData[target]->EvBatteryMaxVoltage);
|
|
|
|
+ //log_info("TotalBatteryCapacity = %d \n", ShmCHAdeMOData->ev[_chargingData[target]->type_index].TotalBatteryCapacity);
|
|
|
|
+ //log_info("MaxiBatteryVoltage = %d \n", ShmCHAdeMOData->ev[_chargingData[target]->type_index].MaxiBatteryVoltage);
|
|
} else if (_chargingData[targetGun]->Type == _Type_GB) {
|
|
} else if (_chargingData[targetGun]->Type == _Type_GB) {
|
|
ShmGBTData->ev[_chargingData[targetGun]->type_index].TotalBatteryCapacity = ((short) frame.data[2] << 8) + (short) frame.data[1];
|
|
ShmGBTData->ev[_chargingData[targetGun]->type_index].TotalBatteryCapacity = ((short) frame.data[2] << 8) + (short) frame.data[1];
|
|
ShmGBTData->ev[_chargingData[targetGun]->type_index].MaxiBatteryVoltage = _chargingData[targetGun]->EvBatteryMaxVoltage;
|
|
ShmGBTData->ev[_chargingData[targetGun]->type_index].MaxiBatteryVoltage = _chargingData[targetGun]->EvBatteryMaxVoltage;
|
|
@@ -2471,11 +2424,17 @@ void CANReceiver()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- //PRINTF_FUNC("EvboardStatus = %x \n", ShmCHAdeMOData->evse[_chargingData[target]->type_index].EvboardStatus);
|
|
|
|
- //PRINTF_FUNC("ConnectorPlug locked = %x \n", frame.data[0]);
|
|
|
|
- //PRINTF_FUNC("ConnectorTemp 0= %d \n", ShmCHAdeMOData->evse[_chargingData[target]->type_index].ConnectorTemperatureP);
|
|
|
|
- //PRINTF_FUNC("ConnectorTemp 1= %d \n", ShmCHAdeMOData->evse[_chargingData[target]->type_index].ConnectorTemperatureN);
|
|
|
|
- //PRINTF_FUNC("PilotVoltage = %x \n", (-120 + frame.data[3]) / 10);
|
|
|
|
|
|
+ //log_info("EvboardStatus = %x \n",
|
|
|
|
+ // ShmCHAdeMOData->evse[_chargingData[targetGun]->type_index].EvboardStatus);
|
|
|
|
+ //log_info("ConnectorPlug locked = %x \n",
|
|
|
|
+ // frame.data[0]);
|
|
|
|
+ //if (targetGun == 1) {
|
|
|
|
+ // log_info("ConnectorTemp 0= %d\r\n",
|
|
|
|
+ // frame.data[1]);
|
|
|
|
+ // log_info("ConnectorTemp 1= %d\r\n",
|
|
|
|
+ // frame.data[2]);
|
|
|
|
+ //}
|
|
|
|
+ //log_info("PilotVoltage = %x \n", (-120 + frame.data[3]) / 10);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case ACK_EVSE_ISOLATION_STATUS: {}
|
|
case ACK_EVSE_ISOLATION_STATUS: {}
|
|
@@ -2491,9 +2450,9 @@ void CANReceiver()
|
|
(_chargingData[targetGun]->SystemStatus >= S_CCS_PRECHARGE_ST0 &&
|
|
(_chargingData[targetGun]->SystemStatus >= S_CCS_PRECHARGE_ST0 &&
|
|
_chargingData[targetGun]->SystemStatus <= S_CCS_PRECHARGE_ST1)) {
|
|
_chargingData[targetGun]->SystemStatus <= S_CCS_PRECHARGE_ST1)) {
|
|
// frame.data[0] : 0x01 => normal stop, 0x02 => ev emergency stop
|
|
// frame.data[0] : 0x01 => normal stop, 0x02 => ev emergency stop
|
|
- PRINTF_FUNC("(%d) NOTIFICATION_EV_STOP err level = %d-----------------------------\n",
|
|
|
|
- targetGun,
|
|
|
|
- frame.data[0]);
|
|
|
|
|
|
+ log_info("(%d) NOTIFICATION_EV_STOP err level = %d-----------------------------\n",
|
|
|
|
+ targetGun,
|
|
|
|
+ frame.data[0]);
|
|
if (frame.data[0] == 0x02) {
|
|
if (frame.data[0] == 0x02) {
|
|
if (AbnormalStopAnalysis(targetGun, frame.data + 1) == true) {
|
|
if (AbnormalStopAnalysis(targetGun, frame.data + 1) == true) {
|
|
_chargingData[targetGun]->StopChargeFlag = YES;
|
|
_chargingData[targetGun]->StopChargeFlag = YES;
|
|
@@ -2508,7 +2467,7 @@ void CANReceiver()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
- PRINTF_FUNC("EV board = %d, Ack none defined. intCmd = %d \n", targetGun, intCmd);
|
|
|
|
|
|
+ log_info("EV board = %d, Ack none defined. intCmd = %d \n", targetGun, intCmd);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
} else { //DS60-120 add
|
|
} else { //DS60-120 add
|
|
@@ -2552,8 +2511,8 @@ void SetPresentChargingOutputPower(struct ChargingInfoData *chargingData_1, stru
|
|
(LogInfo[1][EV_LOG_NOW_OUTPUT_VOL] >= vol2 + CHK_VOL_RANGE) || (LogInfo[1][EV_LOG_NOW_OUTPUT_VOL] <= vol2 - CHK_VOL_RANGE) ||
|
|
(LogInfo[1][EV_LOG_NOW_OUTPUT_VOL] >= vol2 + CHK_VOL_RANGE) || (LogInfo[1][EV_LOG_NOW_OUTPUT_VOL] <= vol2 - CHK_VOL_RANGE) ||
|
|
(LogInfo[1][EV_LOG_NOW_OUTPUT_CUR] >= cur2 + CHK_CUR_RANGE) || (LogInfo[1][EV_LOG_NOW_OUTPUT_CUR] <= cur2 - CHK_CUR_RANGE)
|
|
(LogInfo[1][EV_LOG_NOW_OUTPUT_CUR] >= cur2 + CHK_CUR_RANGE) || (LogInfo[1][EV_LOG_NOW_OUTPUT_CUR] <= cur2 - CHK_CUR_RANGE)
|
|
) {
|
|
) {
|
|
- PRINTF_FUNC("G1 -> Output Vol = %.1f, Output Cur = %.1f -- G2 -> Output Vol = %.1f, Output Cur = %.1f\r\n",
|
|
|
|
- vol1 / 10, cur1 / 10, vol2 / 10, cur2 / 10);
|
|
|
|
|
|
+ log_info("G1 -> Output Vol = %.1f, Output Cur = %.1f -- G2 -> Output Vol = %.1f, Output Cur = %.1f\r\n",
|
|
|
|
+ vol1 / 10, cur1 / 10, vol2 / 10, cur2 / 10);
|
|
|
|
|
|
LogInfo[0][EV_LOG_NOW_OUTPUT_VOL] = vol1;
|
|
LogInfo[0][EV_LOG_NOW_OUTPUT_VOL] = vol1;
|
|
LogInfo[0][EV_LOG_NOW_OUTPUT_CUR] = cur1;
|
|
LogInfo[0][EV_LOG_NOW_OUTPUT_CUR] = cur1;
|
|
@@ -2564,7 +2523,7 @@ void SetPresentChargingOutputPower(struct ChargingInfoData *chargingData_1, stru
|
|
// _outCur_1 != cur1 ||
|
|
// _outCur_1 != cur1 ||
|
|
// _outVol_2 != vol2 ||
|
|
// _outVol_2 != vol2 ||
|
|
// _outCur_2 != cur2) {
|
|
// _outCur_2 != cur2) {
|
|
- /*PRINTF_FUNC("G1 -> Output Vol = %f, Output Cur = %f -- G2 -> Output Vol = %f, Output Cur = %f \n",
|
|
|
|
|
|
+ /*log_info("G1 -> Output Vol = %f, Output Cur = %f -- G2 -> Output Vol = %f, Output Cur = %f \n",
|
|
vol1, cur1, vol2, cur2);
|
|
vol1, cur1, vol2, cur2);
|
|
*/
|
|
*/
|
|
// _outVol_1 = vol1; _outCur_1 = cur1; _outVol_2 = vol2; _outCur_2 = cur2;
|
|
// _outVol_1 = vol1; _outCur_1 = cur1; _outVol_2 = vol2; _outCur_2 = cur2;
|
|
@@ -2601,7 +2560,7 @@ void SetPresentChargingOutputCap(struct ChargingInfoData *chargingData_1, struct
|
|
maxCur = (pow1 * 1000) / chargingData_1->FireChargingVoltage;
|
|
maxCur = (pow1 * 1000) / chargingData_1->FireChargingVoltage;
|
|
|
|
|
|
if (maxCur * 10 <= cur1) {
|
|
if (maxCur * 10 <= cur1) {
|
|
- //PRINTF_FUNC("Gun1 -> MaxCharging Current = %f, Cap Current = %f \n", (maxCur * 10), cur1);
|
|
|
|
|
|
+ //log_info("Gun1 -> MaxCharging Current = %f, Cap Current = %f \n", (maxCur * 10), cur1);
|
|
cur1 = maxCur * 10;
|
|
cur1 = maxCur * 10;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -2626,7 +2585,7 @@ void SetPresentChargingOutputCap(struct ChargingInfoData *chargingData_1, struct
|
|
maxCur = (pow2 * 1000) / chargingData_2->FireChargingVoltage;
|
|
maxCur = (pow2 * 1000) / chargingData_2->FireChargingVoltage;
|
|
|
|
|
|
if (maxCur * 10 <= cur2) {
|
|
if (maxCur * 10 <= cur2) {
|
|
- //PRINTF_FUNC("Gun2 -> MaxCharging Current = %f, Cap Current = %f \n", (maxCur * 10), cur2);
|
|
|
|
|
|
+ //log_info("Gun2 -> MaxCharging Current = %f, Cap Current = %f \n", (maxCur * 10), cur2);
|
|
cur2 = maxCur * 10;
|
|
cur2 = maxCur * 10;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -2637,10 +2596,10 @@ void SetPresentChargingOutputCap(struct ChargingInfoData *chargingData_1, struct
|
|
(LogInfo[0][EV_LOG_OUTPUT_CAP_CUR] <= cur1 - 5 || LogInfo[0][EV_LOG_OUTPUT_CAP_CUR] >= cur1 + 5) ||
|
|
(LogInfo[0][EV_LOG_OUTPUT_CAP_CUR] <= cur1 - 5 || LogInfo[0][EV_LOG_OUTPUT_CAP_CUR] >= cur1 + 5) ||
|
|
(LogInfo[1][EV_LOG_OUTPUT_CAP_POW] <= pow2 - 5 || LogInfo[1][EV_LOG_OUTPUT_CAP_POW] >= pow2 + 5) ||
|
|
(LogInfo[1][EV_LOG_OUTPUT_CAP_POW] <= pow2 - 5 || LogInfo[1][EV_LOG_OUTPUT_CAP_POW] >= pow2 + 5) ||
|
|
(LogInfo[1][EV_LOG_OUTPUT_CAP_CUR] <= cur2 - 5 || LogInfo[1][EV_LOG_OUTPUT_CAP_CUR] >= cur2 + 5)) {
|
|
(LogInfo[1][EV_LOG_OUTPUT_CAP_CUR] <= cur2 - 5 || LogInfo[1][EV_LOG_OUTPUT_CAP_CUR] >= cur2 + 5)) {
|
|
- //PRINTF_FUNC("----------------------------------------------------- \n");
|
|
|
|
- PRINTF_FUNC("To EV (Real) Power_1 = %.1f, Cur_1 = %.1f, Power_2 = %.1f, Cur_2 = %.1f\r\n",
|
|
|
|
- pow1 / 10, cur1 / 10, pow2 / 10, cur2 / 10);
|
|
|
|
- //PRINTF_FUNC("----------------------------------------------------- \n");
|
|
|
|
|
|
+ //log_info("----------------------------------------------------- \n");
|
|
|
|
+ log_info("To EV (Real) Power_1 = %.1f, Cur_1 = %.1f, Power_2 = %.1f, Cur_2 = %.1f\r\n",
|
|
|
|
+ pow1 / 10, cur1 / 10, pow2 / 10, cur2 / 10);
|
|
|
|
+ //log_info("----------------------------------------------------- \n");
|
|
|
|
|
|
LogInfo[0][EV_LOG_OUTPUT_CAP_POW] = pow1;
|
|
LogInfo[0][EV_LOG_OUTPUT_CAP_POW] = pow1;
|
|
LogInfo[0][EV_LOG_OUTPUT_CAP_CUR] = cur1;
|
|
LogInfo[0][EV_LOG_OUTPUT_CAP_CUR] = cur1;
|
|
@@ -2660,7 +2619,7 @@ void SetPresentChargingOutputCap(struct ChargingInfoData *chargingData_1, struct
|
|
_cur_1 != cur1 ||
|
|
_cur_1 != cur1 ||
|
|
_pow_2 != pow2 ||
|
|
_pow_2 != pow2 ||
|
|
_cur_2 != cur2) {
|
|
_cur_2 != cur2) {
|
|
- PRINTF_FUNC("To EV (Real) Power_1 = %f, Cur_1 = %f, Power_2 = %f, Cur_2 = %f \n",
|
|
|
|
|
|
+ log_info("To EV (Real) Power_1 = %f, Cur_1 = %f, Power_2 = %f, Cur_2 = %f \n",
|
|
pow1, cur1, pow2, cur2);
|
|
pow1, cur1, pow2, cur2);
|
|
_pow_1 = pow1; _cur_1 = cur1; _pow_2 = pow2; _cur_2 = cur2;
|
|
_pow_1 = pow1; _cur_1 = cur1; _pow_2 = pow2; _cur_2 = cur2;
|
|
chargingData_1->RealMaxCurrent = _cur_1;
|
|
chargingData_1->RealMaxCurrent = _cur_1;
|
|
@@ -2682,7 +2641,7 @@ void Initialization()
|
|
isPass = true;
|
|
isPass = true;
|
|
for (byte _index = 0; _index < gun_count; _index++) {
|
|
for (byte _index = 0; _index < gun_count; _index++) {
|
|
if (!FindChargingInfoData(_index, &_chargingData[0])) {
|
|
if (!FindChargingInfoData(_index, &_chargingData[0])) {
|
|
- DEBUG_ERROR("EvComm (main) : FindChargingInfoData false \n");
|
|
|
|
|
|
+ log_error("EvComm (main) : FindChargingInfoData false \n");
|
|
isPass = false;
|
|
isPass = false;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -2844,42 +2803,6 @@ byte GetStopChargingReasonByEvse(byte gunIndex, byte *reason)
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
-#if defined METER_ENABLE
|
|
|
|
-void SendCommunicationOnly(byte index)
|
|
|
|
-{
|
|
|
|
- byte targetID = _chargingData[index]->Evboard_id;
|
|
|
|
-
|
|
|
|
- if (gun_count == 1 &&
|
|
|
|
- _chargingData[index]->Type == _Type_CCS_2 &&
|
|
|
|
- ShmDcCommonData->CcsVersion == _CCS_VERSION_CHECK_TAG_V015S0) {
|
|
|
|
- targetID += 1;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- SetChargingPermission(index, COMMUNICATION,
|
|
|
|
- _chargingData[index]->AvailableChargingPower,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- targetID);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void SendStopOnly(byte index)
|
|
|
|
-{
|
|
|
|
- byte targetID = _chargingData[index]->Evboard_id;
|
|
|
|
-
|
|
|
|
- if (gun_count == 1 &&
|
|
|
|
- _chargingData[index]->Type == _Type_CCS_2 &&
|
|
|
|
- ShmDcCommonData->CcsVersion == _CCS_VERSION_CHECK_TAG_V015S0) {
|
|
|
|
- targetID += 1;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- SetChargingPermission(index, STOP,
|
|
|
|
- _chargingData[index]->AvailableChargingPower,
|
|
|
|
- 0,
|
|
|
|
- 0,
|
|
|
|
- targetID);
|
|
|
|
-}
|
|
|
|
-#endif //defined METER_ENABLE
|
|
|
|
-
|
|
|
|
void FormatVoltageAndCurrent()
|
|
void FormatVoltageAndCurrent()
|
|
{
|
|
{
|
|
char isLowCur = 0x00;
|
|
char isLowCur = 0x00;
|
|
@@ -2979,48 +2902,11 @@ void FormatVoltageAndCurrent()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-// 如果是使用 Meter 計算的話
|
|
|
|
-void CalOutputPowerAndEnergy(int _index)
|
|
|
|
-{
|
|
|
|
- if (ShmSysConfigAndInfo->SysConfig.ModelName[3] == 'M' ||
|
|
|
|
- ShmSysConfigAndInfo->SysConfig.ModelName[3] == 'L') {
|
|
|
|
- //printf("(%d), totalChargingValue = %f \n", _index, ShmCsuMeterData->_meter[_index]._curTotalCharging / 100);
|
|
|
|
-#if defined METER_ENABLE
|
|
|
|
- float totalChargingValue = ShmCsuMeterData->_meter[_index]._curTotalCharging / 100;
|
|
|
|
-
|
|
|
|
- _chargingData[_index]->PresentChargedEnergy = totalChargingValue;
|
|
|
|
- _chargingData[_index]->PowerConsumption = totalChargingValue;
|
|
|
|
-
|
|
|
|
- if (ShmSysConfigAndInfo->SysConfig.BillingData.isBilling) {
|
|
|
|
- _chargingData[_index]->ChargingFee = totalChargingValue * ShmSysConfigAndInfo->SysConfig.BillingData.Cur_fee;
|
|
|
|
- }
|
|
|
|
-#endif //METER_ENABLE
|
|
|
|
- } else {
|
|
|
|
- if (chargingTime[_index] == 0 ||
|
|
|
|
- chargingTime[_index] > _chargingData[_index]->PresentChargedDuration) {
|
|
|
|
- chargingTime[_index] = _chargingData[_index]->PresentChargedDuration;
|
|
|
|
- } else {
|
|
|
|
- int passTime = _chargingData[_index]->PresentChargedDuration - chargingTime[_index];
|
|
|
|
-
|
|
|
|
- if (passTime > 0) {
|
|
|
|
- float changingPow = (_chargingData[_index]->PresentChargingPower) * passTime / 3600;
|
|
|
|
- if (ShmSysConfigAndInfo->SysConfig.BillingData.isBilling) {
|
|
|
|
- _chargingData[_index]->ChargingFee += changingPow * ShmSysConfigAndInfo->SysConfig.BillingData.Cur_fee;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- _chargingData[_index]->PresentChargedEnergy += changingPow;
|
|
|
|
- _chargingData[_index]->PowerConsumption += changingPow;
|
|
|
|
- chargingTime[_index] = _chargingData[_index]->PresentChargedDuration;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
int main(int argc, char *argv[])
|
|
int main(int argc, char *argv[])
|
|
{
|
|
{
|
|
if (InitShareMemory() == FAIL) {
|
|
if (InitShareMemory() == FAIL) {
|
|
#ifdef SystemLogMessage
|
|
#ifdef SystemLogMessage
|
|
- DEBUG_ERROR("InitShareMemory NG\n");
|
|
|
|
|
|
+ log_error("InitShareMemory NG\n");
|
|
#endif
|
|
#endif
|
|
if (ShmStatusCodeData != NULL) {
|
|
if (ShmStatusCodeData != NULL) {
|
|
ShmStatusCodeData->AlarmCode.AlarmEvents.bits.FailToCreateShareMemory = 1;
|
|
ShmStatusCodeData->AlarmCode.AlarmEvents.bits.FailToCreateShareMemory = 1;
|
|
@@ -3041,28 +2927,19 @@ int main(int argc, char *argv[])
|
|
|
|
|
|
for (byte _index = 0; _index < gun_count; _index++) { //DS60-120 add
|
|
for (byte _index = 0; _index < gun_count; _index++) { //DS60-120 add
|
|
if (_chargingData[_index]->Type == _Type_Chademo) {
|
|
if (_chargingData[_index]->Type == _Type_Chademo) {
|
|
- PRINTF_FUNC("Conn %d (Chademo), MaxVol = %f, MaxCur = %f \n",
|
|
|
|
- _index, maxChargingVol[_index], maxChargingCur[_index]);
|
|
|
|
|
|
+ log_info("Conn %d (Chademo), MaxVol = %f, MaxCur = %f \n",
|
|
|
|
+ _index, maxChargingVol[_index], maxChargingCur[_index]);
|
|
} else if (_chargingData[_index]->Type == _Type_CCS_2) {
|
|
} else if (_chargingData[_index]->Type == _Type_CCS_2) {
|
|
- PRINTF_FUNC("Conn %d (CCS), MaxVol = %f, MaxCur = %f \n",
|
|
|
|
- _index, maxChargingVol[_index], maxChargingCur[_index]);
|
|
|
|
|
|
+ log_info("Conn %d (CCS), MaxVol = %f, MaxCur = %f \n",
|
|
|
|
+ _index, maxChargingVol[_index], maxChargingCur[_index]);
|
|
} else if (_chargingData[_index]->Type == _Type_GB) {
|
|
} else if (_chargingData[_index]->Type == _Type_GB) {
|
|
- PRINTF_FUNC("Conn %d (GBT), MaxVol = %f, MaxCur = %f \n",
|
|
|
|
- _index, maxChargingVol[_index], maxChargingCur[_index]);
|
|
|
|
|
|
+ log_info("Conn %d (GBT), MaxVol = %f, MaxCur = %f \n",
|
|
|
|
+ _index, maxChargingVol[_index], maxChargingCur[_index]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
while (CanFd) {
|
|
while (CanFd) {
|
|
for (byte _index = 0; _index < gun_count; _index++) {
|
|
for (byte _index = 0; _index < gun_count; _index++) {
|
|
- byte targetID = _chargingData[_index]->Evboard_id;
|
|
|
|
-
|
|
|
|
-#if defined METER_ENABLE //DS60-120 add
|
|
|
|
- if (gun_count == 1 &&
|
|
|
|
- _chargingData[_index]->Type == _Type_CCS_2 &&
|
|
|
|
- ShmDcCommonData->CcsVersion == _CCS_VERSION_CHECK_TAG_V015S0) {
|
|
|
|
- targetID += 1;
|
|
|
|
- }
|
|
|
|
-#endif //defined METER_ENABLE
|
|
|
|
|
|
|
|
if (priorityLow == 1) {
|
|
if (priorityLow == 1) {
|
|
// 優先權較低 - 只要有回應即不會再詢問
|
|
// 優先權較低 - 只要有回應即不會再詢問
|
|
@@ -3083,7 +2960,7 @@ int main(int argc, char *argv[])
|
|
}
|
|
}
|
|
|
|
|
|
// 固定要取得的資訊 : 1.槍鎖狀態, 2."Connector 1" 溫度, 3."Connector 2" 溫度, 4.Pilot Voltage
|
|
// 固定要取得的資訊 : 1.槍鎖狀態, 2."Connector 1" 溫度, 3."Connector 2" 溫度, 4.Pilot Voltage
|
|
- //PRINTF_FUNC("GetMiscellaneousInfo. index = %d, Eid = %d \n", _index, _chargingData[_index]->Evboard_id);
|
|
|
|
|
|
+ //log_info("GetMiscellaneousInfo. index = %d, Eid = %d \n", _index, _chargingData[_index]->Evboard_id);
|
|
GetMiscellaneousInfo(_index,
|
|
GetMiscellaneousInfo(_index,
|
|
_chargingData[_index]->RelayK1K2Status,
|
|
_chargingData[_index]->RelayK1K2Status,
|
|
_chargingData[_index]->PresentChargedEnergy,
|
|
_chargingData[_index]->PresentChargedEnergy,
|
|
@@ -3096,24 +2973,6 @@ int main(int argc, char *argv[])
|
|
case S_RESERVATION:
|
|
case S_RESERVATION:
|
|
if (_chargingData[_index]->Type == _Type_Chademo) {
|
|
if (_chargingData[_index]->Type == _Type_Chademo) {
|
|
ClearAbnormalStatus_Chademo(_index);
|
|
ClearAbnormalStatus_Chademo(_index);
|
|
-
|
|
|
|
-#if defined METER_ENABLE //DS60-120 add
|
|
|
|
- if (ShmSysConfigAndInfo->SysInfo.PageIndex == _LCM_WAIT_FOR_PLUG) {
|
|
|
|
- if (!chkChademoPermission[_index]) {
|
|
|
|
- chkChademoPermission[_index] = true;
|
|
|
|
- gettimeofday(&_chk_chademo_permission_timeout[_index], NULL);
|
|
|
|
- SendCommunicationOnly(_index);
|
|
|
|
- } else {
|
|
|
|
- if (GetTimeoutValue(_chk_chademo_permission_timeout[_index]) / 1000 > 10000) {
|
|
|
|
- SendCommunicationOnly(_index);
|
|
|
|
- gettimeofday(&_chk_chademo_permission_timeout[_index], NULL);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- } else if (chkChademoPermission[_index]) {
|
|
|
|
- chkChademoPermission[_index] = false;
|
|
|
|
- SendStopOnly(_index);
|
|
|
|
- }
|
|
|
|
-#endif //defined METER_ENABLE
|
|
|
|
} else if (_chargingData[_index]->Type == _Type_GB) {
|
|
} else if (_chargingData[_index]->Type == _Type_GB) {
|
|
ClearAbnormalStatus_GB(_index);
|
|
ClearAbnormalStatus_GB(_index);
|
|
} else if (_chargingData[_index]->Type == _Type_CCS_2) {
|
|
} else if (_chargingData[_index]->Type == _Type_CCS_2) {
|
|
@@ -3146,21 +3005,6 @@ int main(int argc, char *argv[])
|
|
//maxChargingPow = (ShmSysConfigAndInfo->SysConfig.MaxChargingPower * 10);
|
|
//maxChargingPow = (ShmSysConfigAndInfo->SysConfig.MaxChargingPower * 10);
|
|
//DS60-120 add
|
|
//DS60-120 add
|
|
SendErrorCount[_index] = 0;
|
|
SendErrorCount[_index] = 0;
|
|
-#if defined METER_ENABLE //DS60-120 add
|
|
|
|
- // 使用 Meter 狀況
|
|
|
|
- if (ShmSysConfigAndInfo->SysConfig.ModelName[3] == 'M' ||
|
|
|
|
- ShmSysConfigAndInfo->SysConfig.ModelName[3] == 'L') {
|
|
|
|
- if (ShmCsuMeterData->_meter[_index].isCalculation == NO) {
|
|
|
|
- if (ShmCsuMeterData->_meter[_index].curMeterValue != 0 ||
|
|
|
|
- ShmCsuMeterData->_meter[_index]._chargingValue != 0 ||
|
|
|
|
- ShmCsuMeterData->_meter[_index]._curTotalCharging != 0 ) {
|
|
|
|
- ShmCsuMeterData->_meter[_index].curMeterValue = 0;
|
|
|
|
- ShmCsuMeterData->_meter[_index]._chargingValue = 0;
|
|
|
|
- ShmCsuMeterData->_meter[_index]._curTotalCharging = 0;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-#endif //defined METER_ENABLE
|
|
|
|
|
|
|
|
//maxChargingPow = ShmSysConfigAndInfo->SysConfig.MaxChargingPower * 10;
|
|
//maxChargingPow = ShmSysConfigAndInfo->SysConfig.MaxChargingPower * 10;
|
|
// ShmPsuData->SystemAvailablePower 已是 * 10
|
|
// ShmPsuData->SystemAvailablePower 已是 * 10
|
|
@@ -3199,11 +3043,11 @@ int main(int argc, char *argv[])
|
|
// 開始確認車端是否同意開始充電 : 1.SOC, 2.Target Vol, 3.Target Cur, 4.Charging remaining time
|
|
// 開始確認車端是否同意開始充電 : 1.SOC, 2.Target Vol, 3.Target Cur, 4.Charging remaining time
|
|
GetOutputReq(_index, _chargingData[_index]->Evboard_id);
|
|
GetOutputReq(_index, _chargingData[_index]->Evboard_id);
|
|
|
|
|
|
-// PRINTF_FUNC("PresentChargingVoltage = %f \n", _chargingData[_index]->PresentChargingVoltage);
|
|
|
|
-// PRINTF_FUNC("PresentChargingCurrent = %f \n", _chargingData[_index]->PresentChargingCurrent);
|
|
|
|
-// PRINTF_FUNC("AvailableChargingPower = %f \n", _chargingData[_index]->AvailableChargingPower);
|
|
|
|
-// PRINTF_FUNC("AvailableChargingCurrent = %f \n", _chargingData[_index]->AvailableChargingCurrent);
|
|
|
|
-// PRINTF_FUNC("MaximumChargingVoltage = %f \n", _chargingData[_index]->MaximumChargingVoltage);
|
|
|
|
|
|
+// log_info("PresentChargingVoltage = %f \n", _chargingData[_index]->PresentChargingVoltage);
|
|
|
|
+// log_info("PresentChargingCurrent = %f \n", _chargingData[_index]->PresentChargingCurrent);
|
|
|
|
+// log_info("AvailableChargingPower = %f \n", _chargingData[_index]->AvailableChargingPower);
|
|
|
|
+// log_info("AvailableChargingCurrent = %f \n", _chargingData[_index]->AvailableChargingCurrent);
|
|
|
|
+// log_info("MaximumChargingVoltage = %f \n", _chargingData[_index]->MaximumChargingVoltage);
|
|
|
|
|
|
// 設定當前輸出
|
|
// 設定當前輸出
|
|
if (gun_count == 1) {
|
|
if (gun_count == 1) {
|
|
@@ -3226,10 +3070,10 @@ int main(int argc, char *argv[])
|
|
LogInfo[_index][EV_LOG_EVSE_MAX_VOL] = maxVol;
|
|
LogInfo[_index][EV_LOG_EVSE_MAX_VOL] = maxVol;
|
|
LogInfo[_index][EV_LOG_EVSE_MAX_CUR] = maxCur;
|
|
LogInfo[_index][EV_LOG_EVSE_MAX_CUR] = maxCur;
|
|
|
|
|
|
- PRINTF_FUNC("To EV_%d Max_Vol = %.1f, Cap_Cur = %.1f, Cap_Pow = %.1f \n",
|
|
|
|
- _index, maxVol / 10, maxCur / 10, _chargingData[_index]->AvailableChargingPower / 10);
|
|
|
|
|
|
+ log_info("To EV_%d Max_Vol = %.1f, Cap_Cur = %.1f, Cap_Pow = %.1f \n",
|
|
|
|
+ _index, maxVol / 10, maxCur / 10, _chargingData[_index]->AvailableChargingPower / 10);
|
|
}
|
|
}
|
|
- //PRINTF_FUNC("To EV_%d Max_Vol = %f, Cap_Cur = %f, Cap_Pow = %f \n",
|
|
|
|
|
|
+ //log_info("To EV_%d Max_Vol = %f, Cap_Cur = %f, Cap_Pow = %f \n",
|
|
// _index, maxVol, maxCur, _chargingData[_index]->AvailableChargingPower);
|
|
// _index, maxVol, maxCur, _chargingData[_index]->AvailableChargingPower);
|
|
|
|
|
|
_chargingData[_index]->RealMaxVoltage = maxVol;
|
|
_chargingData[_index]->RealMaxVoltage = maxVol;
|
|
@@ -3274,12 +3118,12 @@ int main(int argc, char *argv[])
|
|
//DS60-120 add
|
|
//DS60-120 add
|
|
if (LogInfo[_index][EV_LOG_MAX_BATT_VOL] != _chargingData[_index]->EvBatteryMaxVoltage) {
|
|
if (LogInfo[_index][EV_LOG_MAX_BATT_VOL] != _chargingData[_index]->EvBatteryMaxVoltage) {
|
|
LogInfo[_index][EV_LOG_MAX_BATT_VOL] = _chargingData[_index]->EvBatteryMaxVoltage;
|
|
LogInfo[_index][EV_LOG_MAX_BATT_VOL] = _chargingData[_index]->EvBatteryMaxVoltage;
|
|
- PRINTF_FUNC("index = %d, Ev Maximum Battery Voltage = %f \n", _index, _chargingData[_index]->EvBatteryMaxVoltage);
|
|
|
|
|
|
+ log_info("index = %d, Ev Maximum Battery Voltage = %f \n", _index, _chargingData[_index]->EvBatteryMaxVoltage);
|
|
}
|
|
}
|
|
|
|
|
|
if (LogInfo[_index][EV_LOG_SOC] != _chargingData[_index]->EvBatterySoc) {
|
|
if (LogInfo[_index][EV_LOG_SOC] != _chargingData[_index]->EvBatterySoc) {
|
|
LogInfo[_index][EV_LOG_SOC] = _chargingData[_index]->EvBatterySoc;
|
|
LogInfo[_index][EV_LOG_SOC] = _chargingData[_index]->EvBatterySoc;
|
|
- PRINTF_FUNC("index = %d, SOC = %d \n", _index, _chargingData[_index]->EvBatterySoc);
|
|
|
|
|
|
+ log_info("index = %d, SOC = %d \n", _index, _chargingData[_index]->EvBatterySoc);
|
|
}
|
|
}
|
|
|
|
|
|
// 持續通知 Isolation 測試狀態
|
|
// 持續通知 Isolation 測試狀態
|
|
@@ -3288,7 +3132,7 @@ int main(int argc, char *argv[])
|
|
// if (_chargingData[_index]->FireChargingVoltage >= 3500)
|
|
// if (_chargingData[_index]->FireChargingVoltage >= 3500)
|
|
// _chargingData[_index]->GroundFaultStatus = GFD_PASS;
|
|
// _chargingData[_index]->GroundFaultStatus = GFD_PASS;
|
|
|
|
|
|
- //PRINTF_FUNC("To EV_%d GFD = %d \n", _index, _chargingData[_index]->GroundFaultStatus);
|
|
|
|
|
|
+ //log_info("To EV_%d GFD = %d \n", _index, _chargingData[_index]->GroundFaultStatus);
|
|
//if(_chargingData[_index]->GroundFaultStatus != GFD_WAIT)
|
|
//if(_chargingData[_index]->GroundFaultStatus != GFD_WAIT)
|
|
{
|
|
{
|
|
//if ((GetTimeoutValue(_derating_time) / 1000) > 1000)
|
|
//if ((GetTimeoutValue(_derating_time) / 1000) > 1000)
|
|
@@ -3306,15 +3150,15 @@ int main(int argc, char *argv[])
|
|
if (((GetTimeoutValue(_chk_ratingPower_timeout[_index]) / 1000) > 12000 &&
|
|
if (((GetTimeoutValue(_chk_ratingPower_timeout[_index]) / 1000) > 12000 &&
|
|
_chargingData[_index]->RealRatingPower > 0) ||
|
|
_chargingData[_index]->RealRatingPower > 0) ||
|
|
(GetTimeoutValue(_chk_ratingPower_timeout[_index]) / 1000) > 14000) {
|
|
(GetTimeoutValue(_chk_ratingPower_timeout[_index]) / 1000) > 14000) {
|
|
- //PRINTF_FUNC("**********EvComm : _index= %d, RealRatingPower = %d \n",
|
|
|
|
|
|
+ //log_info("**********EvComm : _index= %d, RealRatingPower = %d \n",
|
|
// _index, _chargingData[_index]->RealRatingPower);
|
|
// _index, _chargingData[_index]->RealRatingPower);
|
|
//_result = GFD_PASS;
|
|
//_result = GFD_PASS;
|
|
|
|
|
|
//DS60-120 add
|
|
//DS60-120 add
|
|
if (LogInfo[_index][EV_LOG_REAL_CAP_POW] != _chargingData[_index]->RealRatingPower) {
|
|
if (LogInfo[_index][EV_LOG_REAL_CAP_POW] != _chargingData[_index]->RealRatingPower) {
|
|
LogInfo[_index][EV_LOG_REAL_CAP_POW] = _chargingData[_index]->RealRatingPower;
|
|
LogInfo[_index][EV_LOG_REAL_CAP_POW] = _chargingData[_index]->RealRatingPower;
|
|
- PRINTF_FUNC("Conn %d, RealRatingPower = %d \n",
|
|
|
|
- _index, _chargingData[_index]->RealRatingPower);
|
|
|
|
|
|
+ log_info("Conn %d, RealRatingPower = %d \n",
|
|
|
|
+ _index, _chargingData[_index]->RealRatingPower);
|
|
|
|
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -3336,8 +3180,6 @@ int main(int argc, char *argv[])
|
|
// 計算 Power
|
|
// 計算 Power
|
|
_chargingData[_index]->PresentChargingPower = ((float)((_chargingData[_index]->PresentChargingVoltage) * (_chargingData[_index]->PresentChargingCurrent)) / 1000);
|
|
_chargingData[_index]->PresentChargingPower = ((float)((_chargingData[_index]->PresentChargingVoltage) * (_chargingData[_index]->PresentChargingCurrent)) / 1000);
|
|
|
|
|
|
- //CalOutputPowerAndEnergy(_index); //DS60-120 add
|
|
|
|
-
|
|
|
|
//DS60-120 remove
|
|
//DS60-120 remove
|
|
if (chargingTime[_index] == 0 ||
|
|
if (chargingTime[_index] == 0 ||
|
|
chargingTime[_index] > _chargingData[_index]->PresentChargedDuration) {
|
|
chargingTime[_index] > _chargingData[_index]->PresentChargedDuration) {
|
|
@@ -3445,7 +3287,8 @@ int main(int argc, char *argv[])
|
|
maxCur = _chargingData[_index]->AvailableChargingCurrent;
|
|
maxCur = _chargingData[_index]->AvailableChargingCurrent;
|
|
|
|
|
|
GetMaxVolAndCurMethod(_index, &maxVol, &maxCur);
|
|
GetMaxVolAndCurMethod(_index, &maxVol, &maxCur);
|
|
- SetChargingPermission(_index, STOP,
|
|
|
|
|
|
+ SetChargingPermission(_index,
|
|
|
|
+ STOP,
|
|
_chargingData[_index]->AvailableChargingPower,
|
|
_chargingData[_index]->AvailableChargingPower,
|
|
maxCur,
|
|
maxCur,
|
|
maxVol,
|
|
maxVol,
|
|
@@ -3495,6 +3338,6 @@ int main(int argc, char *argv[])
|
|
priorityLow >= 20 ? priorityLow = 1 : priorityLow++;
|
|
priorityLow >= 20 ? priorityLow = 1 : priorityLow++;
|
|
usleep(45000); //EV 小板通訊 (50 ms)
|
|
usleep(45000); //EV 小板通訊 (50 ms)
|
|
}
|
|
}
|
|
- DEBUG_INFO("Module_EvComm : Can-bus port = %d \n", CanFd);
|
|
|
|
|
|
+ log_info("Module_EvComm : Can-bus port = %d \n", CanFd);
|
|
return FAIL;
|
|
return FAIL;
|
|
}
|
|
}
|