Selaa lähdekoodia

2022-09-06 /Yuanda Tsai >> update DcMeter Define.h again and fix compile warning issue

Yuanda_Tsai 2 vuotta sitten
vanhempi
commit
cace9f63cf

+ 48 - 35
EVSE/Modularization/DcMeter/Module_DcMeter.c

@@ -122,7 +122,7 @@ int main(void)
 	RatedCurrentParsing((char*)ShmSysConfigAndInfo->SysConfig.ModelName, &modelnameInfo);
 
 #else
-	modelnameInfo.GetGunCount = 4;
+	modelnameInfo.GetGunCount = 1;
 
 #endif//DEBUG_STANDALONG
 
@@ -145,7 +145,7 @@ int main(void)
 		{
 			ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].ActionCmd = 2;
 			readMeterLegal(gun_index,&meter_transaction_Action[gun_index]);
-			strcpy(ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.transactionId,meter_transaction_Action[gun_index].head.transactionId);
+			strcpy((char*)ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.transactionId,(char*)meter_transaction_Action[gun_index].head.transactionId);
 		}
 	}
 	
@@ -196,12 +196,12 @@ int main(void)
 											
 											//update transaction content
 											#ifndef DEBUG_STANDALONG											
-											strcpy(meter_transaction_Action[gun_index].head.evseId, ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.evseId);
-											strcpy(meter_transaction_Action[gun_index].head.transactionId,  ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.transactionId);
-											strcpy(meter_transaction_Action[gun_index].head.clientId,  ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.clientId);
+											strcpy((char*)meter_transaction_Action[gun_index].head.evseId, (char*)ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.evseId);
+											strcpy((char*)meter_transaction_Action[gun_index].head.transactionId,  (char*)ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.transactionId);
+											strcpy((char*)meter_transaction_Action[gun_index].head.clientId,  (char*)ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.clientId);
 											meter_transaction_Action[gun_index].head.tariffId =  ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.tariffId;
 											meter_transaction_Action[gun_index].head.cableId = ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.cableId;
-											strcpy(meter_transaction_Action[gun_index].head.userData,  ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.userData);
+											strcpy((char*)meter_transaction_Action[gun_index].head.userData,  (char*)ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].head.userData);
 											#else
 											strcpy(meter_transaction_Action[gun_index].head.evseId, "evse45");
 											strcpy(meter_transaction_Action[gun_index].head.transactionId, "ddd5002");
@@ -235,7 +235,7 @@ int main(void)
 														 */
 														//clear ocmf value
 														strcpy((char *) meter_transaction_Action[gun_index].transactionOCMF, "");
-														sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].transactionOCMF,
+														sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].transactionOCMF,
 															"%s",meter_transaction_Action[gun_index].transactionOCMF);
 															
 														 #ifdef DEBUG_SHAREMEM_TRANSACTION_START_LOG
@@ -308,13 +308,13 @@ int main(void)
 												 ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].paginationCounter = 
 												 meter_transaction_Result[gun_index].paginationCounter;
 												 
-												sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.transactionId,
+												sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.transactionId,
 												"%s",meter_transaction_Result[gun_index].head.transactionId);										 
 												 
-												sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.evseId,
+												sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.evseId,
 												"%s",meter_transaction_Result[gun_index].head.evseId);										 
 
-												sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.clientId,
+												sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.clientId,
 												"%s",meter_transaction_Result[gun_index].head.clientId);										 
 												 
 												ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.tariffId = 
@@ -323,13 +323,13 @@ int main(void)
 												ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.cableId = 
 												meter_transaction_Result[gun_index].head.cableId;	
 
-												sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.userData,
+												sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].head.userData,
 												"%s",meter_transaction_Result[gun_index].head.userData);										 
 												 
-												sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].timestampStart,
+												sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].timestampStart,
 												"%s",meter_transaction_Result[gun_index].timestampStart);
 												
-												sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].timestampStop,
+												sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].timestampStop,
 												"%s",meter_transaction_Result[gun_index].timestampStop);
 												
 												 ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].transactionDuration = 
@@ -338,7 +338,7 @@ int main(void)
 												 ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].transactionStatus = 
 												 meter_transaction_Result[gun_index].transactionStatus;
 												
-												sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].energyUnit,
+												sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].energyUnit,
 												"%s",meter_transaction_Result[gun_index].energyUnit);
 												
 												 ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].energyImport = 
