Changed device listener to be a list instead of single listener
This commit is contained in:
parent
8d9896f8b4
commit
53d471c0aa
24 changed files with 120 additions and 97 deletions
|
|
@ -7,14 +7,14 @@ import se.hal.intf.*;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
public class DummyController implements HalSensorController, HalEventController, Runnable, HalDaemon {
|
||||
private List<DummyDevice> registeredDevices = new ArrayList();
|
||||
private HalDeviceReportListener sensorListener;
|
||||
private HalDeviceReportListener eventListener;
|
||||
private List<HalDeviceReportListener> deviceListeners = new CopyOnWriteArrayList<>();
|
||||
|
||||
|
||||
public DummyController() {}
|
||||
|
|
@ -36,10 +36,8 @@ public class DummyController implements HalSensorController, HalEventController,
|
|||
for (DummyDevice device : registeredDevices) {
|
||||
HalDeviceData data = device.generateData();
|
||||
|
||||
if (sensorListener != null && data instanceof HalSensorData) {
|
||||
sensorListener.reportReceived((HalSensorConfig) device, (HalSensorData) data);
|
||||
} else if (eventListener != null && data instanceof HalEventData) {
|
||||
eventListener.reportReceived((HalEventConfig) device, (HalEventData) data);
|
||||
for (HalDeviceReportListener deviceListener : deviceListeners) {
|
||||
deviceListener.reportReceived(device, data);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
|
@ -60,7 +58,7 @@ public class DummyController implements HalSensorController, HalEventController,
|
|||
|
||||
@Override
|
||||
public synchronized void send(HalEventConfig eventConfig, HalEventData eventData) {
|
||||
// Nothing to do as this is a dummy
|
||||
// Nothing to do as this is a dummy controller
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -69,11 +67,8 @@ public class DummyController implements HalSensorController, HalEventController,
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setListener(HalDeviceReportListener listener) {
|
||||
if (listener instanceof SensorControllerManager)
|
||||
sensorListener = listener;
|
||||
else if (listener instanceof EventControllerManager)
|
||||
eventListener = listener;
|
||||
public void addListener(HalDeviceReportListener listener) {
|
||||
deviceListeners.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -24,9 +24,10 @@
|
|||
|
||||
package se.hal.plugin.dummy;
|
||||
|
||||
import se.hal.intf.HalDeviceConfig;
|
||||
import se.hal.intf.HalDeviceData;
|
||||
|
||||
public interface DummyDevice {
|
||||
public interface DummyDevice extends HalDeviceConfig {
|
||||
|
||||
public HalDeviceData generateData();
|
||||
HalDeviceData generateData();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package se.hal.plugin.dummy;
|
||||
package se.hal.plugin.dummy.device;
|
||||
|
||||
import se.hal.intf.HalDeviceData;
|
||||
import se.hal.intf.HalSensorConfig;
|
||||
import se.hal.intf.HalSensorController;
|
||||
import se.hal.intf.HalSensorData;
|
||||
import se.hal.plugin.dummy.DummyController;
|
||||
import se.hal.plugin.dummy.DummyDevice;
|
||||
import se.hal.struct.devicedata.HumiditySensorData;
|
||||
|
||||
|
||||
|
|
@ -1,9 +1,11 @@
|
|||
package se.hal.plugin.dummy;
|
||||
package se.hal.plugin.dummy.device;
|
||||
|
||||
import se.hal.intf.HalDeviceData;
|
||||
import se.hal.intf.HalEventConfig;
|
||||
import se.hal.intf.HalEventController;
|
||||
import se.hal.intf.HalEventData;
|
||||
import se.hal.plugin.dummy.DummyController;
|
||||
import se.hal.plugin.dummy.DummyDevice;
|
||||
import se.hal.struct.devicedata.OnOffEventData;
|
||||
|
||||
public class DummySwitchEvent implements DummyDevice, HalEventConfig {
|
||||
|
|
@ -1,9 +1,11 @@
|
|||
package se.hal.plugin.dummy;
|
||||
package se.hal.plugin.dummy.device;
|
||||
|
||||
import se.hal.intf.HalDeviceData;
|
||||
import se.hal.intf.HalSensorConfig;
|
||||
import se.hal.intf.HalSensorController;
|
||||
import se.hal.intf.HalSensorData;
|
||||
import se.hal.plugin.dummy.DummyController;
|
||||
import se.hal.plugin.dummy.DummyDevice;
|
||||
import se.hal.struct.devicedata.TemperatureSensorData;
|
||||
|
||||
|
||||
|
|
@ -3,8 +3,8 @@
|
|||
"name": "Hal-Dummy Devices",
|
||||
"description": "Dummy devices with simulated data, can be used for demo or testing purposes.",
|
||||
"interfaces": [
|
||||
{"se.hal.intf.HalSensorConfig": "se.hal.plugin.dummy.DummyHumiditySensor"},
|
||||
{"se.hal.intf.HalEventConfig": "se.hal.plugin.dummy.DummySwitchEvent"},
|
||||
{"se.hal.intf.HalSensorConfig": "se.hal.plugin.dummy.DummyTemperatureSensor"}
|
||||
{"se.hal.intf.HalEventConfig": "se.hal.plugin.dummy.device.DummySwitchEvent"},
|
||||
{"se.hal.intf.HalSensorConfig": "se.hal.plugin.dummy.device.DummyHumiditySensor"},
|
||||
{"se.hal.intf.HalSensorConfig": "se.hal.plugin.dummy.device.DummyTemperatureSensor"}
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue