瀏覽代碼

2021-05-11 / Eason Yang
Action :
1. Improve : Resolution changed from 0.01 to 0.0001 kWh.
2. Improve : Power_consumption & power_consumption_at_start changed from uint32_t to uint64_t.
3. Improve : Query_Power_Consumption() function changed all content from 4 bytes to 8 bytes.

File :
1. main.c
Action 1

2. main.h
Action 2

3. Module_InternalComm.c
Action 3

Version : D0.50.XX.XXXX.XX

8009 3 年之前
父節點
當前提交
8f965be6d6

+ 11 - 23
EVSE/Projects/AW-CCS/Apps/Module_InternalComm.c

@@ -989,12 +989,12 @@ unsigned char Query_Power_Consumption(unsigned char fd, unsigned char targetAddr
 		   (rx[3] == tx[3]))
 		{
 #ifndef SIMULATION
-			Ret_Buf_T-> power_consumption = ((uint32_t)rx[6] | (((uint32_t)rx[7])<<8) | (((uint32_t)rx[8])<<16) | (((uint32_t)rx[9])<<24));
-			Ret_Buf_L1-> power_consumption = ((uint32_t)rx[10] | (((uint32_t)rx[11])<<8) | (((uint32_t)rx[12])<<16) | (((uint32_t)rx[13])<<24));
+			Ret_Buf_T-> power_consumption = ((uint32_t)rx[6] | (((uint32_t)rx[7])<<8) | (((uint32_t)rx[8])<<16) | (((uint32_t)rx[9])<<24) | (((uint32_t)rx[10])<<32) | (((uint32_t)rx[11])<<40) | (((uint32_t)rx[12])<<48) | (((uint32_t)rx[13])<<56));
+			Ret_Buf_L1-> power_consumption = ((uint32_t)rx[14] | (((uint32_t)rx[15])<<8) | (((uint32_t)rx[16])<<16) | (((uint32_t)rx[17])<<24) | (((uint32_t)rx[18])<<32) | (((uint32_t)rx[19])<<40) | (((uint32_t)rx[20])<<48) | (((uint32_t)rx[21])<<56));
 			if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount == 3)
 			{
-				Ret_Buf_L2-> power_consumption = ((uint32_t)rx[14] | (((uint32_t)rx[15])<<8) | (((uint32_t)rx[16])<<16) | (((uint32_t)rx[17])<<24));
-				Ret_Buf_L3-> power_consumption = ((uint32_t)rx[18] | (((uint32_t)rx[19])<<8) | (((uint32_t)rx[20])<<16) | (((uint32_t)rx[21])<<24));
+				Ret_Buf_L2-> power_consumption = ((uint32_t)rx[22] | (((uint32_t)rx[23])<<8) | (((uint32_t)rx[24])<<16) | (((uint32_t)rx[25])<<24) | (((uint32_t)rx[26])<<32) | (((uint32_t)rx[27])<<40) | (((uint32_t)rx[28])<<48) | (((uint32_t)rx[29])<<56));
+				Ret_Buf_L3-> power_consumption = ((uint32_t)rx[30] | (((uint32_t)rx[31])<<8) | (((uint32_t)rx[32])<<16) | (((uint32_t)rx[33])<<24) | (((uint32_t)rx[34])<<32) | (((uint32_t)rx[35])<<40) | (((uint32_t)rx[36])<<48) | (((uint32_t)rx[37])<<56));
 			}
 
 #else	//SIMULATION
@@ -2403,15 +2403,15 @@ int main(void)
 						DEBUG_INFO("MCU-%d get ble central id : %s\n", gun_index, ShmCharger->gun_info[gun_index].bleLoginCentralId.id);
 					}
 					
