detected device bug fix
Former-commit-id: f56ddf18a7db16ef07874aceb1d49b7aa4b1bcdd
This commit is contained in:
parent
3343ad83db
commit
09d59635c3
3 changed files with 22 additions and 16 deletions
|
|
@ -32,7 +32,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
/** List of all registered sensors **/
|
||||
private List<Sensor> registeredSensors = new ArrayList<>();
|
||||
/** List of auto detected sensors **/
|
||||
private List<HalSensorData> detectedSensors = new ArrayList<>();
|
||||
private List<Sensor> detectedSensors = new ArrayList<>();
|
||||
/** List of sensors that are currently being reconfigured **/
|
||||
private List<Sensor> limboSensors = new LinkedList<>();
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
/** List of all registered events **/
|
||||
private List<Event> registeredEvents = new ArrayList<>();
|
||||
/** List of auto detected events **/
|
||||
private List<HalEventData> detectedEvents = new ArrayList<>();
|
||||
private List<Event> detectedEvents = new ArrayList<>();
|
||||
/** List of all registered events **/
|
||||
private List<Event> limboEvents = new LinkedList<>();
|
||||
|
||||
|
|
@ -71,6 +71,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
if(controller != null)
|
||||
controller.register(sensor.getDeviceData());
|
||||
registeredSensors.add(sensor);
|
||||
detectedSensors.remove(findSensor(sensor.getDeviceData(), detectedSensors)); // Remove if this device was detected
|
||||
}
|
||||
|
||||
public void deregister(Sensor sensor){
|
||||
|
|
@ -93,7 +94,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
return availableSensors;
|
||||
}
|
||||
|
||||
public List<HalSensorData> getDetectedSensors(){
|
||||
public List<Sensor> getDetectedSensors(){
|
||||
return detectedSensors;
|
||||
}
|
||||
|
||||
|
|
@ -117,7 +118,9 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
else { // unknown sensor
|
||||
logger.finest("Received report from unregistered sensor: "+ sensorData);
|
||||
if(!detectedSensors.contains(sensorData)) {
|
||||
detectedSensors.add(sensorData);
|
||||
Sensor detectedSensor = new Sensor();
|
||||
detectedSensor.setDeviceData(sensorData);
|
||||
detectedSensors.add(detectedSensor);
|
||||
}
|
||||
}
|
||||
}catch (SQLException e){
|
||||
|
|
@ -153,6 +156,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
if(controller != null)
|
||||
controller.register(event.getDeviceData());
|
||||
registeredEvents.add(event);
|
||||
detectedEvents.remove(findEvent(event.getDeviceData(), detectedEvents)); // Remove if this device was detected
|
||||
}
|
||||
|
||||
public void deregister(Event event){
|
||||
|
|
@ -175,7 +179,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
return availableEvents;
|
||||
}
|
||||
|
||||
public List<HalEventData> getDetectedEvents(){
|
||||
public List<Event> getDetectedEvents(){
|
||||
return detectedEvents;
|
||||
}
|
||||
|
||||
|
|
@ -183,7 +187,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
public void reportReceived(HalEventData eventData) {
|
||||
try {
|
||||
DBConnection db = HalContext.getDB();
|
||||
Event event = findRegisteredEvent(eventData, registeredEvents);
|
||||
Event event = findEvent(eventData, registeredEvents);
|
||||
|
||||
if (event != null) {
|
||||
event.setDeviceData(eventData); // Set the latest data
|
||||
|
|
@ -199,7 +203,9 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
else { // unknown sensor
|
||||
logger.info("Received report from unregistered event: "+ eventData);
|
||||
if(!detectedEvents.contains(eventData)) {
|
||||
detectedEvents.add(eventData);
|
||||
Event detectedEvent = new Event();
|
||||
detectedEvent.setDeviceData(eventData);
|
||||
detectedEvents.add(detectedEvent);
|
||||
}
|
||||
}
|
||||
}catch (SQLException e){
|
||||
|
|
@ -207,7 +213,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
}
|
||||
}
|
||||
|
||||
private static Event findRegisteredEvent(HalEventData eventData, List<Event> list){
|
||||
private static Event findEvent(HalEventData eventData, List<Event> list){
|
||||
for (Event e : list) {
|
||||
if (eventData.equals(e.getDeviceData())) {
|
||||
return e;
|
||||
|
|
@ -235,7 +241,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
}
|
||||
}
|
||||
else if(obj instanceof HalEventController) {
|
||||
Event event = findRegisteredEvent((HalEventData) obj, registeredEvents);
|
||||
Event event = findEvent((HalEventData) obj, registeredEvents);
|
||||
if(event != null){
|
||||
deregister(event);
|
||||
limboEvents.add(event);
|
||||
|
|
@ -253,7 +259,7 @@ public class ControllerManager implements HalSensorReportListener,
|
|||
}
|
||||
}
|
||||
else if(obj instanceof HalEventController) {
|
||||
Event event = findRegisteredEvent((HalEventData) obj, limboEvents);
|
||||
Event event = findEvent((HalEventData) obj, limboEvents);
|
||||
if(event != null){
|
||||
register(event);
|
||||
limboEvents.remove(event);
|
||||
|
|
|
|||
|
|
@ -61,14 +61,14 @@
|
|||
</thead>
|
||||
{{#detectedEvents}}
|
||||
<tr>
|
||||
<td>{{.getClass().getName()}}</td>
|
||||
<td>{{.getTimestamp()}}</td>
|
||||
<td>{{.getType()}}</td>
|
||||
<td>{{.getDeviceData().getTimestamp()}}</td>
|
||||
<td>{{.}}</td>
|
||||
<td>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<button type="button" class="btn btn-default btn-xs" data-toggle="modal"
|
||||
data-target="#eventModal"
|
||||
data-type="{{.getClass().getName()}}"
|
||||
data-type="{{.getType()}}"
|
||||
{{#.getDeviceConfig().getConfiguration()}}
|
||||
data-{{.getName()}}="{{.getString()}}"
|
||||
{{/.getDeviceConfig().getConfiguration()}}
|
||||
|
|
|
|||
|
|
@ -64,14 +64,14 @@
|
|||
</thead>
|
||||
{{#detectedSensors}}
|
||||
<tr>
|
||||
<td>{{.getClass().getName()}}</td>
|
||||
<td>{{.getTimestamp()}}</td>
|
||||
<td>{{.getType()}}</td>
|
||||
<td>{{.getDeviceData().getTimestamp()}}</td>
|
||||
<td>{{.}}</td>
|
||||
<td>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<button type="button" class="btn btn-default btn-xs" data-toggle="modal"
|
||||
data-target="#sensorModal"
|
||||
data-type="{{.getClass().getName()}"
|
||||
data-type="{{.getType()}}"
|
||||
{{#.getDeviceConfig().getConfiguration()}}
|
||||
data-{{.getName()}}="{{.getString()}}"
|
||||
{{/.getDeviceConfig().getConfiguration()}}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue