SmartLightSensor.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package de.tu_darmstadt.tk.SmartHomeNetworkSim.core.devices;
  2. import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.RoomStatus;
  3. import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.SimulationManager;
  4. import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.scheduler.Schedulable;
  5. public class SmartLightSensor extends BoolSensorDevice implements Schedulable, SensorLabel {
  6. long eventTime = 0;
  7. long updateInterval = 1000;
  8. RoomStatus roomStatus;
  9. public SmartLightSensor(String name, RoomStatus roomStatus, long updateInterval) {
  10. super(name);
  11. this.roomStatus = roomStatus;
  12. this.updateInterval = updateInterval;
  13. }
  14. @Override
  15. public long getEventTime() {
  16. return eventTime;
  17. }
  18. @Override
  19. public void simulateTimeStep(long startTime, long duration) {
  20. /**
  21. * Do nothing
  22. */
  23. }
  24. @Override
  25. public void simulateEvent(long time) {
  26. /*
  27. * get Light Status
  28. */
  29. setBSval(roomStatus.isLightOn());
  30. eventTime = time + updateInterval;
  31. SimulationManager.scheduleEvent(this);
  32. }
  33. @Override
  34. public String getSensorLabel() {
  35. return "" + getBSval();
  36. }
  37. }