Browse Source

Merge branch 'SuppliedDeviation' into GreedyLogs

TomTroppmann 2 years ago
parent
commit
33bd1fb81b
1 changed files with 11 additions and 3 deletions
  1. 11 3
      src/ui/model/DecoratedNetwork.java

+ 11 - 3
src/ui/model/DecoratedNetwork.java

@@ -261,11 +261,19 @@ public class DecoratedNetwork {
 	
 	
 	private void setConsumerState(Consumer con) {
-		if(con.getEnergySelfSupplied() + con.getEnergyFromNetwork() > con.getEnergyFromConsumingElemnets()) {
+		float suppliedEnergy = con.getEnergySelfSupplied() + con.getEnergyFromNetwork();
+		float consumedEnergy = con.getEnergyFromConsumingElemnets();
+		float minimumEnergyFroOneElement = con.getMinimumConsumingElementEnergy();
+		float supplyPercentage = (consumedEnergy > 0.001) ? suppliedEnergy/consumedEnergy : 1.0f;
+		//TODO Preferences
+		final float percentageDeviation = 0.025f;
+		
+		
+		if( supplyPercentage > 1.0f + percentageDeviation) {
 			con.setState(HolonObjectState.OVER_SUPPLIED);
-		}else if(con.getEnergySelfSupplied() + con.getEnergyFromNetwork() == con.getEnergyFromConsumingElemnets()) {
+		}else if(supplyPercentage > 1.0f - percentageDeviation) {
 			con.setState(HolonObjectState.SUPPLIED);
-		}else if(con.getEnergySelfSupplied() + con.getEnergyFromNetwork() >= con.getMinimumConsumingElementEnergy()) {
+		}else if(suppliedEnergy >= minimumEnergyFroOneElement) {
 			con.setState(HolonObjectState.PARTIALLY_SUPPLIED);
 		}else {
 			con.setState(HolonObjectState.NOT_SUPPLIED);