Merge "sdt.mocked.devices: add mocked NumberValue device & moduleClass." into dev
diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/devices/Activator.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/devices/Activator.java
index f35c2af..37ad1a0 100644
--- a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/devices/Activator.java
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/devices/Activator.java
@@ -59,11 +59,16 @@
// devices.add(new MockedWarningDevice(getId(), getSerial(), domain));
// devices.add(new MockedFloodDetector(getId(), getSerial(), domain));
// devices.add(new MockedSmartElectricMeter(getId(), getSerial(), domain));
+
+
devices.add(new MockedLight(getId(), getSerial(), domain));
devices.add(new MockedDoor(getId(), getSerial(), domain, true));
devices.add(new MockedDoor(getId(), getSerial(), domain, false));
devices.add(new MockedCamera(getId(), getSerial(), domain));
devices.add(new MockedWeatherStation(getId(), getSerial(), domain));
+
+
+ devices.add(new MockedDeviceNumberDevice(getId(), getSerial(), domain));
// devices.add(new MockedThermometer(getId(), getSerial(), domain));
// devices.add(new MockedThermostat(getId(), getSerial(), domain));
// devices.add(new MockedDoor(getId(), getSerial(), domain));
diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/devices/MockedDeviceNumberDevice.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/devices/MockedDeviceNumberDevice.java
new file mode 100644
index 0000000..23fa4d9
--- /dev/null
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/devices/MockedDeviceNumberDevice.java
@@ -0,0 +1,49 @@
+package org.eclipse.om2m.sdt.home.mocked.devices;
+
+import java.util.List;
+
+import org.eclipse.om2m.sdt.Domain;
+import org.eclipse.om2m.sdt.home.devices.DeviceNumberDevice;
+import org.eclipse.om2m.sdt.home.mocked.modules.MockedBinarySwitch;
+import org.eclipse.om2m.sdt.home.mocked.modules.MockedFaultDetection;
+import org.eclipse.om2m.sdt.home.mocked.modules.MockedNumberValue;
+import org.osgi.framework.ServiceRegistration;
+
+public class MockedDeviceNumberDevice extends DeviceNumberDevice implements MockedDevice {
+
+ private List<ServiceRegistration> serviceRegistrations;
+
+ public MockedDeviceNumberDevice(String id, String serial, Domain domain) {
+ super(id, serial, domain);
+
+ // binarySwitch
+ addModule(new MockedBinarySwitch("binarySwitch_" + id, domain));
+
+ // faultDetection
+ addModule(new MockedFaultDetection("faultDetection_" + id, domain));
+
+ // numberValue
+ addModule(new MockedNumberValue("numberValue_" + id, domain));
+
+ }
+
+ @Override
+ public void registerDevice() {
+ if (! ((serviceRegistrations == null) || serviceRegistrations.isEmpty())) {
+ return;
+ }
+ serviceRegistrations = Activator.register(this);
+ }
+
+ @Override
+ public void unregisterDevice() {
+ if (serviceRegistrations == null)
+ return;
+ for (ServiceRegistration reg : serviceRegistrations) {
+ reg.unregister();
+ }
+ serviceRegistrations.clear();
+
+ }
+
+}
diff --git a/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/modules/MockedNumberValue.java b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/modules/MockedNumberValue.java
new file mode 100644
index 0000000..fc6f39e
--- /dev/null
+++ b/org.eclipse.om2m.sdt/org.eclipse.om2m.sdt.home.mocked.devices/src/main/java/org/eclipse/om2m/sdt/home/mocked/modules/MockedNumberValue.java
@@ -0,0 +1,88 @@
+package org.eclipse.om2m.sdt.home.mocked.modules;
+
+import org.eclipse.om2m.sdt.Domain;
+import org.eclipse.om2m.sdt.datapoints.FloatDataPoint;
+import org.eclipse.om2m.sdt.exceptions.AccessException;
+import org.eclipse.om2m.sdt.exceptions.ActionException;
+import org.eclipse.om2m.sdt.exceptions.DataPointException;
+import org.eclipse.om2m.sdt.home.actions.DecrementNumberValue;
+import org.eclipse.om2m.sdt.home.actions.IncrementNumberValue;
+import org.eclipse.om2m.sdt.home.actions.ResetNumberValue;
+import org.eclipse.om2m.sdt.home.modules.NumberValue;
+import org.eclipse.om2m.sdt.home.types.DatapointType;
+
+public class MockedNumberValue extends NumberValue {
+
+ private Thread t;
+
+ public MockedNumberValue(String name, Domain domain) {
+ super(name, domain, new FloatDataPoint(DatapointType.numberValue) {
+
+ private float innerValue = 0;
+
+ @Override
+ protected Float doGetValue() throws DataPointException {
+ return innerValue;
+ }
+
+ @Override
+ protected void doSetValue(Float value) throws DataPointException {
+ innerValue = value;
+ }
+ });
+
+ // decrement
+ setDecrementNumberValue(new DecrementNumberValue("decrement") {
+
+ @Override
+ protected void doDecrementNumberValue() throws ActionException {
+ FloatDataPoint nv = (FloatDataPoint) getDataPointByShortName(DatapointType.numberValue.getShortName());
+ try {
+ nv.setValue(nv.getValue()-1);
+ } catch (DataPointException e) {
+ throw new ActionException(e);
+ } catch (AccessException e) {
+ throw new ActionException(e);
+ }
+ }
+ });
+
+
+ // increment
+ setIncrementNumberValue(new IncrementNumberValue("increment") {
+
+ @Override
+ protected void doIncrementNumberValue() throws ActionException {
+ FloatDataPoint nv = (FloatDataPoint) getDataPointByShortName(DatapointType.numberValue.getShortName());
+ try {
+ nv.setValue(nv.getValue()+1);
+ } catch (DataPointException e) {
+ throw new ActionException(e);
+ } catch (AccessException e) {
+ throw new ActionException(e);
+ }
+
+ }
+ });
+
+
+ // reset
+ resetNumberValue(new ResetNumberValue("reset") {
+
+ @Override
+ protected void doResetNumberValue() throws ActionException {
+ FloatDataPoint nv = (FloatDataPoint) getDataPointByShortName(DatapointType.numberValue.getShortName());
+ try {
+ nv.setValue(0f);
+ } catch (DataPointException e) {
+ throw new ActionException(e);
+ } catch (AccessException e) {
+ throw new ActionException(e);
+ }
+
+ }
+ });
+
+ }
+
+}