bug fixes

This commit is contained in:
Ziver Koc 2016-07-18 18:52:48 +02:00
parent 858a3eb6ff
commit 78895b2354
4 changed files with 20 additions and 15 deletions

View file

@ -29,7 +29,7 @@ public class ControllerManager implements HalSensorReportListener,
private static ControllerManager instance; private static ControllerManager instance;
/** All isAvailable sensor plugins **/ /** All available sensor plugins **/
private List<Class<? extends HalSensorData>> availableSensors = new ArrayList<>(); private List<Class<? extends HalSensorData>> availableSensors = new ArrayList<>();
/** List of all registered sensors **/ /** List of all registered sensors **/
private List<Sensor> registeredSensors = new ArrayList<>(); private List<Sensor> registeredSensors = new ArrayList<>();
@ -39,7 +39,7 @@ public class ControllerManager implements HalSensorReportListener,
private List<Sensor> limboSensors = new LinkedList<>(); private List<Sensor> limboSensors = new LinkedList<>();
/** All isAvailable event plugins **/ /** All available event plugins **/
private List<Class<? extends HalEventData>> availableEvents = new ArrayList<>(); private List<Class<? extends HalEventData>> availableEvents = new ArrayList<>();
/** List of all registered events **/ /** List of all registered events **/
private List<Event> registeredEvents = new ArrayList<>(); private List<Event> registeredEvents = new ArrayList<>();
@ -62,7 +62,7 @@ public class ControllerManager implements HalSensorReportListener,
return; return;
} }
if(!availableSensors.contains(sensor.getDeviceData().getClass())) { 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; return;
} }
@ -82,13 +82,15 @@ public class ControllerManager implements HalSensorReportListener,
return; return;
} }
logger.info("Deregistering sensor(id: "+ sensor.getId() +"): "+ sensor.getDeviceData().getClass());
Class<? extends HalSensorController> c = sensor.getController(); Class<? extends HalSensorController> c = sensor.getController();
HalSensorController controller = (HalSensorController) controllerMap.get(c);; HalSensorController controller = (HalSensorController) controllerMap.get(c);;
if (controller != null) { if (controller != null) {
logger.info("Deregistering sensor(id: "+ sensor.getId() +"): "+ sensor.getDeviceData().getClass());
controller.deregister(sensor.getDeviceData()); controller.deregister(sensor.getDeviceData());
registeredSensors.remove(sensor); registeredSensors.remove(sensor);
removeControllerIfEmpty(controller); 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<Sensor> list){ private static Sensor findSensor(HalSensorData sensorData, List<Sensor> list){
for (Sensor s : list) { for (Sensor s : list) {
// We need to cast otherwise we will use Object.equal if (sensorData.equals(s.getDeviceData())) {
if (sensorData.equals((HalSensorData)s.getDeviceData())) {
return s; return s;
} }
} }
@ -145,11 +146,11 @@ public class ControllerManager implements HalSensorReportListener,
public void register(Event event) { public void register(Event event) {
if(event.getDeviceData() == null) { if(event.getDeviceData() == null) {
logger.warning("Sensor data is null: "+ event); logger.warning("Event data is null: "+ event);
return; return;
} }
if(!availableEvents.contains(event.getDeviceData().getClass())) { 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; return;
} }
@ -165,17 +166,19 @@ public class ControllerManager implements HalSensorReportListener,
public void deregister(Event event){ public void deregister(Event event){
if(event.getDeviceData() == null) { if(event.getDeviceData() == null) {
logger.warning("Sensor data is null: "+ event); logger.warning("Event data is null: "+ event);
return; return;
} }
logger.info("Deregistering event(id: "+ event.getId() +"): "+ event.getDeviceData().getClass());
Class<? extends HalEventController> c = event.getController(); Class<? extends HalEventController> c = event.getController();
HalEventController controller = (HalEventController) controllerMap.get(c); HalEventController controller = (HalEventController) controllerMap.get(c);
if (controller != null) { if (controller != null) {
logger.info("Deregistering event(id: "+ event.getId() +"): "+ event.getDeviceData().getClass());
controller.deregister(event.getDeviceData()); controller.deregister(event.getDeviceData());
registeredEvents.remove(event); registeredEvents.remove(event);
removeControllerIfEmpty(controller); 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<Event> list){ private static Event findEvent(HalEventData eventData, List<Event> list){
for (Event e : list) { for (Event e : list) {
// We need to cast otherwise we will use Object.equal if (eventData.equals(e.getDeviceData())) {
if (eventData.equals((HalEventData) e.getDeviceData())) {
return e; return e;
} }
} }
@ -253,7 +255,7 @@ public class ControllerManager implements HalSensorReportListener,
limboSensors.add(sensor); limboSensors.add(sensor);
} }
} }
else if(obj instanceof HalEventController) { else if(obj instanceof HalEventData) {
Event event = findEvent((HalEventData) obj, registeredEvents); Event event = findEvent((HalEventData) obj, registeredEvents);
if(event != null){ if(event != null){
deregister(event); deregister(event);
@ -264,14 +266,14 @@ public class ControllerManager implements HalSensorReportListener,
@Override @Override
public void postConfigurationAction(Configurator configurator, Object obj) { public void postConfigurationAction(Configurator configurator, Object obj) {
if(obj instanceof HalSensorController) { if(obj instanceof HalSensorData) {
Sensor sensor = findSensor((HalSensorData) obj, limboSensors); Sensor sensor = findSensor((HalSensorData) obj, limboSensors);
if(sensor != null){ if(sensor != null){
register(sensor); register(sensor);
limboSensors.remove(sensor); limboSensors.remove(sensor);
} }
} }
else if(obj instanceof HalEventController) { else if(obj instanceof HalEventData) {
Event event = findEvent((HalEventData) obj, limboEvents); Event event = findEvent((HalEventData) obj, limboEvents);
if(event != null){ if(event != null){
register(event); register(event);

View file

@ -48,6 +48,7 @@ public class RPiPowerConsumptionSensor implements PowerConsumptionSensorData {
return RPiController.class; return RPiController.class;
} }
@Override
public boolean equals(HalSensorData obj){ public boolean equals(HalSensorData obj){
if(!(obj instanceof RPiPowerConsumptionSensor)) if(!(obj instanceof RPiPowerConsumptionSensor))
return false; return false;

View file

@ -47,6 +47,7 @@ public class RPiTemperatureSensor implements TemperatureSensorData {
return RPiController.class; return RPiController.class;
} }
@Override
public boolean equals(HalSensorData obj){ public boolean equals(HalSensorData obj){
if(obj instanceof RPiTemperatureSensor) if(obj instanceof RPiTemperatureSensor)
return obj == this; return obj == this;

View file

@ -68,6 +68,7 @@ public class Oregon0x1A2D extends TellstickProtocol implements PowerConsumptionS
} }
@Override
public boolean equals(HalSensorData obj){ public boolean equals(HalSensorData obj){
if(! (obj instanceof Oregon0x1A2D)) if(! (obj instanceof Oregon0x1A2D))
return false; return false;