StorageObject.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package algo;
  2. import classes.HolonElement;
  3. import classes.HolonObject;
  4. import classes.HolonBattery.State;
  5. public class StorageObject extends HolonObject {
  6. private Mode status;
  7. private float stateOfCharge;
  8. private float capacity;
  9. private float inRatio;
  10. private float maxInRatio;
  11. private float outRatio;
  12. private float maxOutRatio;
  13. public StorageObject(String objName) {
  14. super(objName);
  15. maxInRatio = 5000.0f;
  16. this.addElement(new HolonElement("Collector", 1, 0, null));
  17. maxOutRatio = 5000.0f;
  18. this.addElement(new HolonElement("Emitter", 1, 0, null));
  19. // TODO: das ist ja in pro stunde nicht pro iteration
  20. capacity = 10000.0f;
  21. stateOfCharge = 0;
  22. setStatus(Mode.STANDBY, 0);
  23. }
  24. public Mode getStatus() {
  25. return this.status;
  26. }
  27. public void setStatus(Mode status, float energyNeed) {
  28. switch (status) {
  29. case STANDBY:
  30. setStorageBehaviour(0, 0);
  31. break;
  32. case EMIT:
  33. setStorageBehaviour(0, energyNeed);
  34. break;
  35. case COLLECT:
  36. // if
  37. setStorageBehaviour(-energyNeed, 0);
  38. break;
  39. }
  40. this.status = status;
  41. }
  42. private void setStorageBehaviour(float collector, float emitter) {
  43. for (HolonElement ele : this.getElements()) {
  44. if (ele.getObjName().equals("Collector")) {
  45. ele.setEnergyPerElement(collector);
  46. }
  47. if (ele.getObjName().equals("Emitter")) {
  48. ele.setEnergyPerElement(emitter);
  49. }
  50. }
  51. }
  52. public float getStateOfCharge() {
  53. return stateOfCharge;
  54. }
  55. public void setStateOfCharge(float stateOfCharge) {
  56. this.stateOfCharge = stateOfCharge;
  57. }
  58. public float getCapacity() {
  59. return capacity;
  60. }
  61. public float getInRatio() {
  62. return inRatio;
  63. }
  64. public void setInRatio(float inRatio) {
  65. this.inRatio = inRatio;
  66. }
  67. public float getMaxInRation() {
  68. return maxInRatio;
  69. }
  70. public float getOutRatio() {
  71. return outRatio;
  72. }
  73. public void setOutRatio(float outRatio) {
  74. this.outRatio = outRatio;
  75. }
  76. public float getMaxOutRatio() {
  77. return maxOutRatio;
  78. }
  79. public enum Mode {
  80. COLLECT, EMIT, STANDBY
  81. }
  82. }