|
@@ -105,11 +105,11 @@ int setKeyValue(char *key, char *value);
|
|
|
void OCPP_get_TableAuthlocalAllData(void);
|
|
|
void processUnkownKey(void);
|
|
|
|
|
|
-struct StructOCPPMeterValue
|
|
|
+struct InterLock
|
|
|
{
|
|
|
- unsigned char TimeStamp[28];
|
|
|
- struct StructSampledValue SampledValue[10];
|
|
|
-};
|
|
|
+ unsigned char isGetDiagnosticGoing:1;
|
|
|
+ unsigned char isUpdateFirmwareGoing:1;
|
|
|
+}interLock;
|
|
|
|
|
|
struct ClientTime
|
|
|
{
|
|
@@ -136,7 +136,6 @@ typedef union
|
|
|
unsigned char :3; //bit5~7
|
|
|
}bits[CONNECTOR_QUANTITY];
|
|
|
}CpinitiateMsg;
|
|
|
-
|
|
|
CpinitiateMsg cpinitateMsg;
|
|
|
|
|
|
//GetConfiguration Array
|
|
@@ -7192,7 +7191,7 @@ int sendMeterValuesRequest(int gun_index, ReadingContext dataType)
|
|
|
{
|
|
|
if (ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].Index == tempIndex)
|
|
|
{
|
|
|
- sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[10].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].AvailableChargingCurrent/10));
|
|
|
+ sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[10].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].CurrentOffered/10));
|
|
|
}
|
|
|
} // END OF FOR CHAdeMO_QUANTITY
|
|
|
}
|
|
@@ -7211,7 +7210,7 @@ int sendMeterValuesRequest(int gun_index, ReadingContext dataType)
|
|
|
{
|
|
|
if (ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].Index == tempIndex)
|
|
|
{
|
|
|
- sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[10].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].AvailableChargingCurrent/10));
|
|
|
+ sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[10].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].CurrentOffered/10));
|
|
|
}
|
|
|
} // END OF CCS_QUANTITY
|
|
|
}
|
|
@@ -7230,7 +7229,7 @@ int sendMeterValuesRequest(int gun_index, ReadingContext dataType)
|
|
|
{
|
|
|
if (ShmSysConfigAndInfo->SysInfo.GbChargingData[index].Index == tempIndex)
|
|
|
{
|
|
|
- sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[10].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.GbChargingData[index].AvailableChargingCurrent/10));
|
|
|
+ sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[10].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.GbChargingData[index].CurrentOffered/10));
|
|
|
}
|
|
|
} // END OF GB_QUANTITY
|
|
|
}
|
|
@@ -7242,7 +7241,7 @@ int sendMeterValuesRequest(int gun_index, ReadingContext dataType)
|
|
|
{
|
|
|
if (ShmSysConfigAndInfo->SysInfo.ConnectorInfo[index].GeneralChargingData.Index == tempIndex)
|
|
|
{
|
|
|
- sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[10].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.ConnectorInfo[index].GeneralChargingData.AvailableChargingCurrent/10));
|
|
|
+ sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[10].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.ConnectorInfo[index].GeneralChargingData.CurrentOffered/10));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -7303,7 +7302,7 @@ int sendMeterValuesRequest(int gun_index, ReadingContext dataType)
|
|
|
{
|
|
|
if (ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].Index == tempIndex)
|
|
|
{
|
|
|
- sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[11].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].AvailableChargingPower*10));
|
|
|
+ sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[11].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].PowerOffered/10));
|
|
|
}
|
|
|
} // END OF FOR CHAdeMO_QUANTITY
|
|
|
}
|
|
@@ -7322,7 +7321,7 @@ int sendMeterValuesRequest(int gun_index, ReadingContext dataType)
|
|
|
{
|
|
|
if (ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].Index == tempIndex)
|
|
|
{
|
|
|
- sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[11].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].AvailableChargingPower*10));
|
|
|
+ sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[11].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].PowerOffered/10));
|
|
|
}
|
|
|
} // END OF CCS_QUANTITY
|
|
|
}
|
|
@@ -7341,7 +7340,7 @@ int sendMeterValuesRequest(int gun_index, ReadingContext dataType)
|
|
|
{
|
|
|
if (ShmSysConfigAndInfo->SysInfo.GbChargingData[index].Index == tempIndex)
|
|
|
{
|
|
|
- sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[11].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.GbChargingData[index].AvailableChargingPower*10));
|
|
|
+ sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[11].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.GbChargingData[index].PowerOffered/10));
|
|
|
}
|
|
|
} // END OF GB_QUANTITY
|
|
|
}
|
|
@@ -7353,7 +7352,7 @@ int sendMeterValuesRequest(int gun_index, ReadingContext dataType)
|
|
|
{
|
|
|
if (ShmSysConfigAndInfo->SysInfo.ConnectorInfo[index].GeneralChargingData.Index == tempIndex)
|
|
|
{
|
|
|
- sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[11].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.ConnectorInfo[index].GeneralChargingData.AvailableChargingPower*10));
|
|
|
+ sprintf((char *)ShmOCPP16Data->MeterValues[gun_index].MeterValue[0].SampledValue[11].Value, "%d", (uint16_t) (ShmSysConfigAndInfo->SysInfo.ConnectorInfo[index].GeneralChargingData.PowerOffered/10));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -10312,7 +10311,13 @@ int handleGetDiagnosticsRequest(char *uuid, char *payload)
|
|
|
sprintf((char*)ShmOCPP16Data->GetDiagnostics.ResponseFileName, "%s-%s-%04d%02d%02d%02d%02d%02d.zip", ShmSysConfigAndInfo->SysConfig.ModelName, ShmSysConfigAndInfo->SysConfig.SerialNumber, (tm->tm_year+1900), (tm->tm_mon+1),tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
|
|
|
sendGetDiagnosticsConfirmation(uuid, (char*)ShmOCPP16Data->GetDiagnostics.ResponseFileName);
|
|
|
|
|
|
- pthread_create(&th_Status, NULL, GetDiagnosticsProcess, stringtrimspace(payload));
|
|
|
+ if(!interLock.isGetDiagnosticGoing)
|
|
|
+ {
|
|
|
+ interLock.isGetDiagnosticGoing = 1;
|
|
|
+ pthread_create(&th_Status, NULL, GetDiagnosticsProcess, stringtrimspace(payload));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ DEBUG_WARN("Other GetDiagnostic request on going.\n");
|
|
|
|
|
|
return result;
|
|
|
}
|
|
@@ -10578,6 +10583,7 @@ end:
|
|
|
sleep(5);
|
|
|
sprintf((char*)ShmOCPP16Data->DiagnosticsStatusNotification.Status, "%s", DiagnosticsStatusStr[DiagnosticsStatus_Idle]);
|
|
|
ShmOCPP16Data->SpMsg.bits.DiagnosticsStatusNotificationReq = 1;
|
|
|
+ interLock.isGetDiagnosticGoing = 0;
|
|
|
pthread_exit(NULL);
|
|
|
}
|
|
|
|
|
@@ -13145,11 +13151,15 @@ int handleUpdateFirmwareRequest(char *uuid, char *payload)
|
|
|
sendUpdateFirmwareConfirmation(uuid);
|
|
|
memset(UpdateFirmwarepayloadData, 0, 300);
|
|
|
strcpy(UpdateFirmwarepayloadData, stringtrimspace(payload));
|
|
|
- pthread_create(&t, NULL, UpdateFirmwareProcess, stringtrimspace(payload));
|
|
|
- ////pthread_join(t, NULL); //
|
|
|
- //pthread_detach(t);
|
|
|
|
|
|
- //sendUpdateFirmwareConfirmation(uuid);
|
|
|
+ if(!interLock.isUpdateFirmwareGoing)
|
|
|
+ {
|
|
|
+ interLock.isUpdateFirmwareGoing = 1;
|
|
|
+ pthread_create(&t, NULL, UpdateFirmwareProcess, stringtrimspace(payload));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ DEBUG_WARN("Other UpdateFirmware request on going.\n");
|
|
|
+
|
|
|
ShmOCPP16Data->MsMsg.bits.UpdateFirmwareConf =1;
|
|
|
return result;
|
|
|
}
|
|
@@ -13168,6 +13178,7 @@ void *UpdateFirmwareProcess(void *data)
|
|
|
char * pch;
|
|
|
|
|
|
DEBUG_INFO("handleUpdateFirmwareRequest ...\n");
|
|
|
+
|
|
|
json_object *UpdateFirmware;
|
|
|
UpdateFirmware = json_tokener_parse(UpdateFirmwarepayloadData);
|
|
|
if(!is_error(UpdateFirmware))
|
|
@@ -13351,6 +13362,8 @@ void *UpdateFirmwareProcess(void *data)
|
|
|
}
|
|
|
|
|
|
if(strstr((char*)ShmOCPP16Data->FirmwareStatusNotification.Status, FirmwareStatusStr[FirmwareStatus_Downloaded]) != NULL)ShmOCPP16Data->MsMsg.bits.UpdateFirmwareReq = 1;
|
|
|
+
|
|
|
+ interLock.isUpdateFirmwareGoing = 0;
|
|
|
pthread_exit(NULL);
|
|
|
}
|
|
|
|