@@ -359,7 +359,7 @@ int main(void)
 												 ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].energyExportTotalStop = 
 												 meter_transaction_Result[gun_index].energyExportTotalStop;
 												 
-												sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].signature,
+												sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionResult[gun_index].signature,
 												"%s",meter_transaction_Result[gun_index].signature);										 
 												 
 			
@@ -428,17 +428,20 @@ int main(void)
 															 */
 															 
 														
-															sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].transactionOCMF,
+															sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].transactionOCMF,
 															"%s",meter_transaction_Action[gun_index].transactionOCMF);
 															
-															PR("OCMF : %s \n", ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].transactionOCMF,
-															"%s",meter_transaction_Action[gun_index].transactionOCMF);
+															PR("OCMF : %s , %s\n", ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].transactionOCMF,
+																				   meter_transaction_Action[gun_index].transactionOCMF);
 															
 																	#ifdef DEBUG_SHAREMEM_TRANSACTION_RESULT_LOG
 																	DEBUG_INFO("shm transactionOCMF %d : %s\n", gun_index, ShmSysConfigAndInfo->SysInfo.DcMeterTransactionAction[gun_index].transactionOCMF);															
 																	#endif
 															 
 															#else
+															
+																PR("OCMF : %s\n",meter_transaction_Action[gun_index].transactionOCMF);
+																				   
 																	#ifdef DEBUG_STANDALONE_TRANSACTION_RESULT_LOG
 																	DEBUG_INFO("transactionOCMF %d : %s\n", gun_index, meter_transaction_Action[gun_index].transactionOCMF);
 																	#endif													
@@ -497,7 +500,7 @@ int main(void)
 												meter_read_transaction_record[gun_index].OcmfInfoReady = 0;
 												
 												#ifndef DEBUG_STANDALONG
-												strcpy(meter_read_transaction_record[gun_index].head.transactionId,  ShmSysConfigAndInfo->SysInfo.DcMeterReadTransactionRecord[gun_index].head.transactionId);
+												strcpy((char*)meter_read_transaction_record[gun_index].head.transactionId,  (char*)ShmSysConfigAndInfo->SysInfo.DcMeterReadTransactionRecord[gun_index].head.transactionId);
 												#endif
 												
 												PR("<<<<<<<<<  Get Record Transaction OCMF : %d - ID : %s>>>>>>>>>\n", gun_index,meter_read_transaction_record[gun_index].head.transactionId);
@@ -511,11 +514,11 @@ int main(void)
 															 */
 															 
 														
-															sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterReadTransactionRecord[gun_index].transactionOCMF,
+															sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterReadTransactionRecord[gun_index].transactionOCMF,
 															"%s",meter_read_transaction_record[gun_index].transactionOCMF);
 															
-															PR("OCMF : %s \n", ShmSysConfigAndInfo->SysInfo.DcMeterReadTransactionRecord[gun_index].transactionOCMF,
-															"%s",meter_read_transaction_record[gun_index].transactionOCMF);
+															PR("OCMF : %s ,%s\n", ShmSysConfigAndInfo->SysInfo.DcMeterReadTransactionRecord[gun_index].transactionOCMF,
+																	      	   	  meter_read_transaction_record[gun_index].transactionOCMF);
 
 															
 																	#ifdef DEBUG_SHAREMEM_TRANSACTION_RESULT_LOG
@@ -585,7 +588,7 @@ int main(void)
 										ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].presentPower = meter_info[gun_index].presentPower;
 										ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].totlizeImportEnergy = meter_info[gun_index].totlizeImportEnergy;
 										ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].totlizeExportEnergy = meter_info[gun_index].totlizeExportEnergy;
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].timestamp, "%s",meter_info[gun_index].timestamp);
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterInfo[gun_index].timestamp, "%s",meter_info[gun_index].timestamp);
 										 
 											#ifdef DEBUG_SHAREMEM_LIVEMEASURE_LOG
 											//evern 60s record 1s
