Преглед на файлове

Merge branch 'SuppliedDeviation' into GreedyLogs

TomTroppmann преди 2 години
родител
ревизия
33bd1fb81b
променени са 1 файла, в които са добавени 11 реда и са изтрити 3 реда
  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);