From a1429b8d7bb56ae5a6ba50250f15883041ac1a13 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Tue, 28 Jan 2020 14:35:21 +0100 Subject: [PATCH] [New] Added virtual string and boolean connectors --- .../java/li/strolch/plc/core/PlcService.java | 4 ++ ...ava => VirtualBooleanValueConnection.java} | 4 +- .../VirtualStringValueConnection.java | 17 ++++++++ .../plc/core/test/StartupPlcService.java | 5 +-- .../test-runtime/data/defaultModel.xml | 36 ++++++---------- .../java/li/strolch/plc/gw/PlcGwHandler.java | 41 ++++++++++++------- 6 files changed, 63 insertions(+), 44 deletions(-) rename strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/{InMemoryBooleanConnection.java => VirtualBooleanValueConnection.java} (69%) create mode 100644 strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/VirtualStringValueConnection.java diff --git a/strolch-plc-core/src/main/java/li/strolch/plc/core/PlcService.java b/strolch-plc-core/src/main/java/li/strolch/plc/core/PlcService.java index 890c8bc..9f6ed0b 100644 --- a/strolch-plc-core/src/main/java/li/strolch/plc/core/PlcService.java +++ b/strolch-plc-core/src/main/java/li/strolch/plc/core/PlcService.java @@ -76,6 +76,10 @@ public abstract class PlcService implements PlcListener { this.plcHandler.send(resource, action, value); } + protected void notify(String resource, String action, Object value) { + this.plcHandler.notify(resource, action, value); + } + protected StrolchTransaction openTx(PrivilegeContext ctx, boolean readOnly) { return this.plcHandler.openTx(ctx.getCertificate(), readOnly); } diff --git a/strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/InMemoryBooleanConnection.java b/strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/VirtualBooleanValueConnection.java similarity index 69% rename from strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/InMemoryBooleanConnection.java rename to strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/VirtualBooleanValueConnection.java index f70509d..b00c0c6 100644 --- a/strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/InMemoryBooleanConnection.java +++ b/strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/VirtualBooleanValueConnection.java @@ -2,9 +2,9 @@ package li.strolch.plc.core.hw.connections; import li.strolch.plc.core.hw.Plc; -public class InMemoryBooleanConnection extends SimplePlcConnection { +public class VirtualBooleanValueConnection extends SimplePlcConnection { - public InMemoryBooleanConnection(Plc plc, String id) { + public VirtualBooleanValueConnection(Plc plc, String id) { super(plc, id); } diff --git a/strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/VirtualStringValueConnection.java b/strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/VirtualStringValueConnection.java new file mode 100644 index 0000000..eebcede --- /dev/null +++ b/strolch-plc-core/src/main/java/li/strolch/plc/core/hw/connections/VirtualStringValueConnection.java @@ -0,0 +1,17 @@ +package li.strolch.plc.core.hw.connections; + +import li.strolch.plc.core.hw.Plc; + +public class VirtualStringValueConnection extends SimplePlcConnection { + + public VirtualStringValueConnection(Plc plc, String id) { + super(plc, id); + } + + @Override + public void send(String address, Object value) { + String string = (String) value; + logger.info("Setting address " + this.id + " to " + string); + this.plc.notify(this.id, string); + } +} diff --git a/strolch-plc-core/src/test/java/li/strolch/plc/core/test/StartupPlcService.java b/strolch-plc-core/src/test/java/li/strolch/plc/core/test/StartupPlcService.java index ed6f349..1f3717c 100644 --- a/strolch-plc-core/src/test/java/li/strolch/plc/core/test/StartupPlcService.java +++ b/strolch-plc-core/src/test/java/li/strolch/plc/core/test/StartupPlcService.java @@ -9,7 +9,6 @@ public class StartupPlcService extends PlcService { public static final String PLC = "PLC"; public static final String STARTED = "Started"; - public static final String STOPPED = "Stopped"; public StartupPlcService(ComponentContainer container, PlcHandler plcHandler) { super(container, plcHandler); @@ -17,13 +16,13 @@ public class StartupPlcService extends PlcService { @Override public void start(StrolchTransaction tx) { - send(PLC, STARTED); + notify(PLC, STARTED, true); super.start(tx); } @Override public void stop() { - send(PLC, STOPPED); + notify(PLC, STARTED, false); super.stop(); } } diff --git a/strolch-plc-core/src/test/resources/test-runtime/data/defaultModel.xml b/strolch-plc-core/src/test/resources/test-runtime/data/defaultModel.xml index fcb38ea..a9194bb 100644 --- a/strolch-plc-core/src/test/resources/test-runtime/data/defaultModel.xml +++ b/strolch-plc-core/src/test/resources/test-runtime/data/defaultModel.xml @@ -17,9 +17,17 @@ - + - + + + + + + + + @@ -95,12 +103,12 @@ + Value=""/> - + @@ -108,26 +116,6 @@ - - - - - - - - - - - - - - - - - - - -