@@ -659,28 +662,28 @@ int main(void)
 										ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].MeterStatusFlag.bits.suMeasureFailureOccurred = 
 										meter_status_info[gun_index].MeterStatusFlag.bits.suMeasureFailureOccurred;
 										 								 
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].applicationFirmwareVersion, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].applicationFirmwareVersion,
 										"%s",meter_status_info[gun_index].applicationFirmwareVersion);
 										  
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].applicationFirmwareAuthTag, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].applicationFirmwareAuthTag,
 										"%s",meter_status_info[gun_index].applicationFirmwareAuthTag);
 										 
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].legalFirmwareVersion, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].legalFirmwareVersion,
 										"%s",meter_status_info[gun_index].legalFirmwareVersion);
 										
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].legalFirmwareAuthTag, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].legalFirmwareAuthTag,
 										"%s",meter_status_info[gun_index].legalFirmwareAuthTag);
 										 
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].sensorFirmwareVersion, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].sensorFirmwareVersion,
 										"%s",meter_status_info[gun_index].sensorFirmwareVersion);								
 
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].sensorFirmwareCrc, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].sensorFirmwareCrc,
 										"%s",meter_status_info[gun_index].sensorFirmwareCrc);
 										
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].ipAddress, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].ipAddress,
 										"%s",meter_status_info[gun_index].ipAddress);
 										 
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].meterId, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].meterId,
 										"%s",meter_status_info[gun_index].meterId);
 										
 										ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].MeterErrorFlag.bits.muInitIsFailed = 
@@ -716,10 +719,10 @@ int main(void)
 										ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].MeterErrorFlag.bits.muStateIsFailed = 
 										meter_status_info[gun_index].MeterErrorFlag.bits.muStateIsFailed;
 										
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].publicKey, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].publicKey,
 										"%s",meter_status_info[gun_index].publicKey);
 										 
-										sprintf(&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].publicKeyOcmf, 
+										sprintf((char*)&ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].publicKeyOcmf,
 										"%s",meter_status_info[gun_index].publicKeyOcmf);								
 										
 										ShmSysConfigAndInfo->SysInfo.DcMeterStatusInfo[gun_index].indexOfLastTransaction = meter_status_info[gun_index].indexOfLastTransaction;
@@ -882,9 +885,19 @@ int main(void)
 			DEBUG_INFO("Meter %d - LinkStatus %d :  failCount: %d  ActionCmd: %d  OcmpInfoReady: %d RecordActionCmd: %d RecordOcmpInfoReady: %d\n", gun_index,
 			meter_info[gun_index].LinkStatus,failCount[gun_index] ,
 			meter_transaction_Action[gun_index].ActionCmd ,
-			meter_transaction_Action[gun_index].OcmpInfoReady,
+			meter_transaction_Action[gun_index].OcmfInfoReady,
 			meter_read_transaction_record[gun_index].ActionCmd ,
-			meter_read_transaction_record[gun_index].OcmpInfoReady);
+			meter_read_transaction_record[gun_index].OcmfInfoReady);
+			
+			PR ("===================   STAND ALONE\n");
+			PR("end : %d  ActionCmd : %d OcmfInfoReady : %d RecordActionCmd: %d RecordOcmpInfoReady: %d \n", gun_index,meter_transaction_Action[gun_index].ActionCmd, 
+			meter_transaction_Action[gun_index].OcmfInfoReady,
+			meter_read_transaction_record[gun_index].ActionCmd,
+			meter_read_transaction_record[gun_index].OcmfInfoReady);
+			PR("shm bits-suLinkStatusIsOk %d : %d \n", gun_index,meter_status_info[gun_index].MeterStatusFlag.bits.suLinkStatusIsOk);
+			PR("shm bits-transactionIsOnGoing %d : %d \n", gun_index,meter_status_info[gun_index].MeterStatusFlag.bits.transactionIsOnGoing);
+			PR("shm bits-timeSyncStatusIsOk %d : %d \n", gun_index,meter_status_info[gun_index].MeterStatusFlag.bits.timeSyncStatusIsOk);			
+			
 			#endif
 			
 			usleep(1000000/modelnameInfo.GetGunCount);

+ 38 - 37
EVSE/Modularization/DcMeter/meterComm.c

@@ -80,7 +80,7 @@ int readMeterLivemeasure(uint8_t meterIndex, Meter_Info *meter_info)
 						PR("Totalize export energy %d : %.3f V\n", meter_info->totlizeExportEnergy);
 
 					if(json_object_object_get(livemeasure, "timestamp") != NULL){						
-						sprintf(&meter_info->timestamp, "%s", json_object_get_string(json_object_object_get(livemeasure, "timestamp")));
+						sprintf((char*)&meter_info->timestamp, "%s", json_object_get_string(json_object_object_get(livemeasure, "timestamp")));
 						PR("timestamp : %s\n",meter_info->timestamp);	
 					}
 					
