|
@@ -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);
|