From 78895b235455f0662c9d4ebb876a8ca598bbc511 Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Mon, 18 Jul 2016 18:52:48 +0200 Subject: [PATCH] bug fixes --- src/se/hal/ControllerManager.java | 32 ++++++++++--------- .../raspberry/RPiPowerConsumptionSensor.java | 1 + .../raspberry/RPiTemperatureSensor.java | 1 + .../tellstick/protocols/Oregon0x1A2D.java | 1 + 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/se/hal/ControllerManager.java b/src/se/hal/ControllerManager.java index a81199ea..50fb459e 100755 --- a/src/se/hal/ControllerManager.java +++ b/src/se/hal/ControllerManager.java @@ -29,7 +29,7 @@ public class ControllerManager implements HalSensorReportListener, private static ControllerManager instance; - /** All isAvailable sensor plugins **/ + /** All available sensor plugins **/ private List> availableSensors = new ArrayList<>(); /** List of all registered sensors **/ private List registeredSensors = new ArrayList<>(); @@ -39,7 +39,7 @@ public class ControllerManager implements HalSensorReportListener, private List limboSensors = new LinkedList<>(); - /** All isAvailable event plugins **/ + /** All available event plugins **/ private List> availableEvents = new ArrayList<>(); /** List of all registered events **/ private List registeredEvents = new ArrayList<>(); @@ -62,7 +62,7 @@ public class ControllerManager implements HalSensorReportListener, return; } if(!availableSensors.contains(sensor.getDeviceData().getClass())) { - logger.warning("Sensor data plugin not isAvailable: "+ sensor.getDeviceData().getClass()); + logger.warning("Sensor data plugin not available: "+ sensor.getDeviceData().getClass()); return; } @@ -82,13 +82,15 @@ public class ControllerManager implements HalSensorReportListener, return; } - logger.info("Deregistering sensor(id: "+ sensor.getId() +"): "+ sensor.getDeviceData().getClass()); Class c = sensor.getController(); HalSensorController controller = (HalSensorController) controllerMap.get(c);; if (controller != null) { + logger.info("Deregistering sensor(id: "+ sensor.getId() +"): "+ sensor.getDeviceData().getClass()); controller.deregister(sensor.getDeviceData()); registeredSensors.remove(sensor); removeControllerIfEmpty(controller); + } else { + logger.warning("Controller not instantiated:"+ sensor.getController()); } } @@ -133,8 +135,7 @@ public class ControllerManager implements HalSensorReportListener, private static Sensor findSensor(HalSensorData sensorData, List list){ for (Sensor s : list) { - // We need to cast otherwise we will use Object.equal - if (sensorData.equals((HalSensorData)s.getDeviceData())) { + if (sensorData.equals(s.getDeviceData())) { return s; } } @@ -145,11 +146,11 @@ public class ControllerManager implements HalSensorReportListener, public void register(Event event) { if(event.getDeviceData() == null) { - logger.warning("Sensor data is null: "+ event); + logger.warning("Event data is null: "+ event); return; } if(!availableEvents.contains(event.getDeviceData().getClass())) { - logger.warning("Sensor data plugin not isAvailable: "+ event.getDeviceData().getClass()); + logger.warning("Event data plugin not available: "+ event.getDeviceData().getClass()); return; } @@ -165,17 +166,19 @@ public class ControllerManager implements HalSensorReportListener, public void deregister(Event event){ if(event.getDeviceData() == null) { - logger.warning("Sensor data is null: "+ event); + logger.warning("Event data is null: "+ event); return; } - logger.info("Deregistering event(id: "+ event.getId() +"): "+ event.getDeviceData().getClass()); Class c = event.getController(); HalEventController controller = (HalEventController) controllerMap.get(c); if (controller != null) { + logger.info("Deregistering event(id: "+ event.getId() +"): "+ event.getDeviceData().getClass()); controller.deregister(event.getDeviceData()); registeredEvents.remove(event); removeControllerIfEmpty(controller); + } else { + logger.warning("Controller not instantiated: "+ event.getController()); } } @@ -220,8 +223,7 @@ public class ControllerManager implements HalSensorReportListener, private static Event findEvent(HalEventData eventData, List list){ for (Event e : list) { - // We need to cast otherwise we will use Object.equal - if (eventData.equals((HalEventData) e.getDeviceData())) { + if (eventData.equals(e.getDeviceData())) { return e; } } @@ -253,7 +255,7 @@ public class ControllerManager implements HalSensorReportListener, limboSensors.add(sensor); } } - else if(obj instanceof HalEventController) { + else if(obj instanceof HalEventData) { Event event = findEvent((HalEventData) obj, registeredEvents); if(event != null){ deregister(event); @@ -264,14 +266,14 @@ public class ControllerManager implements HalSensorReportListener, @Override public void postConfigurationAction(Configurator configurator, Object obj) { - if(obj instanceof HalSensorController) { + if(obj instanceof HalSensorData) { Sensor sensor = findSensor((HalSensorData) obj, limboSensors); if(sensor != null){ register(sensor); limboSensors.remove(sensor); } } - else if(obj instanceof HalEventController) { + else if(obj instanceof HalEventData) { Event event = findEvent((HalEventData) obj, limboEvents); if(event != null){ register(event); diff --git a/src/se/hal/plugin/raspberry/RPiPowerConsumptionSensor.java b/src/se/hal/plugin/raspberry/RPiPowerConsumptionSensor.java index e3ddb3b3..df3c7dbe 100755 --- a/src/se/hal/plugin/raspberry/RPiPowerConsumptionSensor.java +++ b/src/se/hal/plugin/raspberry/RPiPowerConsumptionSensor.java @@ -48,6 +48,7 @@ public class RPiPowerConsumptionSensor implements PowerConsumptionSensorData { return RPiController.class; } + @Override public boolean equals(HalSensorData obj){ if(!(obj instanceof RPiPowerConsumptionSensor)) return false; diff --git a/src/se/hal/plugin/raspberry/RPiTemperatureSensor.java b/src/se/hal/plugin/raspberry/RPiTemperatureSensor.java index af700e18..25861f4c 100755 --- a/src/se/hal/plugin/raspberry/RPiTemperatureSensor.java +++ b/src/se/hal/plugin/raspberry/RPiTemperatureSensor.java @@ -47,6 +47,7 @@ public class RPiTemperatureSensor implements TemperatureSensorData { return RPiController.class; } + @Override public boolean equals(HalSensorData obj){ if(obj instanceof RPiTemperatureSensor) return obj == this; diff --git a/src/se/hal/plugin/tellstick/protocols/Oregon0x1A2D.java b/src/se/hal/plugin/tellstick/protocols/Oregon0x1A2D.java index b7512835..66068733 100755 --- a/src/se/hal/plugin/tellstick/protocols/Oregon0x1A2D.java +++ b/src/se/hal/plugin/tellstick/protocols/Oregon0x1A2D.java @@ -68,6 +68,7 @@ public class Oregon0x1A2D extends TellstickProtocol implements PowerConsumptionS } + @Override public boolean equals(HalSensorData obj){ if(! (obj instanceof Oregon0x1A2D)) return false;