@@ -190,55 +190,55 @@ int readMeterStatusInfo(uint8_t meterIndex, Meter_Status_Info *meter_status_info
 		
 						if(json_object_object_get(json_object_object_get(livemeasure, "version"), "applicationFirmwareVersion") != NULL)
 						{
-								sprintf(&meter_status_info->applicationFirmwareVersion, "%s", json_object_get_string(json_object_object_get
+								sprintf((char*)&meter_status_info->applicationFirmwareVersion, "%s", json_object_get_string(json_object_object_get
 								(json_object_object_get(livemeasure, "version"), "applicationFirmwareVersion")));
 								PR("applicationFirmwareVersion : %s\n",meter_status_info->applicationFirmwareVersion);
 						}
 
 						if(json_object_object_get(json_object_object_get(livemeasure, "version"), "applicationFirmwareAuthTag") != NULL)
 						{
-								sprintf(&meter_status_info->applicationFirmwareAuthTag, "%s", json_object_get_string(json_object_object_get
+								sprintf((char*)&meter_status_info->applicationFirmwareAuthTag, "%s", json_object_get_string(json_object_object_get
 								(json_object_object_get(livemeasure, "version"), "applicationFirmwareAuthTag")));
 								PR("applicationFirmwareAuthTag : %s\n",meter_status_info->applicationFirmwareAuthTag);
 						}
 						
 						if(json_object_object_get(json_object_object_get(livemeasure, "version"), "legalFirmwareVersion") != NULL)
 						{
-								sprintf(&meter_status_info->legalFirmwareVersion, "%s", json_object_get_string(json_object_object_get
+								sprintf((char*)&meter_status_info->legalFirmwareVersion, "%s", json_object_get_string(json_object_object_get
 								(json_object_object_get(livemeasure, "version"), "legalFirmwareVersion")));
 								PR("applicationFirmwareAuthTag : %s\n",meter_status_info->legalFirmwareVersion);
 						}
 						
 						if(json_object_object_get(json_object_object_get(livemeasure, "version"), "legalFirmwareAuthTag") != NULL)
 						{
-								sprintf(&meter_status_info->legalFirmwareAuthTag, "%s", json_object_get_string(json_object_object_get
+								sprintf((char*)&meter_status_info->legalFirmwareAuthTag, "%s", json_object_get_string(json_object_object_get
 								(json_object_object_get(livemeasure, "version"), "legalFirmwareAuthTag")));
 								PR("applicationFirmwareAuthTag : %s\n",meter_status_info->legalFirmwareAuthTag);
 						}
 						
 						if(json_object_object_get(json_object_object_get(livemeasure, "version"), "sensorFirmwareVersion") != NULL)
 						{
-								sprintf(&meter_status_info->sensorFirmwareVersion, "%s", json_object_get_string(json_object_object_get
+								sprintf((char*)&meter_status_info->sensorFirmwareVersion, "%s", json_object_get_string(json_object_object_get
 								(json_object_object_get(livemeasure, "version"), "sensorFirmwareVersion")));
 								PR("applicationFirmwareAuthTag : %s\n",meter_status_info->sensorFirmwareVersion);
 						}
 
 						if(json_object_object_get(json_object_object_get(livemeasure, "version"), "sensorFirmwareCrc") != NULL)
 						{
-								sprintf(&meter_status_info->sensorFirmwareCrc, "%s", json_object_get_string(json_object_object_get
+								sprintf((char*)&meter_status_info->sensorFirmwareCrc, "%s", json_object_get_string(json_object_object_get
 								(json_object_object_get(livemeasure, "version"), "sensorFirmwareCrc")));
 								PR("applicationFirmwareAuthTag : %s\n",meter_status_info->sensorFirmwareCrc);
 						}
 						
 						if(json_object_object_get(livemeasure, "ipAddress") != NULL)
 						{
-								sprintf(&meter_status_info->ipAddress, "%s", json_object_get_string(json_object_object_get(livemeasure, "ipAddress")));
+								sprintf((char*)&meter_status_info->ipAddress, "%s", json_object_get_string(json_object_object_get(livemeasure, "ipAddress")));
 								PR("ipAddress : %s\n",meter_status_info->ipAddress);
 						}
 
 						if(json_object_object_get(livemeasure, "meterId") != NULL)
 						{
-								sprintf(&meter_status_info->meterId, "%s", json_object_get_string(json_object_object_get(livemeasure, "meterId")));
+								sprintf((char*)&meter_status_info->meterId, "%s", json_object_get_string(json_object_object_get(livemeasure, "meterId")));
 								PR("meterId : %s\n",meter_status_info->meterId);
 						}
 
@@ -323,13 +323,13 @@ int readMeterStatusInfo(uint8_t meterIndex, Meter_Status_Info *meter_status_info
 							
 						if(json_object_object_get(livemeasure, "publicKey") != NULL)
 						{
-								sprintf(&meter_status_info->publicKey, "%s", json_object_get_string(json_object_object_get(livemeasure, "publicKey")));
+								sprintf((char*)&meter_status_info->publicKey, "%s", json_object_get_string(json_object_object_get(livemeasure, "publicKey")));
 								PR("publicKey : %s\n",meter_status_info->publicKey);
 						}
 
 						if(json_object_object_get(livemeasure, "publicKeyOcmf") != NULL)
 						{
-								sprintf(&meter_status_info->publicKeyOcmf, "%s", json_object_get_string(json_object_object_get(livemeasure, "publicKeyOcmf")));
+								sprintf((char*)&meter_status_info->publicKeyOcmf, "%s", json_object_get_string(json_object_object_get(livemeasure, "publicKeyOcmf")));
 								PR("publicKeyOcmf : %s\n",meter_status_info->publicKeyOcmf);
 						}
 
@@ -364,17 +364,18 @@ int startMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_tr
 	int result = FAIL;
 	char host[128]="";
 	uint8_t data[4096];
-  
+	uint8_t tmp[4096];
+
 	json_object *TransactionStartData = json_object_new_object();	
 	json_object_object_add(TransactionStartData, "evseId", json_object_new_string((char*)meter_transaction_Action->head.evseId));
 	json_object_object_add(TransactionStartData, "transactionId", json_object_new_string((char*)meter_transaction_Action->head.transactionId));
 	json_object_object_add(TransactionStartData, "clientId", json_object_new_string((char*)meter_transaction_Action->head.clientId));
-	json_object_object_add(TransactionStartData, "tariffId", json_object_new_int((char*)meter_transaction_Action->head.tariffId));
-	json_object_object_add(TransactionStartData, "cableId", json_object_new_int((char*)meter_transaction_Action->head.cableId));
+	json_object_object_add(TransactionStartData, "tariffId", json_object_new_int(meter_transaction_Action->head.tariffId));
+	json_object_object_add(TransactionStartData, "cableId", json_object_new_int(meter_transaction_Action->head.cableId));
 	json_object_object_add(TransactionStartData, "userData", json_object_new_string((char*)meter_transaction_Action->head.userData));
-		
-	TransactionStartData = json_object_to_json_string(TransactionStartData); 
-	
+
+	sprintf((char*)tmp, "%s",  json_object_to_json_string_ext(TransactionStartData, JSON_C_TO_STRING_PLAIN));
+
 	sprintf(host, "http://192.168.0.%d/v1/legal", (31 + meterIndex));
 		 
 	switch(meterModel)
@@ -383,7 +384,7 @@ int startMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_tr
 		default:
  
      
-			if(httpPost((uint8_t*)host,TransactionStartData,data)!= FAIL)
+			if(httpPost((uint8_t*)host,tmp,data)!= FAIL)
 			{
 				json_object *livemeasure;
 				livemeasure = json_tokener_parse((char*)data);
@@ -393,8 +394,8 @@ int startMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_tr
 					PR("PostStartGet %s\n",data);
 				 result = PASS;
 				}
-			json_object_put(livemeasure);
-			json_object_put(TransactionStartData);				
+				json_object_put(livemeasure);
+				json_object_put(TransactionStartData);
 			}
 
 			break;
@@ -407,23 +408,23 @@ int startMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_tr
 
 int stopMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_transaction_Action,Meter_transaction_Result *meter_transaction_Result)
 {
-	
 	int result = FAIL;
 	char host[128]="";
 	uint8_t data[4096];
-		
+	uint8_t tmp[4096];
+
 	sprintf(host, "http://192.168.0.%d/v1/legal?transactionId=%s",(31 + meterIndex), meter_transaction_Action->head.transactionId);
            
-  json_object *TransactionStopData = json_object_new_object();		
-	json_object_object_add(TransactionStopData, "running", json_object_new_boolean(0));	
-	TransactionStopData = (uint8_t *) json_object_to_json_string(TransactionStopData);
+	json_object *TransactionStopData = json_object_new_object();
+	json_object_object_add(TransactionStopData, "running", json_object_new_boolean(0));
+	sprintf((char*)tmp, "%s", json_object_to_json_string_ext(TransactionStopData, JSON_C_TO_STRING_PLAIN));
 	
 	switch(meterModel)
 	{
 		case METER_MODEL_LEM_L18005A:
 		default:
 
-			if(httpPut((uint8_t*)host,TransactionStopData,data)!= FAIL)	
+			if(httpPut((uint8_t*)host,tmp,data)!= FAIL)
 			//if(httpGet(host,data)!= FAIL)	
 			{
 				json_object *livemeasure;
@@ -442,20 +443,20 @@ int stopMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_tra
 
 						if(json_object_object_get(livemeasure, "transactionId") != NULL)
 						{
-								sprintf(&meter_transaction_Result->head.transactionId, "%s", json_object_get_string(json_object_object_get(livemeasure, "transactionId")));
+								sprintf((char*)&meter_transaction_Result->head.transactionId, "%s", json_object_get_string(json_object_object_get(livemeasure, "transactionId")));
 								PR("transactionId : %s\n",meter_transaction_Result->head.transactionId);										
 						}
 
 						if(json_object_object_get(livemeasure, "evseId") != NULL)
 						{
-								sprintf(&meter_transaction_Result->head.evseId, "%s", json_object_get_string(json_object_object_get(livemeasure, "evseId")));
+								sprintf((char*)&meter_transaction_Result->head.evseId, "%s", json_object_get_string(json_object_object_get(livemeasure, "evseId")));
 								PR("evseId : %s\n",meter_transaction_Result->head.evseId);										
 						}
 												
 
 						if(json_object_object_get(livemeasure, "clientId") != NULL)
 						{
-								sprintf(&meter_transaction_Result->head.clientId, "%s", json_object_get_string(json_object_object_get(livemeasure, "clientId")));
+								sprintf((char*)&meter_transaction_Result->head.clientId, "%s", json_object_get_string(json_object_object_get(livemeasure, "clientId")));
 								PR("clientId : %s\n",meter_transaction_Result->head.clientId);										
 						}
 
@@ -467,20 +468,20 @@ int stopMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_tra
 
 						if(json_object_object_get(livemeasure, "userData") != NULL)
 						{
-								sprintf(&meter_transaction_Result->head.userData, "%s", json_object_get_string(json_object_object_get(livemeasure, "userData")));
+								sprintf((char*)&meter_transaction_Result->head.userData, "%s", json_object_get_string(json_object_object_get(livemeasure, "userData")));
 								PR("clientId : %s\n",meter_transaction_Result->head.userData);										
 						}					
 
 						if(json_object_object_get(json_object_object_get(livemeasure, "meterValue"), "timestampStart") != NULL)
 						{
-								sprintf(&meter_transaction_Result->timestampStart, "%s", json_object_get_string(json_object_object_get
+								sprintf((char*)&meter_transaction_Result->timestampStart, "%s", json_object_get_string(json_object_object_get
 								(json_object_object_get(livemeasure, "meterValue"), "timestampStart")));
 								PR("timestampStart : %s\n",meter_transaction_Result->timestampStart);
 						}
 
 						if(json_object_object_get(json_object_object_get(livemeasure, "meterValue"), "timestampStop") != NULL)
 						{
-								sprintf(&meter_transaction_Result->timestampStop, "%s", json_object_get_string(json_object_object_get
+								sprintf((char*)&meter_transaction_Result->timestampStop, "%s", json_object_get_string(json_object_object_get
 								(json_object_object_get(livemeasure, "meterValue"), "timestampStop")));
 								PR("timestampStop : %s\n",meter_transaction_Result->timestampStop);
 						}
@@ -501,7 +502,7 @@ int stopMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_tra
 
 						if(json_object_object_get(json_object_object_get(json_object_object_get(livemeasure, "meterValue"), "sampleValue"), "energyUnit") != NULL)
 						{
-							strcpy(meter_transaction_Result->energyUnit, json_object_get_string(json_object_object_get(json_object_object_get(json_object_object_get
+							strcpy((char*)meter_transaction_Result->energyUnit, json_object_get_string(json_object_object_get(json_object_object_get(json_object_object_get
 							(livemeasure, "meterValue"), "sampleValue"), "energyUnit")));
 							PR("energyUnit : %s\n",meter_transaction_Result->energyUnit);
 						}
@@ -551,7 +552,7 @@ int stopMeterTransaction(uint8_t meterIndex, Meter_transaction_Action *meter_tra
 						
 						if(json_object_object_get(livemeasure, "signature") != NULL)
 						{
-								sprintf(&meter_transaction_Result->signature, "%s", json_object_get_string(json_object_object_get(livemeasure, "signature")));
+								sprintf((char*)&meter_transaction_Result->signature, "%s", json_object_get_string(json_object_object_get(livemeasure, "signature")));
 								PR("signature : %s\n",meter_transaction_Result->signature);										
 						}
 						
@@ -591,7 +592,7 @@ int readMeterTransactionOCMF(uint8_t meterIndex, Meter_transaction_Action *meter
 			{
 				
 				PR("Get %s\n",data);
-				sprintf(&meter_transaction_Action->transactionOCMF, "%s", data);				
+				sprintf((char*)&meter_transaction_Action->transactionOCMF, "%s", data);
 				//printf("GETOCMF %s\n",meter_transaction_Result->transactionOCMF);
 				json_object *livemeasure;
 				livemeasure = json_tokener_parse((char*)data);
@@ -638,7 +639,7 @@ int readMeterLegal(uint8_t meterIndex, Meter_transaction_Action *meter_transacti
 				{	
 					if(json_object_object_get(livemeasure, "transactionId") != NULL)
 					{
-								sprintf(&meter_transaction_Action->head.transactionId, "%s", json_object_get_string(json_object_object_get(livemeasure, "transactionId")));
+								sprintf((char*)&meter_transaction_Action->head.transactionId, "%s", json_object_get_string(json_object_object_get(livemeasure, "transactionId")));
 								PR("transactionId : %s\n",meter_transaction_Action->head.transactionId);										
 					}
 					result = PASS;
@@ -674,7 +675,7 @@ int configure_meter_time(uint8_t meterIndex)
   //{"time": { "utc":"2022-06-29T13:09:26Z" }}
 	sprintf(host,"http://192.168.0.%d/v1/settings",(31 + meterIndex));
 	memset(postdata, 0, sizeof(postdata));
-	sprintf(postdata,"{\"time\": { \"utc\":\"%d-%d-%dT%02d:%02d:%02dZ\" }}", (utcTime->tm_year+1900), (utcTime->tm_mon+1), (utcTime->tm_mday), (utcTime->tm_hour) % 24, utcTime->tm_min, utcTime->tm_sec); 
+	sprintf((char*)postdata,"{\"time\": { \"utc\":\"%d-%d-%dT%02d:%02d:%02dZ\" }}", (utcTime->tm_year+1900), (utcTime->tm_mon+1), (utcTime->tm_mday), (utcTime->tm_hour) % 24, utcTime->tm_min, utcTime->tm_sec);
 	//sprintf(postdata,"{\"time\": { \"utc\":\"%d-%d-%dT%02d:%02d:%02dZ\" }}", 2021, (utcTime->tm_mon+1), (utcTime->tm_mday), (utcTime->tm_hour) % 24, utcTime->tm_min, utcTime->tm_sec); 
 	
 		PR("Local time and date: %s\n", postdata);

+ 1 - 1
EVSE/Projects/define.h

@@ -931,7 +931,7 @@ struct DC_METER_INFO
 	double totlizeImportEnergy;			// resolution: 1.000kwh
 	double totlizeExportEnergy;			// resolution: 1.000kwh
 	unsigned char timestamp[32];
-	uint8_t LinkStatus;								// 0 = unknow ,1 = link , 2 miss link
+	unsigned char LinkStatus;								// 0 = unknow ,1 = link , 2 miss link
 };
 
 typedef union