-					DEBUG_INFO("===========================================\n");
-					DEBUG_INFO("==== High priority polling : Case 10 ====\n");
-					DEBUG_INFO("===========================================\n");
-					DEBUG_INFO("MCU-%d get total power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/100));
-					DEBUG_INFO("MCU-%d get L1N_L12 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption/100));
+					DEBUG_INFO("*******************************************\n");
+					DEBUG_INFO("**** High priority polling : Case 10 ****\n");
+					DEBUG_INFO("*******************************************\n");
+					DEBUG_INFO("MCU-%d get total power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/10000.0));
+					DEBUG_INFO("MCU-%d get L1N_L12 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption/10000.0));
 					if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount == 3)
 					{
-						DEBUG_INFO("MCU-%d get L2N_L23 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption/100));
-						DEBUG_INFO("MCU-%d get L3N_L31 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption/100));
+						DEBUG_INFO("MCU-%d get L2N_L23 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption/10000.0));
+						DEBUG_INFO("MCU-%d get L3N_L31 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption/10000.0));
 					}
 				}
 			}
@@ -2845,18 +2845,6 @@ int main(void)
 							}
 							break;
 						case 6:
-							/*
-							DEBUG_INFO("===========================================\n");
-							DEBUG_INFO("==== Normal priority polling : Case 13 ====\n");
-							DEBUG_INFO("===========================================\n");
-							DEBUG_INFO("MCU-%d get total power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/100));
-							DEBUG_INFO("MCU-%d get L1N_L12 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption/100));
-							if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount == 3)
-							{
-								DEBUG_INFO("MCU-%d get L2N_L23 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption/100));
-								DEBUG_INFO("MCU-%d get L3N_L31 power consumption : %f kWh\n",gun_index, ((float)ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption/100));
-							}
-							*/
 							break;
 						case 7:
 							if(ShmCharger->gun_info[gun_index].isSetBreatheLedTiming == ON)

+ 12 - 13
EVSE/Projects/AW-CCS/Apps/main.c

@@ -2208,21 +2208,20 @@ int presentChargedEnergyUpdate(unsigned char gun_index)
 
 	if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount==1)
 	{
-		// Resolution: 0.01 kwh
-		ShmCharger->gun_info[gun_index].presentChargedEnergyPeriod[tm->tm_hour] += (((float)(ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption - ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption_at_start))/10.0) - presentChargedEnergyTotal(gun_index);
+		// Resolution: 0.0001 kwh
+		ShmCharger->gun_info[gun_index].presentChargedEnergyPeriod[tm->tm_hour] += (((float)(ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption - ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption_at_start))/10000.0) - presentChargedEnergyTotal(gun_index);
 
 	}
 	else
 	{
-		// Resolution: 0.01 kwh
-		ShmCharger->gun_info[gun_index].presentChargedEnergyPeriod[tm->tm_hour] += ((((float)(ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption - ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption_at_start))/10.0) +
-																				    (((float)(ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption - ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption_at_start))/10.0) +
-																				    (((float)(ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption - ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption_at_start))/10.0))
+		// Resolution: 0.0001 kwh
+		ShmCharger->gun_info[gun_index].presentChargedEnergyPeriod[tm->tm_hour] += ((((float)(ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption - ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption_at_start))/10000.0) +
+																				    (((float)(ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption - ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption_at_start))/10000.0) +
+																				    (((float)(ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption - ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption_at_start))/10000.0))
 																					- presentChargedEnergyTotal(gun_index);
 	}
 
-	// Resolution: 0.1 kwh
-	ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedEnergy = presentChargedEnergyTotal(gun_index)/10.0;
+	ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedEnergy = presentChargedEnergyTotal(gun_index);
 
 	return result;
 }
@@ -3539,7 +3538,7 @@ void checkStopReason(uint8_t gun_index)
 		}
 		DEBUG_INFO("Gun-%d : StopReason [ %s ]...\n.",gun_index,ShmOCPP16Data->StopTransaction[gun_index].StopReason);
 
-		ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/100.0);
+		ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/10000.0);
 		ShmOCPP16Data->CpMsg.bits[gun_index].StopTransactionReq = ON;
 	}
 	else if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_20)
@@ -3603,7 +3602,7 @@ void checkStopReason(uint8_t gun_index)
 		}
 		DEBUG_INFO("Gun-%d : StopReason [ %s ]...\n.", gun_index, ShmOCPP20Data->TransactionEvent[gun_index].transactionInfo.stoppedReason);
 
-		ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/100.0);
+		ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/10000.0);
 		ShmOCPP20Data->CpMsg.bits[gun_index].TransactionEventReq = ON;
 	}
 }
@@ -4441,7 +4440,7 @@ int main(void)
 									ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption_at_start = ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption;
 									ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption_at_start = ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption;
 									if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount==1)
-										ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/100.0);
+										ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/10000.0);
 									else
 									{
 										//ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption[0] = (ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption/100.0);
@@ -4542,7 +4541,7 @@ int main(void)
 									ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption_at_start = ShmCharger->gun_info[gun_index].powerConsumption[1].power_consumption;
 									ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption_at_start = ShmCharger->gun_info[gun_index].powerConsumption[2].power_consumption;
 									if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount==1)
-										ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/100.0);
+										ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/10000.0);
 									else
 									{
 										//ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption[0] = (ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption/100);
@@ -4848,7 +4847,7 @@ int main(void)
 						// Charging session info calculation
 						setLedMotion(gun_index,LED_ACTION_CHARGING);
 						if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount==1)
-							ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/100.0);
+							ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption = (ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/10000.0);
 						else
 						{
 							//ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PowerConsumption[0] = (ShmCharger->gun_info[gun_index].powerConsumption[0].power_consumption/100);

+ 2 - 2
EVSE/Projects/AW-CCS/Apps/main.h

@@ -447,8 +447,8 @@ typedef struct LEGACY_REQUEST
 
 typedef struct POWER_CONSUMPTION
 {
-	uint32_t power_consumption;
-	uint32_t power_consumption_at_start;
+	uint64_t power_consumption;
+	uint64_t power_consumption_at_start;
 
 }Power_Consumption;
 

二進制
EVSE/Projects/AW-CCS/Images/FactoryDefaultConfig.bin


二進制
EVSE/Projects/AW-CCS/Images/ramdisk.gz


二進制
EVSE/rootfs/root/Module_Payment


二進制
EVSE/rootfs/root/OcppBackend20