|
@@ -13,10 +13,10 @@ public class StorageProductionController {
|
|
|
|
|
|
public float currentPossibleStorageProduction() {
|
|
|
float possibleEnergy = 0;
|
|
|
-// for (StorageElement so : storages) {
|
|
|
-// possibleEnergy += so.getPossibleProduction();
|
|
|
-// }
|
|
|
- return 0;// TODO: fix when really in use
|
|
|
+ for (StorageElement so : storages) {
|
|
|
+ possibleEnergy += so.getPossibleProduction();
|
|
|
+ }
|
|
|
+ return possibleEnergy;
|
|
|
}
|
|
|
|
|
|
public float currentStorageProduction() {
|
|
@@ -29,37 +29,34 @@ public class StorageProductionController {
|
|
|
return producedEnergy;
|
|
|
}
|
|
|
|
|
|
- public void enableStorageProduction(float energyNeeded) {
|
|
|
+ public void enableStorageProduction(final float energyNeeded) {
|
|
|
System.out.println("energy needed from storage" + energyNeeded);
|
|
|
-// float enabledEnergy = 0;
|
|
|
-// StorageObject.Mode lastMode = null;
|
|
|
-// float lastEnergy = 0;
|
|
|
-//
|
|
|
-// if(currentStorageProduction() < energyNeeded){
|
|
|
-// for (StorageObject so: storages) {
|
|
|
-// if (so.getStatus().equals(StorageObject.Mode.idle)
|
|
|
-// || so.getStatus().equals(StorageObject.Mode.auto)
|
|
|
-// || so.getStatus().equals(StorageObject.Mode.save)) {
|
|
|
-// // TODO: den groesten zuerst aktivieren? > unterversorgung
|
|
|
-// // TODO: den kleinsten zuerst aktivieren > ueberversorgung
|
|
|
-// lastEnergy = so.getEnergyAtTimeStep(0);
|
|
|
-// enabledEnergy += so.getEnergyAtTimeStep(0); //TODO:timestep
|
|
|
-// lastMode = so.getStatus();
|
|
|
-// so.setStatus(StorageObject.Mode.idle);
|
|
|
-// }
|
|
|
-//
|
|
|
-// if(enabledEnergy > energyNeeded){
|
|
|
-// so.setStatus(lastMode);
|
|
|
-// enabledEnergy -= lastEnergy;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }else{
|
|
|
+ float energyLeftToEnabled = energyNeeded;
|
|
|
+
|
|
|
+ if(currentStorageProduction() < energyNeeded){//TODO: das if muss ich nochmal ueberdenken
|
|
|
+ for (StorageElement se: storages) {
|
|
|
+ if (se.getStatus().equals(StorageElement.Mode.STANDBY)
|
|
|
+ || se.getStatus().equals(StorageElement.Mode.COLLECT)) {
|
|
|
+ // TODO: den groesten zuerst aktivieren? > unterversorgung
|
|
|
+ // TODO: den kleinsten zuerst aktivieren > ueberversorgung
|
|
|
+ energyLeftToEnabled = energyLeftToEnabled - se.setStatusAndSetEnergy(StorageElement.Mode.EMIT, energyLeftToEnabled);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(energyLeftToEnabled <= 0){
|
|
|
+ System.out.println("enabled energy from storage" + energyLeftToEnabled);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
// disableStorageProduction(energyNeeded - currentStorageProduction());
|
|
|
-// }
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
public void disableStorageProduction(float energyNotNeeded) {
|
|
|
+ for (StorageElement se : storages) {
|
|
|
+ se.setStatusAndSetEnergy(StorageElement.Mode.STANDBY, 0);
|
|
|
+ }
|
|
|
// float disabledEnergy = 0;
|
|
|
// StorageElement.Mode lastMode = null;
|
|
|
// float lastEnergy = 0;
|