SmartLightSensor.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 = 10000;
  8. RoomStatus roomStatus;
  9. public SmartLightSensor(String name, RoomStatus roomStatus, long updateInterval) {
  10. super(name);
  11. this.roomStatus = roomStatus;
  12. this.updateInterval = updateInterval;
  13. SimulationManager.scheduleEvent(this);
  14. }
  15. @Override
  16. public long getEventTime() {
  17. return eventTime;
  18. }
  19. @Override
  20. public void simulateTimeStep(long startTime, long duration) {
  21. /**
  22. * Do nothing
  23. */
  24. }
  25. @Override
  26. public void simulateEvent(long time) {
  27. /*
  28. * get Light Status
  29. */
  30. this.setBSval(roomStatus.isLightOn());
  31. eventTime = time + updateInterval;
  32. SimulationManager.scheduleEvent(this);
  33. }
  34. @Override
  35. public String getSensorLabel() {
  36. return "" + getBSval();
  37. }
  38. }