You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2019/12/28 12:19:43 UTC
[plc4x] branch next-gen-core updated: - Updated the modules
activated by the "with-proxies" profile.next-gen-core - Generally renamed
"fieldValue" with "plcValue"
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch next-gen-core
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/next-gen-core by this push:
new 60e8904 - Updated the modules activated by the "with-proxies" profile.next-gen-core - Generally renamed "fieldValue" with "plcValue"
60e8904 is described below
commit 60e89042bd522794b0abf4b9d42739f3d490174e
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sat Dec 28 13:19:33 2019 +0100
- Updated the modules activated by the "with-proxies" profile.next-gen-core
- Generally renamed "fieldValue" with "plcValue"
---
.../java/abeth/protocol/Plc4xAbEthProtocol.java | 22 +--
.../java/ads/connection/AdsTcpPlcConnection.java | 4 +-
.../opcua/connection/OpcuaTcpPlcConnection.java | 8 +-
.../opcua/protocol/OpcuaSubsriptionHandle.java | 2 +-
.../connection/SimulatedPlcConnection.java | 14 +-
.../java/simulated/connection/TestDevice.java | 14 +-
.../java/simulated/connection/TestDeviceTest.java | 4 +-
.../apache/plc4x/edgent/PlcConnectionAdapter.java | 4 +-
.../plc4x/edgent/PlcConnectionAdapterTest.java | 4 +-
.../apache/plc4x/edgent/mock/MockConnection.java | 16 +--
.../org/apache/plc4x/edgent/mock/MockField.java | 12 +-
.../apache/plc4x/edgent/mock/MockFieldHandler.java | 26 ++--
.../mock/{MockFieldItem.java => MockPlcValue.java} | 4 +-
.../plc4x/java/ads/protocol/Plc4x2AdsProtocol.java | 18 +--
.../util/LittleEndianDecoderSpecHurz.groovy | 6 +-
.../ethernetip/netty/Plc4XEtherNetIpProtocol.java | 4 +-
...tem.java => DefaultModbusByteArrayPlcList.java} | 8 +-
.../java/modbus/netty/Plc4XModbusProtocol.java | 12 +-
.../java/modbus/util/ModbusPlcFieldHandler.java | 2 +-
...ava => DefaultModbusByteArrayPlcValueTest.java} | 2 +-
.../plc4x/java/s7/netty/Plc4XS7Protocol.java | 150 ++++++++++-----------
.../java/s7/netty/util/S7PlcFieldHandlerTest.java | 16 +--
.../java/spi/messages/DefaultPlcWriteRequest.java | 16 +--
.../java/spi/messages/InternalPlcWriteRequest.java | 4 +-
.../SingleItemToSingleRequestProtocol.java | 8 +-
.../org/apache/plc4x/java/spi/types/FieldType.java | 29 +++-
.../apache/plc4x/java/mock/MockFieldHandler.java | 26 ++--
.../mock/{MockFieldItem.java => MockPlcValue.java} | 4 +-
...ockFieldItemTest.java => MockPlcValueTest.java} | 4 +-
plc4j/utils/interop/pom.xml | 1 -
.../java/org/apache/plc4x/interop/impl/Server.java | 25 ++--
.../amsads/connection/AdsTcpPlcConnection.java | 4 +-
.../java/amsads/protocol/Plc4x2AdsProtocol.java | 22 +--
.../s7/readwrite/events/IsoTPConnectedEvent.java | 22 ---
.../s7/readwrite/protocol/S7ProtocolLogic.java | 14 +-
src/main/script/prerequisiteCheck.groovy | 1 +
src/site/asciidoc/users/testing.adoc | 10 +-
tools/thrift/pom.xml | 12 ++
38 files changed, 287 insertions(+), 267 deletions(-)
diff --git a/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/Plc4xAbEthProtocol.java b/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/Plc4xAbEthProtocol.java
index 606b887..3739c08 100644
--- a/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/Plc4xAbEthProtocol.java
+++ b/plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/Plc4xAbEthProtocol.java
@@ -170,7 +170,7 @@ public class Plc4xAbEthProtocol extends PlcMessageToMessageCodec<CIPEncapsulatio
AbEthField field = (AbEthField) plcReadRequest.getField(fieldName);
PlcResponseCode responseCode = decodeResponseCode(plcReadResponse.getResponse().getStatus());
- PlcValue fieldItem = null;
+ PlcValue plcValue = null;
if (responseCode == PlcResponseCode.OK) {
try {
switch (field.getFileType()) {
@@ -179,9 +179,9 @@ public class Plc4xAbEthProtocol extends PlcMessageToMessageCodec<CIPEncapsulatio
DF1CommandResponseMessageProtectedTypedLogicalRead df1PTLR = (DF1CommandResponseMessageProtectedTypedLogicalRead) plcReadResponse.getResponse();
short[] data = df1PTLR.getData();
if(data.length == 1) {
- fieldItem = new PlcInteger(data[0]);
+ plcValue = new PlcInteger(data[0]);
} else {
- fieldItem = new PlcList(Arrays.asList(data));
+ plcValue = new PlcList(Arrays.asList(data));
}
}
break;
@@ -190,9 +190,9 @@ public class Plc4xAbEthProtocol extends PlcMessageToMessageCodec<CIPEncapsulatio
DF1CommandResponseMessageProtectedTypedLogicalRead df1PTLR = (DF1CommandResponseMessageProtectedTypedLogicalRead) plcReadResponse.getResponse();
short[] data = df1PTLR.getData();
if (((data[1]>> 7) & 1) == 0) {
- fieldItem = PlcValues.of((data[1] << 8) + data[0]); // positive number
+ plcValue = PlcValues.of((data[1] << 8) + data[0]); // positive number
} else {
- fieldItem = PlcValues.of((((~data[1] & 0b01111111) << 8) + (~(data[0]-1) & 0b11111111)) * -1); // negative number
+ plcValue = PlcValues.of((((~data[1] & 0b01111111) << 8) + (~(data[0]-1) & 0b11111111)) * -1); // negative number
}
}
break;
@@ -201,9 +201,9 @@ public class Plc4xAbEthProtocol extends PlcMessageToMessageCodec<CIPEncapsulatio
DF1CommandResponseMessageProtectedTypedLogicalRead df1PTLR = (DF1CommandResponseMessageProtectedTypedLogicalRead) plcReadResponse.getResponse();
short[] data = df1PTLR.getData();
if (((data[3]>> 7) & 1) == 0) {
- fieldItem = PlcValues.of((data[3] << 24) + (data[2] << 16) + (data[1] << 8) + data[0]); // positive number
+ plcValue = PlcValues.of((data[3] << 24) + (data[2] << 16) + (data[1] << 8) + data[0]); // positive number
} else {
- fieldItem = PlcValues.of((((~data[3] & 0b01111111) << 24) + ((~(data[2]-1) & 0b11111111) << 16)+ ((~(data[1]-1) & 0b11111111) << 8) + (~(data[0]-1) & 0b11111111)) * -1); // negative number
+ plcValue = PlcValues.of((((~data[3] & 0b01111111) << 24) + ((~(data[2]-1) & 0b11111111) << 16)+ ((~(data[1]-1) & 0b11111111) << 8) + (~(data[0]-1) & 0b11111111)) * -1); // negative number
}
}
break;
@@ -212,9 +212,9 @@ public class Plc4xAbEthProtocol extends PlcMessageToMessageCodec<CIPEncapsulatio
DF1CommandResponseMessageProtectedTypedLogicalRead df1PTLR = (DF1CommandResponseMessageProtectedTypedLogicalRead) plcReadResponse.getResponse();
short[] data = df1PTLR.getData();
if (field.getBitNumber() < 8) {
- fieldItem = PlcValues.of((data[0] & (1 << field.getBitNumber())) != 0); // read from first byte
+ plcValue = PlcValues.of((data[0] & (1 << field.getBitNumber())) != 0); // read from first byte
} else {
- fieldItem = PlcValues.of((data[1] & (1 << (field.getBitNumber() - 8) )) != 0); // read from second byte
+ plcValue = PlcValues.of((data[1] & (1 << (field.getBitNumber() - 8) )) != 0); // read from second byte
}
}
break;
@@ -227,7 +227,7 @@ public class Plc4xAbEthProtocol extends PlcMessageToMessageCodec<CIPEncapsulatio
logger.warn("Some other error occurred casting field {}, FieldInformation: {}",fieldName, field,e);
}
}
- Pair<PlcResponseCode, PlcValue> result = new ImmutablePair<>(responseCode, fieldItem);
+ Pair<PlcResponseCode, PlcValue> result = new ImmutablePair<>(responseCode, plcValue);
values.put(fieldName, result);
}
@@ -241,7 +241,7 @@ public class Plc4xAbEthProtocol extends PlcMessageToMessageCodec<CIPEncapsulatio
return PlcResponseCode.NOT_FOUND;
}
- private PlcValue decodeReadResponseUnsignedByteField(AbEthField field, ByteBuf data) {
+ private PlcValue decodeReadResponseUnsignedBytePlcValue(AbEthField field, ByteBuf data) {
Short[] shorts = null;//readAllValues(Short.class, field, i -> data.readUnsignedByte());
return new PlcInteger(1/*shorts*/);
}
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java
index f580da9..3b5b354 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java
@@ -301,8 +301,8 @@ public class AdsTcpPlcConnection extends AdsAbstractPlcConnection implements Plc
String plcFieldName = adsSubscriptionHandle.getPlcFieldName();
AdsDataType adsDataType = adsSubscriptionHandle.getAdsDataType();
try {
- PlcValue baseDefaultFieldItem = LittleEndianDecoder.decodeData(adsDataType, data.getBytes());
- fields.put(plcFieldName, Pair.of(PlcResponseCode.OK, baseDefaultFieldItem));
+ PlcValue baseDefaultPlcValue = LittleEndianDecoder.decodeData(adsDataType, data.getBytes());
+ fields.put(plcFieldName, Pair.of(PlcResponseCode.OK, baseDefaultPlcValue));
} catch (RuntimeException e) {
LOGGER.error("Can't decode {}", data, e);
}
diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/connection/OpcuaTcpPlcConnection.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/connection/OpcuaTcpPlcConnection.java
index cb5020c..de67394 100644
--- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/connection/OpcuaTcpPlcConnection.java
+++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/connection/OpcuaTcpPlcConnection.java
@@ -111,7 +111,7 @@ public class OpcuaTcpPlcConnection extends BaseOpcuaPlcConnection {
return new OpcuaTcpPlcConnection(address, port, params, requestTimeout);
}
- public static PlcValue encodeFieldItem(DataValue value) {
+ public static PlcValue encodePlcValue(DataValue value) {
NodeId typeNode = value.getValue().getDataType().get();
Object objValue = value.getValue().getValue();
@@ -126,7 +126,7 @@ public class OpcuaTcpPlcConnection extends BaseOpcuaPlcConnection {
byteArry[counter] = bytie;
counter++;
}
- return new DefaultByteArrayFieldItem(byteArry);*/
+ return new DefaultByteArrayPlcValue(byteArry);*/
} else if (typeNode.equals(Identifiers.Integer)) {
return new PlcInteger((Integer) objValue);
} else if (typeNode.equals(Identifiers.Int16)) {
@@ -401,7 +401,7 @@ public class OpcuaTcpPlcConnection extends BaseOpcuaPlcConnection {
!= StatusCode.GOOD) {
resultCode = PlcResponseCode.NOT_FOUND;
} else {
- stringItem = encodeFieldItem(readValues.get(counter));
+ stringItem = encodePlcValue(readValues.get(counter));
}
Pair<PlcResponseCode, PlcValue> newPair = new ImmutablePair<>(resultCode, stringItem);
@@ -433,7 +433,7 @@ public class OpcuaTcpPlcConnection extends BaseOpcuaPlcConnection {
for (String fieldName : writeRequest.getFieldNames()) {
OpcuaField uaField = (OpcuaField) writeRequest.getField(fieldName);
NodeId idNode = generateNodeId(uaField);
- Variant var = new Variant(internalPlcWriteRequest.getFieldItem(fieldName).getObject());
+ Variant var = new Variant(internalPlcWriteRequest.getPlcValue(fieldName).getObject());
DataValue value = new DataValue(var, null, null);
ids.add(idNode);
names.add(fieldName);
diff --git a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/OpcuaSubsriptionHandle.java b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/OpcuaSubsriptionHandle.java
index 1beb793..730f308 100644
--- a/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/OpcuaSubsriptionHandle.java
+++ b/plc4j/drivers/opcua/src/main/java/org/apache/plc4x/java/opcua/protocol/OpcuaSubsriptionHandle.java
@@ -71,7 +71,7 @@ public class OpcuaSubsriptionHandle implements PlcSubscriptionHandle {
if (value.getStatusCode() != StatusCode.GOOD) {
resultCode = PlcResponseCode.NOT_FOUND;
} else {
- stringItem = OpcuaTcpPlcConnection.encodeFieldItem(value);
+ stringItem = OpcuaTcpPlcConnection.encodePlcValue(value);
}
Map<String, Pair<PlcResponseCode, PlcValue>> fields = new HashMap<>();
diff --git a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedPlcConnection.java b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedPlcConnection.java
index ba7cd96..838beca 100644
--- a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedPlcConnection.java
+++ b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedPlcConnection.java
@@ -142,11 +142,11 @@ public class SimulatedPlcConnection extends AbstractPlcConnection implements Plc
Map<String, Pair<PlcResponseCode, PlcValue>> fields = new HashMap<>();
for (String fieldName : request.getFieldNames()) {
TestField field = (TestField) request.getField(fieldName);
- Optional<PlcValue> fieldItemOptional = device.get(field);
+ Optional<PlcValue> valueOptional = device.get(field);
ImmutablePair<PlcResponseCode, PlcValue> fieldPair;
- boolean present = fieldItemOptional.isPresent();
+ boolean present = valueOptional.isPresent();
fieldPair = present
- ? new ImmutablePair<>(PlcResponseCode.OK, fieldItemOptional.get())
+ ? new ImmutablePair<>(PlcResponseCode.OK, valueOptional.get())
: new ImmutablePair<>(PlcResponseCode.NOT_FOUND, null);
fields.put(fieldName, fieldPair);
}
@@ -160,8 +160,8 @@ public class SimulatedPlcConnection extends AbstractPlcConnection implements Plc
Map<String, PlcResponseCode> fields = new HashMap<>();
for (String fieldName : request.getFieldNames()) {
TestField field = (TestField) request.getField(fieldName);
- PlcValue fieldItem = request.getFieldItem(fieldName);
- device.set(field, fieldItem);
+ PlcValue value = request.getPlcValue(fieldName);
+ device.set(field, value);
fields.put(fieldName, PlcResponseCode.OK);
}
PlcWriteResponse response = new DefaultPlcWriteResponse(request, fields);
@@ -200,7 +200,7 @@ public class SimulatedPlcConnection extends AbstractPlcConnection implements Plc
}
private Consumer<PlcValue> dispatchSubscriptionEvent(String name, InternalPlcSubscriptionHandle handle) {
- return fieldItem -> {
+ return plcValue -> {
InternalPlcConsumerRegistration plcConsumerRegistration = registrations.get(handle);
if (plcConsumerRegistration == null) {
return;
@@ -210,7 +210,7 @@ public class SimulatedPlcConnection extends AbstractPlcConnection implements Plc
if (consumer == null) {
return;
}
- consumer.accept(new DefaultPlcSubscriptionEvent(Instant.now(), Collections.singletonMap(name, Pair.of(PlcResponseCode.OK, fieldItem))));
+ consumer.accept(new DefaultPlcSubscriptionEvent(Instant.now(), Collections.singletonMap(name, Pair.of(PlcResponseCode.OK, plcValue))));
};
}
diff --git a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestDevice.java b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestDevice.java
index ed537ed..f0217cd 100644
--- a/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestDevice.java
+++ b/plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestDevice.java
@@ -75,7 +75,7 @@ public class TestDevice {
changeOfStateSubscriptions.values().stream()
.filter(pair -> pair.getKey().equals(field))
.map(Pair::getValue)
- .forEach(baseDefaultFieldItemConsumer -> baseDefaultFieldItemConsumer.accept(value));
+ .forEach(baseDefaultPlcValueConsumer -> baseDefaultPlcValueConsumer.accept(value));
state.put(field, value);
return;
case STDOUT:
@@ -140,11 +140,11 @@ public class TestDevice {
public void addCyclicSubscription(Consumer<PlcValue> consumer, PlcSubscriptionHandle handle, TestField plcField, Duration duration) {
ScheduledFuture<?> scheduledFuture = scheduler.scheduleAtFixedRate(() -> {
- PlcValue baseDefaultFieldItem = state.get(plcField);
- if (baseDefaultFieldItem == null) {
+ PlcValue baseDefaultPlcValue = state.get(plcField);
+ if (baseDefaultPlcValue == null) {
return;
}
- consumer.accept(baseDefaultFieldItem);
+ consumer.accept(baseDefaultPlcValue);
}, duration.toMillis(), duration.toMillis(), TimeUnit.MILLISECONDS);
cyclicSubscriptions.put(handle, scheduledFuture);
}
@@ -156,11 +156,11 @@ public class TestDevice {
public void addEventSubscription(Consumer<PlcValue> consumer, PlcSubscriptionHandle handle, TestField plcField) {
Future<?> submit = pool.submit(() -> {
while (!Thread.currentThread().isInterrupted()) {
- PlcValue baseDefaultFieldItem = state.get(plcField);
- if (baseDefaultFieldItem == null) {
+ PlcValue baseDefaultPlcValue = state.get(plcField);
+ if (baseDefaultPlcValue == null) {
continue;
}
- consumer.accept(baseDefaultFieldItem);
+ consumer.accept(baseDefaultPlcValue);
try {
TimeUnit.SECONDS.sleep((long) (Math.random() * 10));
} catch (InterruptedException ignore) {
diff --git a/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestDeviceTest.java b/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestDeviceTest.java
index 9afe647..e4b7c59 100644
--- a/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestDeviceTest.java
+++ b/plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestDeviceTest.java
@@ -49,8 +49,8 @@ public class TestDeviceTest {
device.set(field, new PlcLong(42));
value = device.get(field);
assertTrue(value.isPresent());
- PlcValue fieldItem = value.get();
- assertEquals(42L, fieldItem.getLong());
+ PlcValue plcValue = value.get();
+ assertEquals(42L, plcValue.getLong());
}
}
diff --git a/plc4j/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java b/plc4j/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
index de43ea3..3e2d26e 100644
--- a/plc4j/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
+++ b/plc4j/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
@@ -254,8 +254,8 @@ public class PlcConnectionAdapter implements AutoCloseable {
return new ObjectConsumer<>(genericDatatype, clientDatatype, fieldQuery);
}
- <T> Consumer<JsonObject> newJsonConsumer(PlcClientDatatype clientDatatype, Function<JsonObject, String> fieldQueryFn, Function<JsonObject, T> fieldValueFn) {
- return new JsonConsumer<>(clientDatatype, fieldQueryFn, fieldValueFn);
+ <T> Consumer<JsonObject> newJsonConsumer(PlcClientDatatype clientDatatype, Function<JsonObject, String> fieldQueryFn, Function<JsonObject, T> valueFn) {
+ return new JsonConsumer<>(clientDatatype, fieldQueryFn, valueFn);
}
private abstract class BaseConsumer<T> implements Consumer<T> {
diff --git a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java
index 0fc1244..2c57a06 100644
--- a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java
+++ b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java
@@ -88,7 +88,7 @@ public class PlcConnectionAdapterTest {
// will help identify problems in the adapter/supplier/consumer
PlcField plcField = request.getFields().get(0);
// TODO: smart value conversion
- connection.setFieldItem(plcField, new PlcLong(0L));
+ connection.setPlcValue(plcField, new PlcLong(0L));
CompletableFuture<PlcReadResponse> cf = connection.read(request);
@@ -103,7 +103,7 @@ public class PlcConnectionAdapterTest {
// this is really a tests of our mock tooling but knowing it's behaving as expected
// will help identify problems in the adapter/supplier/consumer
PlcField plcField = request.getFields().get(0);
- connection.setFieldItem(plcField, new PlcLong(0L));
+ connection.setPlcValue(plcField, new PlcLong(0L));
CompletableFuture<PlcWriteResponse> cf = connection.write(request);
diff --git a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
index 0664ebc..6dbc833 100644
--- a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
+++ b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
@@ -91,7 +91,7 @@ public class MockConnection extends org.apache.plc4x.java.mock.connection.MockCo
Map<String, Pair<PlcResponseCode, PlcValue>> fields = new LinkedHashMap<>();
for (String fieldName : readRequest.getFieldNames()) {
PlcField field = readRequest.getField(fieldName);
- fields.put(fieldName, new ImmutablePair<>(PlcResponseCode.OK, getFieldItem(field)));
+ fields.put(fieldName, new ImmutablePair<>(PlcResponseCode.OK, getPlcValue(field)));
}
PlcReadResponse response = new DefaultPlcReadResponse((InternalPlcReadRequest) readRequest, fields);
return CompletableFuture.completedFuture(response);
@@ -116,7 +116,7 @@ public class MockConnection extends org.apache.plc4x.java.mock.connection.MockCo
Map<String, PlcResponseCode> fields = new LinkedHashMap<>();
for (String fieldName : defaultPlcWriteRequest.getFieldNames()) {
PlcField field = defaultPlcWriteRequest.getField(fieldName);
- setFieldItem(field, defaultPlcWriteRequest.getFieldItem(fieldName));
+ setPlcValue(field, defaultPlcWriteRequest.getPlcValue(fieldName));
fields.put(fieldName, PlcResponseCode.OK);
}
PlcWriteResponse response = new DefaultPlcWriteResponse(defaultPlcWriteRequest, fields);
@@ -124,19 +124,19 @@ public class MockConnection extends org.apache.plc4x.java.mock.connection.MockCo
return CompletableFuture.completedFuture(response);
}
- public void setFieldItem(PlcField field, PlcValue fieldItem) {
- dataValueMap.put(field, fieldItem);
+ public void setPlcValue(PlcField plcField, PlcValue plcValue) {
+ dataValueMap.put(plcField, plcValue);
}
- public PlcValue getFieldItem(PlcField field) {
- return dataValueMap.get(field);
+ public PlcValue getPlcValue(PlcField plcField) {
+ return dataValueMap.get(plcField);
}
- public Map<PlcField, PlcValue> getAllFieldItems() {
+ public Map<PlcField, PlcValue> getAllPlcValues() {
return dataValueMap;
}
- public void clearAllFieldItems() {
+ public void clearAllPlcValues() {
dataValueMap.clear();
}
diff --git a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockField.java b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockField.java
index 16dc965..3993e1c 100644
--- a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockField.java
+++ b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockField.java
@@ -23,24 +23,24 @@ import org.apache.plc4x.java.api.model.PlcField;
public class MockField implements PlcField {
private final String address;
- private final MockFieldItem fieldItem;
+ private final MockPlcValue plcValue;
public MockField(String address) {
this.address = address;
- this.fieldItem = null;
+ this.plcValue = null;
}
- public MockField(String address, MockFieldItem fieldItem) {
+ public MockField(String address, MockPlcValue plcValue) {
this.address = address;
- this.fieldItem = fieldItem;
+ this.plcValue = plcValue;
}
public String getAddress() {
return address;
}
- public MockFieldItem getFieldItem() {
- return fieldItem;
+ public MockPlcValue getPlcValue() {
+ return plcValue;
}
@Override
diff --git a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldHandler.java b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldHandler.java
index a28ef38..ba45558 100644
--- a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldHandler.java
+++ b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldHandler.java
@@ -33,67 +33,67 @@ public class MockFieldHandler implements PlcFieldHandler {
@Override
public PlcValue encodeBoolean(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeByte(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeShort(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeInteger(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeBigInteger(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeLong(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeFloat(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeBigDecimal(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeDouble(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeString(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeTime(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeDate(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeDateTime(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
}
diff --git a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldItem.java b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockPlcValue.java
similarity index 91%
rename from plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldItem.java
rename to plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockPlcValue.java
index 556761b..7bd15c3 100644
--- a/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldItem.java
+++ b/plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockPlcValue.java
@@ -21,11 +21,11 @@ package org.apache.plc4x.edgent.mock;
import org.apache.plc4x.java.api.value.PlcValueAdapter;
-public class MockFieldItem extends PlcValueAdapter {
+public class MockPlcValue extends PlcValueAdapter {
private Object[] values;
- public MockFieldItem(Object... values) {
+ public MockPlcValue(Object... values) {
this.values = values;
}
diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4x2AdsProtocol.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4x2AdsProtocol.java
index e33ba8e..df4538a 100644
--- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4x2AdsProtocol.java
+++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/Plc4x2AdsProtocol.java
@@ -152,20 +152,20 @@ public class Plc4x2AdsProtocol extends MessageToMessageCodec<AmsPacket, PlcReque
IndexGroup indexGroup = IndexGroup.of(directAdsField.getIndexGroup());
IndexOffset indexOffset = IndexOffset.of(directAdsField.getIndexOffset());
- Object[] values;
- PlcValue fieldItem = writeRequest.getFieldItems().get(0);
- if(fieldItem instanceof PlcList) {
- values = ((PlcList) fieldItem).getList().toArray(new Object[0]);
+ Object[] plcValues;
+ PlcValue plcValue = writeRequest.getPlcValues().get(0);
+ if(plcValue instanceof PlcList) {
+ plcValues = ((PlcList) plcValue).getList().toArray(new Object[0]);
} else {
- values = new Object[] {fieldItem.getObject()};
+ plcValues = new Object[] {plcValue.getObject()};
}
- byte[] bytes = encodeData(directAdsField.getAdsDataType(), values);
+ byte[] bytes = encodeData(directAdsField.getAdsDataType(), plcValues);
int bytesToBeWritten = bytes.length;
int maxTheoreticalSize = directAdsField.getAdsDataType().getTargetByteSize() * directAdsField.getNumberOfElements();
if (bytesToBeWritten > maxTheoreticalSize) {
LOGGER.debug("Requested AdsDatatype {} is exceeded by number of bytes {}. Limit {}.", directAdsField.getAdsDataType(), bytesToBeWritten, maxTheoreticalSize);
- throw new PlcProtocolPayloadTooBigException("ADS", maxTheoreticalSize, bytesToBeWritten, values);
+ throw new PlcProtocolPayloadTooBigException("ADS", maxTheoreticalSize, bytesToBeWritten, plcValues);
}
Data data = Data.of(bytes);
AmsPacket amsPacket = AdsWriteRequest.of(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, indexGroup, indexOffset, data);
@@ -302,14 +302,14 @@ public class Plc4x2AdsProtocol extends MessageToMessageCodec<AmsPacket, PlcReque
PlcResponseCode responseCode = decodeResponseCode(responseMessage.getResult());
byte[] bytes = responseMessage.getData().getBytes();
- PlcValue fieldItem = decodeData(field.getAdsDataType(), bytes);
+ PlcValue value = decodeData(field.getAdsDataType(), bytes);
// TODO: does every item has the same ads response or is this whole aggregation broken?
Map<String, Pair<PlcResponseCode, PlcValue>> responseItems = plcReadRequest.getFieldNames()
.stream()
.collect(Collectors.toMap(
fieldName -> fieldName,
- ignore -> Pair.of(responseCode, fieldItem)
+ ignore -> Pair.of(responseCode, value)
));
return new DefaultPlcReadResponse(plcReadRequest, responseItems);
diff --git a/plc4j/protocols/ads/src/test/groovy/org/apache/plc4x/java/ads/protocol/util/LittleEndianDecoderSpecHurz.groovy b/plc4j/protocols/ads/src/test/groovy/org/apache/plc4x/java/ads/protocol/util/LittleEndianDecoderSpecHurz.groovy
index 8669b1a..f3e7b8c 100644
--- a/plc4j/protocols/ads/src/test/groovy/org/apache/plc4x/java/ads/protocol/util/LittleEndianDecoderSpecHurz.groovy
+++ b/plc4j/protocols/ads/src/test/groovy/org/apache/plc4x/java/ads/protocol/util/LittleEndianDecoderSpecHurz.groovy
@@ -32,12 +32,12 @@ class LittleEndianDecoderSpecHurz extends Specification {
@Unroll
def "decode of #adsdt.name() using get#retrievalType.simpleName [#expectedValues]"(AdsDataType adsdt, def retrievalType, def expectedValues, def rawData) {
when:
- def fieldItem = LittleEndianDecoder.decodeData(adsdt, rawData)
+ def plcValue = LittleEndianDecoder.decodeData(adsdt, rawData)
and:
def data = []
- (0..fieldItem.numberOfValues - 1).forEach({ index ->
- data << fieldItem."get${retrievalType.simpleName}"(index)
+ (0..plcValue.numberOfValues - 1).forEach({ index ->
+ data << plcValue."get${retrievalType.simpleName}"(index)
})
then:
diff --git a/plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/netty/Plc4XEtherNetIpProtocol.java b/plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/netty/Plc4XEtherNetIpProtocol.java
index d2e8d6b..68f56b2 100644
--- a/plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/netty/Plc4XEtherNetIpProtocol.java
+++ b/plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/netty/Plc4XEtherNetIpProtocol.java
@@ -478,8 +478,8 @@ public class Plc4XEtherNetIpProtocol extends MessageToMessageCodec<EnipPacket, P
} else {
value = -1;
}
- PlcValue fieldItem = new PlcLong(value);
- values.put(fieldName, new ImmutablePair<>(responseCode, fieldItem));
+ PlcValue plcValue = new PlcLong(value);
+ values.put(fieldName, new ImmutablePair<>(responseCode, plcValue));
}
InternalPlcReadResponse response = new DefaultPlcReadResponse(request, values);
plcRequestContainer.getResponseFuture().complete(response);
diff --git a/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItem.java b/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayPlcList.java
similarity index 96%
rename from plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItem.java
rename to plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayPlcList.java
index 849a84d..6e2007a 100644
--- a/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItem.java
+++ b/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayPlcList.java
@@ -27,10 +27,10 @@ import java.util.Arrays;
import java.util.stream.Stream;
/**
- * default implementation for DefaultByteArrayFieldItem for Usage within Modbus module
+ * default implementation for PlcValue for Usage within Modbus module
* default ByteOrder is set to BIG_ENDIAN, can be selected on regarding get-method explicitly from user if needed
*/
-public class DefaultModbusByteArrayFieldItem extends PlcList {
+public class DefaultModbusByteArrayPlcList extends PlcList {
private static final int SHORT_BYTES = 2;
private static final int INTEGER_BYTES = 4;
@@ -42,7 +42,7 @@ public class DefaultModbusByteArrayFieldItem extends PlcList {
private Byte[] completeByteArray;
- public DefaultModbusByteArrayFieldItem(Byte[]... values) {
+ public DefaultModbusByteArrayPlcList(Byte[]... values) {
super(Arrays.asList(values));
this.byteOrder = DEFAULT_ENDIANNESS;
this.completeByteArray = Arrays.stream(values).flatMap(Stream::of).toArray(Byte[]::new);
@@ -200,7 +200,7 @@ public class DefaultModbusByteArrayFieldItem extends PlcList {
if (!super.equals(o)) {
return false;
}
- DefaultModbusByteArrayFieldItem that = (DefaultModbusByteArrayFieldItem) o;
+ DefaultModbusByteArrayPlcList that = (DefaultModbusByteArrayPlcList) o;
return Arrays.equals(completeByteArray, that.completeByteArray);
}
diff --git a/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/Plc4XModbusProtocol.java b/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/Plc4XModbusProtocol.java
index 692ab75..18af60c 100644
--- a/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/Plc4XModbusProtocol.java
+++ b/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/Plc4XModbusProtocol.java
@@ -56,9 +56,7 @@ import org.apache.plc4x.java.api.messages.PlcWriteRequest;
import org.apache.plc4x.java.api.types.PlcResponseCode;
import org.apache.plc4x.java.api.value.PlcBoolean;
import org.apache.plc4x.java.api.value.PlcList;
-import org.apache.plc4x.java.api.value.PlcSimpleValue;
import org.apache.plc4x.java.api.value.PlcValue;
-import org.apache.plc4x.java.modbus.messages.items.DefaultModbusByteArrayFieldItem;
import org.apache.plc4x.java.modbus.model.CoilModbusField;
import org.apache.plc4x.java.modbus.model.MaskWriteRegisterModbusField;
import org.apache.plc4x.java.modbus.model.ModbusField;
@@ -146,7 +144,7 @@ public class Plc4XModbusProtocol extends MessageToMessageCodec<ModbusTcpPayload,
if (field instanceof RegisterModbusField) {
RegisterModbusField registerModbusField = (RegisterModbusField) field;
if (quantity > 1) {
- byte[] bytesToWrite = produceRegisterValue(((PlcList) request.getFieldItem(fieldName)).getList());
+ byte[] bytesToWrite = produceRegisterValue(((PlcList) request.getPlcValue(fieldName)).getList());
// A register is a 16 bit (2 byte) value ... so every value needs 2 byte.
int requiredLength = 2 * quantity;
if (bytesToWrite.length != requiredLength) {
@@ -154,7 +152,7 @@ public class Plc4XModbusProtocol extends MessageToMessageCodec<ModbusTcpPayload,
}
modbusRequest = new WriteMultipleRegistersRequest(registerModbusField.getAddress(), quantity, bytesToWrite);
} else {
- byte[] register = produceRegisterValue(Collections.singletonList(request.getFieldItem(fieldName).getObject()));
+ byte[] register = produceRegisterValue(Collections.singletonList(request.getPlcValue(fieldName).getObject()));
if ((register == null) || (register.length != 2)) {
throw new PlcProtocolException("Invalid register values created. Should be 2 bytes. Was " +
((register != null) ? register.length : 0));
@@ -166,7 +164,7 @@ public class Plc4XModbusProtocol extends MessageToMessageCodec<ModbusTcpPayload,
} else if (field instanceof CoilModbusField) {
CoilModbusField coilModbusField = (CoilModbusField) field;
if (quantity > 1) {
- byte[] bytesToWrite = produceCoilValues(((PlcList) request.getFieldItem(fieldName)).getList());
+ byte[] bytesToWrite = produceCoilValues(((PlcList) request.getPlcValue(fieldName)).getList());
// As each coil value represents a bit, the number of bytes needed
// equals "ceil(quantity/8)" (a 3 bit shift is a division by 8 ... the +1 is the "ceil")
int requiredLength = (quantity >> 3) + 1;
@@ -177,7 +175,7 @@ public class Plc4XModbusProtocol extends MessageToMessageCodec<ModbusTcpPayload,
}
modbusRequest = new WriteMultipleCoilsRequest(coilModbusField.getAddress(), quantity, bytesToWrite);
} else {
- boolean booleanToWrite = produceCoilValue(Collections.singletonList(request.getFieldItem(fieldName).getObject()));
+ boolean booleanToWrite = produceCoilValue(Collections.singletonList(request.getPlcValue(fieldName).getObject()));
modbusRequest = new WriteSingleCoilRequest(coilModbusField.getAddress(), booleanToWrite);
}
} else if (field instanceof MaskWriteRegisterModbusField) {
@@ -557,6 +555,6 @@ public class Plc4XModbusProtocol extends MessageToMessageCodec<ModbusTcpPayload,
byteBuf.readBytes(register);
data.add(ArrayUtils.toObject(register));
}
- return null;//new DefaultModbusByteArrayFieldItem(data.toArray(new Byte[0][0]));
+ return null;//new DefaultModbusByteArrayPlcValue(data.toArray(new Byte[0][0]));
}
}
diff --git a/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/util/ModbusPlcFieldHandler.java b/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/util/ModbusPlcFieldHandler.java
index dc9c500..0d71f26 100644
--- a/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/util/ModbusPlcFieldHandler.java
+++ b/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/util/ModbusPlcFieldHandler.java
@@ -118,6 +118,6 @@ public class ModbusPlcFieldHandler extends DefaultPlcFieldHandler {
" is not assignable to " + modbusField + " fields.");
}
}
- return new DefaultModbusByteArrayFieldItem(byteArrays.toArray(new Byte[0][0]));
+ return new DefaultModbusByteArrayPlcValue(byteArrays.toArray(new Byte[0][0]));
}*/
}
diff --git a/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItemTest.java b/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayPlcValueTest.java
similarity index 99%
rename from plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItemTest.java
rename to plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayPlcValueTest.java
index 29c905b..a687a41 100644
--- a/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItemTest.java
+++ b/plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayPlcValueTest.java
@@ -28,7 +28,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@SuppressWarnings("unchecked")
-public class DefaultModbusByteArrayFieldItemTest {
+public class DefaultModbusByteArrayPlcValueTest {
/*@Test
public void convertByteArrayToIntegerTest() {
PlcValue fieldItem = getFieldItemForIntegerArray();
diff --git a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
index 346ab33..5d2d8eb 100644
--- a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
+++ b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
@@ -201,7 +201,7 @@ public class Plc4XS7Protocol extends io.netty.handler.codec.MessageToMessageCode
if(!(writeRequest instanceof DefaultPlcWriteRequest)) {
throw new PlcException("The writeRequest should have been of type DefaultPlcWriteRequest");
}
- PlcValue fieldItem = ((DefaultPlcWriteRequest) writeRequest).getFieldItem(fieldName);
+ PlcValue value = ((DefaultPlcWriteRequest) writeRequest).getPlcValue(fieldName);
// The number of elements provided in the request must match the number defined in the field, or
// bad things are going to happen.
@@ -225,7 +225,7 @@ public class Plc4XS7Protocol extends io.netty.handler.codec.MessageToMessageCode
// Bit
// -----------------------------------------
case BOOL:
- byteData = encodeWriteRequestBitField(fieldItem);
+ byteData = encodeWriteRequestBitField(value);
break;
// -----------------------------------------
// Signed integer values
@@ -233,57 +233,57 @@ public class Plc4XS7Protocol extends io.netty.handler.codec.MessageToMessageCode
case BYTE:
case SINT:
case CHAR: // 1 byte
- byteData = encodeWriteRequestByteField(fieldItem, true);
+ byteData = encodeWriteRequestByteField(value, true);
break;
case WORD:
case INT:
case WCHAR: // 2 byte (16 bit)
- byteData = encodeWriteRequestShortField(fieldItem, true);
+ byteData = encodeWriteRequestShortField(value, true);
break;
case DWORD:
case DINT: // 4 byte (32 bit)
- byteData = encodeWriteRequestIntegerField(fieldItem, true);
+ byteData = encodeWriteRequestIntegerField(value, true);
break;
case LWORD:
case LINT: // 8 byte (64 bit)
- byteData = encodeWriteRequestLongField(fieldItem, true);
+ byteData = encodeWriteRequestLongField(value, true);
break;
// -----------------------------------------
// Unsigned integer values
// -----------------------------------------
// 8 bit:
case USINT:
- byteData = encodeWriteRequestByteField(fieldItem, false);
+ byteData = encodeWriteRequestByteField(value, false);
break;
// 16 bit:
case UINT:
- byteData = encodeWriteRequestShortField(fieldItem, false);
+ byteData = encodeWriteRequestShortField(value, false);
break;
// 32 bit:
case UDINT:
- byteData = encodeWriteRequestIntegerField(fieldItem, false);
+ byteData = encodeWriteRequestIntegerField(value, false);
break;
// 64 bit:
case ULINT:
- byteData = encodeWriteRequestLongField(fieldItem, false);
+ byteData = encodeWriteRequestLongField(value, false);
break;
// -----------------------------------------
// Floating point values
// -----------------------------------------
case REAL:
- byteData = encodeWriteRequestFloatField(fieldItem);
+ byteData = encodeWriteRequestFloatField(value);
break;
case LREAL:
- byteData = encodeWriteRequestDoubleField(fieldItem);
+ byteData = encodeWriteRequestDoubleField(value);
break;
// -----------------------------------------
// Characters & Strings
// -----------------------------------------
case STRING:
- byteData = encodeWriteRequestStringField(fieldItem, false);
+ byteData = encodeWriteRequestStringField(value, false);
break;
case WSTRING:
- byteData = encodeWriteRequestStringField(fieldItem, true);
+ byteData = encodeWriteRequestStringField(value, true);
break;
default:
throw new PlcProtocolException("Unsupported type " + s7Field.getDataType());
@@ -307,108 +307,108 @@ public class Plc4XS7Protocol extends io.netty.handler.codec.MessageToMessageCode
out.add(s7WriteRequest);
}
- byte[] encodeWriteRequestBitField(PlcValue fieldItem) {
- int numBytes = fieldItem.getNumberOfValues() >> 3 / 8;
+ byte[] encodeWriteRequestBitField(PlcValue value) {
+ int numBytes = value.getNumberOfValues() >> 3 / 8;
byte[] byteData = new byte[numBytes];
BitSet bitSet = new BitSet();
- if(fieldItem instanceof PlcList) {
- PlcList plcList = (PlcList) fieldItem;
- for (int i = 0; i < fieldItem.getNumberOfValues(); i++) {
+ if(value instanceof PlcList) {
+ PlcList plcList = (PlcList) value;
+ for (int i = 0; i < value.getNumberOfValues(); i++) {
bitSet.set(i, plcList.getIndex(i).getBoolean());
}
} else {
- bitSet.set(0, fieldItem.getBoolean());
+ bitSet.set(0, value.getBoolean());
}
byte[] src = bitSet.toByteArray();
System.arraycopy(src, 0, byteData, 0, Math.min(src.length, numBytes));
return byteData;
}
- byte[] encodeWriteRequestByteField(PlcValue fieldItem, boolean signed) {
- int numBytes = fieldItem.getNumberOfValues();
+ byte[] encodeWriteRequestByteField(PlcValue value, boolean signed) {
+ int numBytes = value.getNumberOfValues();
ByteBuffer buffer = ByteBuffer.allocate(numBytes);
- if(fieldItem instanceof PlcList) {
- PlcList plcList = (PlcList) fieldItem;
+ if(value instanceof PlcList) {
+ PlcList plcList = (PlcList) value;
for (PlcValue plcValue : plcList.getList()) {
buffer.put(plcValue.getByte());
}
} else {
- buffer.put(fieldItem.getByte());
+ buffer.put(value.getByte());
}
return buffer.array();
}
- byte[] encodeWriteRequestShortField(PlcValue fieldItem, boolean signed) {
- int numBytes = fieldItem.getNumberOfValues() * 2;
+ byte[] encodeWriteRequestShortField(PlcValue value, boolean signed) {
+ int numBytes = value.getNumberOfValues() * 2;
ByteBuffer buffer = ByteBuffer.allocate(numBytes);
- if(fieldItem instanceof PlcList) {
- PlcList plcList = (PlcList) fieldItem;
+ if(value instanceof PlcList) {
+ PlcList plcList = (PlcList) value;
for (PlcValue plcValue : plcList.getList()) {
buffer.putShort(plcValue.getShort());
}
} else {
- buffer.putShort(fieldItem.getShort());
+ buffer.putShort(value.getShort());
}
return buffer.array();
}
- byte[] encodeWriteRequestIntegerField(PlcValue fieldItem, boolean signed) {
- int numBytes = fieldItem.getNumberOfValues() * 4;
+ byte[] encodeWriteRequestIntegerField(PlcValue value, boolean signed) {
+ int numBytes = value.getNumberOfValues() * 4;
ByteBuffer buffer = ByteBuffer.allocate(numBytes);
- if(fieldItem instanceof PlcList) {
- PlcList plcList = (PlcList) fieldItem;
+ if(value instanceof PlcList) {
+ PlcList plcList = (PlcList) value;
for (PlcValue plcValue : plcList.getList()) {
buffer.putInt(plcValue.getInteger());
}
} else {
- buffer.putInt(fieldItem.getInteger());
+ buffer.putInt(value.getInteger());
}
return buffer.array();
}
- byte[] encodeWriteRequestLongField(PlcValue fieldItem, boolean signed) {
- int numBytes = fieldItem.getNumberOfValues() * 8;
+ byte[] encodeWriteRequestLongField(PlcValue value, boolean signed) {
+ int numBytes = value.getNumberOfValues() * 8;
ByteBuffer buffer = ByteBuffer.allocate(numBytes);
- if(fieldItem instanceof PlcList) {
- PlcList plcList = (PlcList) fieldItem;
+ if(value instanceof PlcList) {
+ PlcList plcList = (PlcList) value;
for (PlcValue plcValue : plcList.getList()) {
buffer.putLong(plcValue.getLong());
}
} else {
- buffer.putLong(fieldItem.getLong());
+ buffer.putLong(value.getLong());
}
return buffer.array();
}
- byte[] encodeWriteRequestFloatField(PlcValue fieldItem) {
- int numBytes = fieldItem.getNumberOfValues() * 4;
+ byte[] encodeWriteRequestFloatField(PlcValue value) {
+ int numBytes = value.getNumberOfValues() * 4;
ByteBuffer buffer = ByteBuffer.allocate(numBytes);
- if(fieldItem instanceof PlcList) {
- PlcList plcList = (PlcList) fieldItem;
+ if(value instanceof PlcList) {
+ PlcList plcList = (PlcList) value;
for (PlcValue plcValue : plcList.getList()) {
buffer.putFloat(plcValue.getFloat());
}
} else {
- buffer.putFloat(fieldItem.getFloat());
+ buffer.putFloat(value.getFloat());
}
return buffer.array();
}
- byte[] encodeWriteRequestDoubleField(PlcValue fieldItem) {
- int numBytes = fieldItem.getNumberOfValues() * 8;
+ byte[] encodeWriteRequestDoubleField(PlcValue value) {
+ int numBytes = value.getNumberOfValues() * 8;
ByteBuffer buffer = ByteBuffer.allocate(numBytes);
- if(fieldItem instanceof PlcList) {
- PlcList plcList = (PlcList) fieldItem;
+ if(value instanceof PlcList) {
+ PlcList plcList = (PlcList) value;
for (PlcValue plcValue : plcList.getList()) {
buffer.putDouble(plcValue.getDouble());
}
} else {
- buffer.putDouble(fieldItem.getDouble());
+ buffer.putDouble(value.getDouble());
}
return buffer.array();
}
- byte[] encodeWriteRequestStringField(PlcValue fieldItem, boolean isUtf16) {
+ byte[] encodeWriteRequestStringField(PlcValue value, boolean isUtf16) {
// TODO: Implement this ...
return new byte[0];
}
@@ -471,7 +471,7 @@ public class Plc4XS7Protocol extends io.netty.handler.codec.MessageToMessageCode
VarPayloadItem payloadItem = payloadItems.get(index);
PlcResponseCode responseCode = decodeResponseCode(payloadItem.getReturnCode());
- PlcValue fieldItem = null;
+ PlcValue value = null;
ByteBuf data = Unpooled.wrappedBuffer(payloadItem.getData());
if (responseCode == PlcResponseCode.OK) {
try {
@@ -480,89 +480,89 @@ public class Plc4XS7Protocol extends io.netty.handler.codec.MessageToMessageCode
// Bit
// -----------------------------------------
case BOOL:
- fieldItem = decodeReadResponseBitField(field, data);
+ value = decodeReadResponseBitField(field, data);
break;
// -----------------------------------------
// Bit-strings
// -----------------------------------------
case BYTE: // 1 byte
- fieldItem = decodeReadResponseByteBitStringField(field, data);
+ value = decodeReadResponseByteBitStringField(field, data);
break;
case WORD: // 2 byte (16 bit)
- fieldItem = decodeReadResponseShortBitStringField(field, data);
+ value = decodeReadResponseShortBitStringField(field, data);
break;
case DWORD: // 4 byte (32 bit)
- fieldItem = decodeReadResponseIntegerBitStringField(field, data);
+ value = decodeReadResponseIntegerBitStringField(field, data);
break;
case LWORD: // 8 byte (64 bit)
- fieldItem = decodeReadResponseLongBitStringField(field, data);
+ value = decodeReadResponseLongBitStringField(field, data);
break;
// -----------------------------------------
// Integers
// -----------------------------------------
// 8 bit:
case SINT:
- fieldItem = decodeReadResponseSignedByteField(field, data);
+ value = decodeReadResponseSignedByteField(field, data);
break;
case USINT:
- fieldItem = decodeReadResponseUnsignedByteField(field, data);
+ value = decodeReadResponseUnsignedByteField(field, data);
break;
// 16 bit:
case INT:
- fieldItem = decodeReadResponseSignedShortField(field, data);
+ value = decodeReadResponseSignedShortField(field, data);
break;
case UINT:
- fieldItem = decodeReadResponseUnsignedShortField(field, data);
+ value = decodeReadResponseUnsignedShortField(field, data);
break;
// 32 bit:
case DINT:
- fieldItem = decodeReadResponseSignedIntegerField(field, data);
+ value = decodeReadResponseSignedIntegerField(field, data);
break;
case UDINT:
- fieldItem = decodeReadResponseUnsignedIntegerField(field, data);
+ value = decodeReadResponseUnsignedIntegerField(field, data);
break;
// 64 bit:
case LINT:
- fieldItem = decodeReadResponseSignedLongField(field, data);
+ value = decodeReadResponseSignedLongField(field, data);
break;
case ULINT:
- fieldItem = decodeReadResponseUnsignedLongField(field, data);
+ value = decodeReadResponseUnsignedLongField(field, data);
break;
// -----------------------------------------
// Floating point values
// -----------------------------------------
case REAL:
- fieldItem = decodeReadResponseFloatField(field, data);
+ value = decodeReadResponseFloatField(field, data);
break;
case LREAL:
- fieldItem = decodeReadResponseDoubleField(field, data);
+ value = decodeReadResponseDoubleField(field, data);
break;
// -----------------------------------------
// Characters & Strings
// -----------------------------------------
case CHAR: // 1 byte (8 bit)
- fieldItem = decodeReadResponseFixedLengthStringField(1, false, data);
+ value = decodeReadResponseFixedLengthStringField(1, false, data);
break;
case WCHAR: // 2 byte
- fieldItem = decodeReadResponseFixedLengthStringField(1, true, data);
+ value = decodeReadResponseFixedLengthStringField(1, true, data);
break;
case STRING:
- fieldItem = decodeReadResponseVarLengthStringField(false, data);
+ value = decodeReadResponseVarLengthStringField(false, data);
break;
case WSTRING:
- fieldItem = decodeReadResponseVarLengthStringField(true, data);
+ value = decodeReadResponseVarLengthStringField(true, data);
break;
// -----------------------------------------
// TIA Date-Formats
// -----------------------------------------
case DATE_AND_TIME:
- fieldItem = decodeReadResponseDateAndTime(field, data);
+ value = decodeReadResponseDateAndTime(field, data);
break;
case TIME_OF_DAY:
- fieldItem = decodeReadResponseTimeOfDay(field, data);
+ value = decodeReadResponseTimeOfDay(field, data);
break;
case DATE:
- fieldItem = decodeReadResponseDate(field, data);
+ value = decodeReadResponseDate(field, data);
break;
default:
throw new PlcProtocolException("Unsupported type " + field.getDataType());
@@ -575,7 +575,7 @@ public class Plc4XS7Protocol extends io.netty.handler.codec.MessageToMessageCode
logger.warn("Some other error occurred casting field {}, FieldInformation: {}",fieldName, field,e);
}
}
- Pair<PlcResponseCode, PlcValue> result = new ImmutablePair<>(responseCode, fieldItem);
+ Pair<PlcResponseCode, PlcValue> result = new ImmutablePair<>(responseCode, value);
values.put(fieldName, result);
index++;
}
diff --git a/plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandlerTest.java b/plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandlerTest.java
index aa752ad..caf6634 100644
--- a/plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandlerTest.java
+++ b/plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandlerTest.java
@@ -277,11 +277,11 @@ class S7PlcFieldHandlerTest {
for (InputTypes javaType : InputTypes.values()) {
Object[] testValues = javaType.values;
- PlcValue fieldItem;
+ PlcValue value;
try {
- fieldItem = javaType.fieldItemType.getDeclaredConstructor(testValues[0].getClass()).newInstance(testValues[0]);
+ value = javaType.valueType.getDeclaredConstructor(testValues[0].getClass()).newInstance(testValues[0]);
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException e) {
- throw new PlcRuntimeException("Error initializing field class " + javaType.fieldItemType.getSimpleName(), e);
+ throw new PlcRuntimeException("Error initializing field class " + javaType.valueType.getSimpleName(), e);
}
Stream<Arguments> curValues;
@@ -339,11 +339,11 @@ class S7PlcFieldHandlerTest {
DATE(PlcDate.class, new LocalDate[]{LocalDate.now(), LocalDate.MIN, LocalDate.MAX}),
DATETIME(PlcDateTime.class, new LocalDateTime[]{LocalDateTime.now(), LocalDateTime.MIN, LocalDateTime.MAX});
- private final Class<? extends PlcValue> fieldItemType;
+ private final Class<? extends PlcValue> valueType;
private final Object[] values;
- InputTypes(Class<? extends PlcValue> fieldItemType, Object[] values) {
- this.fieldItemType = fieldItemType;
+ InputTypes(Class<? extends PlcValue> valueType, Object[] values) {
+ this.valueType = valueType;
this.values = values;
}
}
@@ -352,8 +352,8 @@ class S7PlcFieldHandlerTest {
BiFunction<PlcField, Object[], PlcValue> encoder) {
boolean success = expectedSuccess.contains(name);
try {
- PlcValue fieldItem = encoder.apply(field, values);
- assertNotNull(fieldItem, "A FieldItem instance should have been returned for testcase " + name);
+ PlcValue plcValue = encoder.apply(field, values);
+ assertNotNull(plcValue, "A PlcValue instance should have been returned for testcase " + name);
if(!success) {
fail("Expected to fail for testcase " + name);
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
index d56ea36..2159acb 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
@@ -82,12 +82,12 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal
return fields.values().stream().map(Pair::getKey).collect(Collectors.toCollection(LinkedList::new));
}
- public PlcValue getFieldItem(String name) {
+ public PlcValue getPlcValue(String name) {
return fields.get(name).getValue();
}
@Override
- public List<PlcValue> getFieldItems() {
+ public List<PlcValue> getPlcValues() {
return fields.values().stream().map(Pair::getValue).collect(Collectors.toCollection(LinkedList::new));
}
@@ -230,11 +230,11 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal
throw new IllegalArgumentException("Invalid class found " + value.getClass() + ". should all be " + checkedClazz);
}
}
- BiFunction<PlcField, Object[], PlcValue> plcFieldFieldItemBiFunction = handlerMap.get(checkedClazz);
- if (plcFieldFieldItemBiFunction == null) {
+ BiFunction<PlcField, Object[], PlcValue> plcFieldPlcValueBiFunction = handlerMap.get(checkedClazz);
+ if (plcFieldPlcValueBiFunction == null) {
throw new IllegalArgumentException("no field handler for " + checkedClazz + " found");
}
- return addItem(name, fieldQuery, values, plcFieldFieldItemBiFunction);
+ return addItem(name, fieldQuery, values, plcFieldPlcValueBiFunction);
}
@Override
@@ -244,9 +244,9 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal
// Compile the query string.
PlcField parsedField = fieldHandler.createField(builderItem.fieldQuery);
// Encode the payload.
- // TODO: Depending on the field type, handle the FieldItem creation differently.
- PlcValue fieldItem = builderItem.encoder.apply(parsedField, builderItem.values);
- parsedFields.put(name, new ImmutablePair<>(parsedField, fieldItem));
+ // TODO: Depending on the field type, handle the PlcValue creation differently.
+ PlcValue value = builderItem.encoder.apply(parsedField, builderItem.values);
+ parsedFields.put(name, new ImmutablePair<>(parsedField, value));
});
return new DefaultPlcWriteRequest(writer, parsedFields);
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteRequest.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteRequest.java
index c783673..0df5978 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteRequest.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteRequest.java
@@ -27,9 +27,9 @@ import java.util.List;
public interface InternalPlcWriteRequest extends PlcWriteRequest, InternalPlcRequest {
- PlcValue getFieldItem(String name);
+ PlcValue getPlcValue(String name);
- List<PlcValue> getFieldItems();
+ List<PlcValue> getPlcValues();
List<Triple<String, PlcField, PlcValue>> getNamedFieldTriples();
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/protocol/SingleItemToSingleRequestProtocol.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/protocol/SingleItemToSingleRequestProtocol.java
index 01370c3..a6d4310 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/protocol/SingleItemToSingleRequestProtocol.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/protocol/SingleItemToSingleRequestProtocol.java
@@ -342,7 +342,7 @@ public class SingleItemToSingleRequestProtocol extends ChannelDuplexHandler {
});
} else if (internalPlcFieldRequest instanceof InternalPlcWriteRequest && splitConfig.splitWrite) {
InternalPlcWriteRequest internalPlcWriteRequest = (InternalPlcWriteRequest) internalPlcFieldRequest;
- internalPlcWriteRequest.getNamedFieldTriples().forEach(fieldItemTriple -> {
+ internalPlcWriteRequest.getNamedFieldTriples().forEach(valueTriple -> {
ChannelPromise subPromise = new DefaultChannelPromise(promise.channel());
Integer tdpu = correlationIdGenerator.getAndIncrement();
@@ -357,7 +357,7 @@ public class SingleItemToSingleRequestProtocol extends ChannelDuplexHandler {
tryFinish(tdpu, internalPlcResponse, in.getResponseFuture());
}
});
- PlcRequestContainer<CorrelatedPlcWriteRequest, InternalPlcResponse> correlatedPlcRequestContainer = new PlcRequestContainer<>(CorrelatedPlcWriteRequest.of(writer, fieldItemTriple, tdpu), correlatedCompletableFuture);
+ PlcRequestContainer<CorrelatedPlcWriteRequest, InternalPlcResponse> correlatedPlcRequestContainer = new PlcRequestContainer<>(CorrelatedPlcWriteRequest.of(writer, valueTriple, tdpu), correlatedCompletableFuture);
correlationToParentContainer.put(tdpu, in);
queue.add(correlatedPlcRequestContainer, subPromise);
if (!tdpus.add(tdpu)) {
@@ -520,9 +520,9 @@ public class SingleItemToSingleRequestProtocol extends ChannelDuplexHandler {
this.tdpu = tdpu;
}
- public static CorrelatedPlcWriteRequest of(PlcWriter writer, Triple<String, PlcField, PlcValue> fieldItemTriple, int tdpu) {
+ public static CorrelatedPlcWriteRequest of(PlcWriter writer, Triple<String, PlcField, PlcValue> plcValueTriple, int tdpu) {
LinkedHashMap<String, Pair<PlcField, PlcValue>> fields = new LinkedHashMap<>();
- fields.put(fieldItemTriple.getLeft(), Pair.of(fieldItemTriple.getMiddle(), fieldItemTriple.getRight()));
+ fields.put(plcValueTriple.getLeft(), Pair.of(plcValueTriple.getMiddle(), plcValueTriple.getRight()));
return new CorrelatedPlcWriteRequest(writer, fields, tdpu);
}
diff --git a/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/events/S7ConnectedEvent.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/types/FieldType.java
similarity index 68%
rename from sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/events/S7ConnectedEvent.java
rename to plc4j/spi/src/main/java/org/apache/plc4x/java/spi/types/FieldType.java
index ac22e85..215476a 100644
--- a/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/events/S7ConnectedEvent.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/types/FieldType.java
@@ -16,7 +16,32 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
-package org.apache.plc4x.java.s7.readwrite.events;
+package org.apache.plc4x.java.spi.types;
+
+public enum FieldType {
+
+ BIT_1,
+ BIT_8,
+ BIT_16,
+ BIT_32,
+ BIT_64,
+ INT_2,
+ INT_4,
+ INT_8,
+ INT_16,
+ INT_32,
+ INT_64,
+ UINT_2,
+ UINT_4,
+ UINT_8,
+ UINT_16,
+ UINT_32,
+ UINT_64,
+ FLOAT_16,
+ FLOAT_32,
+ UFLOAT_16,
+ UFLOAT_32,
+ CHAR,
+ STRING
-public class S7ConnectedEvent {
}
diff --git a/plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockFieldHandler.java b/plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockFieldHandler.java
index eb48ef0..82f3e06 100644
--- a/plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockFieldHandler.java
+++ b/plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockFieldHandler.java
@@ -32,67 +32,67 @@ public class MockFieldHandler extends DefaultPlcFieldHandler {
@Override
public PlcValue encodeBoolean(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeByte(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeShort(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeInteger(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeBigInteger(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeLong(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeFloat(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeBigDecimal(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeDouble(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeString(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeTime(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeDate(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
@Override
public PlcValue encodeDateTime(PlcField field, Object[] values) {
- return new MockFieldItem(values);
+ return new MockPlcValue(values);
}
}
diff --git a/plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockFieldItem.java b/plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockPlcValue.java
similarity index 91%
rename from plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockFieldItem.java
rename to plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockPlcValue.java
index f806abb..655d83a 100644
--- a/plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockFieldItem.java
+++ b/plc4j/transports/test/src/main/java/org/apache/plc4x/java/mock/MockPlcValue.java
@@ -21,11 +21,11 @@ package org.apache.plc4x.java.mock;
import org.apache.plc4x.java.api.value.PlcValueAdapter;
-public class MockFieldItem extends PlcValueAdapter {
+public class MockPlcValue extends PlcValueAdapter {
final Object[] values;
- public MockFieldItem(Object... values) {
+ public MockPlcValue(Object... values) {
this.values = values;
}
diff --git a/plc4j/transports/test/src/test/java/org/apache/plc4x/java/mock/MockFieldItemTest.java b/plc4j/transports/test/src/test/java/org/apache/plc4x/java/mock/MockPlcValueTest.java
similarity index 88%
rename from plc4j/transports/test/src/test/java/org/apache/plc4x/java/mock/MockFieldItemTest.java
rename to plc4j/transports/test/src/test/java/org/apache/plc4x/java/mock/MockPlcValueTest.java
index 066f87c..3f867f6 100644
--- a/plc4j/transports/test/src/test/java/org/apache/plc4x/java/mock/MockFieldItemTest.java
+++ b/plc4j/transports/test/src/test/java/org/apache/plc4x/java/mock/MockPlcValueTest.java
@@ -22,10 +22,10 @@ package org.apache.plc4x.java.mock;
import org.assertj.core.api.WithAssertions;
import org.junit.jupiter.api.Test;
-class MockFieldItemTest implements WithAssertions {
+class MockPlcValueTest implements WithAssertions {
@Test
void getObject() {
- assertThat(new MockFieldItem("").getObject(0)).isNotNull();
+ assertThat(new MockPlcValue("").getObject(0)).isNotNull();
}
}
\ No newline at end of file
diff --git a/plc4j/utils/interop/pom.xml b/plc4j/utils/interop/pom.xml
index 34cff4e..2d36735 100644
--- a/plc4j/utils/interop/pom.xml
+++ b/plc4j/utils/interop/pom.xml
@@ -176,7 +176,6 @@
<artifactId>commons-lang3</artifactId>
</dependency>
-
<!-- Make sure this is built before this module -->
<dependency>
<groupId>org.apache.plc4x</groupId>
diff --git a/plc4j/utils/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java b/plc4j/utils/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java
index 95ed877..28e449c 100644
--- a/plc4j/utils/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java
+++ b/plc4j/utils/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java
@@ -27,8 +27,8 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent;
import org.apache.plc4x.java.api.model.PlcConsumerRegistration;
import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
import org.apache.plc4x.java.api.types.PlcResponseCode;
-import org.apache.plc4x.java.spi.messages.items.BaseDefaultFieldItem;
-import org.apache.plc4x.java.spi.messages.items.DefaultLongFieldItem;
+import org.apache.plc4x.java.api.value.PlcLong;
+import org.apache.plc4x.java.api.value.PlcValue;
import org.apache.plc4x.java.mock.MockDevice;
import org.apache.plc4x.java.mock.PlcMockConnection;
import org.apache.thrift.server.TServer;
@@ -64,28 +64,35 @@ public class Server {
}
private static class MyMockDevice implements MockDevice {
- @Override public Pair<PlcResponseCode, BaseDefaultFieldItem> read(String fieldQuery) {
- return Pair.of(PlcResponseCode.OK, new DefaultLongFieldItem(100L));
+ @Override
+ public Pair<PlcResponseCode, PlcValue> read(String fieldQuery) {
+ return Pair.of(PlcResponseCode.OK, new PlcLong(100L));
}
- @Override public PlcResponseCode write(String fieldQuery, Object value) {
+ @Override
+ public PlcResponseCode write(String fieldQuery, Object value) {
return null;
}
- @Override public Pair<PlcResponseCode, PlcSubscriptionHandle> subscribe(String fieldQuery) {
+ @Override
+ public Pair<PlcResponseCode, PlcSubscriptionHandle> subscribe(String fieldQuery) {
return null;
}
- @Override public void unsubscribe() {
+ @Override
+ public void unsubscribe() {
}
- @Override public PlcConsumerRegistration register(Consumer<PlcSubscriptionEvent> consumer, Collection<PlcSubscriptionHandle> handles) {
+ @Override
+ public PlcConsumerRegistration register(Consumer<PlcSubscriptionEvent> consumer, Collection<PlcSubscriptionHandle> handles) {
return null;
}
- @Override public void unregister(PlcConsumerRegistration registration) {
+ @Override
+ public void unregister(PlcConsumerRegistration registration) {
}
}
+
}
diff --git a/sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/connection/AdsTcpPlcConnection.java b/sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/connection/AdsTcpPlcConnection.java
index db1d117..c1924d3 100644
--- a/sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/connection/AdsTcpPlcConnection.java
+++ b/sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/connection/AdsTcpPlcConnection.java
@@ -293,8 +293,8 @@ public class AdsTcpPlcConnection extends AdsAbstractPlcConnection implements Plc
String plcFieldName = adsSubscriptionHandle.getPlcFieldName();
AdsDataType adsDataType = adsSubscriptionHandle.getAdsDataType();
try {
- PlcValue baseDefaultFieldItem = LittleEndianDecoder.decodeData(adsDataType, data);
- fields.put(plcFieldName, Pair.of(PlcResponseCode.OK, baseDefaultFieldItem));
+ PlcValue baseDefaultPlcValue = LittleEndianDecoder.decodeData(adsDataType, data);
+ fields.put(plcFieldName, Pair.of(PlcResponseCode.OK, baseDefaultPlcValue));
} catch (RuntimeException e) {
LOGGER.error("Can't decode {}", data, e);
}
diff --git a/sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/Plc4x2AdsProtocol.java b/sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/Plc4x2AdsProtocol.java
index 9e03286..a4a4888 100644
--- a/sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/Plc4x2AdsProtocol.java
+++ b/sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/Plc4x2AdsProtocol.java
@@ -149,22 +149,22 @@ public class Plc4x2AdsProtocol extends MessageToMessageCodec<AmsPacket, PlcReque
long indexGroup = directAdsField.getIndexGroup();
long indexOffset = directAdsField.getIndexOffset();
- PlcValue fieldItem = writeRequest.getFieldItems().get(0);
- Object[] values;
- if(fieldItem instanceof PlcList) {
- PlcList plcList = (PlcList) fieldItem;
- values = plcList.getList().toArray(new Object[0]);
+ PlcValue plcValue = writeRequest.getPlcValues().get(0);
+ Object[] plcValues;
+ if(plcValue instanceof PlcList) {
+ PlcList plcList = (PlcList) plcValue;
+ plcValues = plcList.getList().toArray(new Object[0]);
} else {
- values = new Object[1];
- values[0] = fieldItem.getObject();
+ plcValues = new Object[1];
+ plcValues[0] = plcValue.getObject();
}
- byte[] bytes = encodeData(directAdsField.getAdsDataType(), values);
+ byte[] bytes = encodeData(directAdsField.getAdsDataType(), plcValues);
int bytesToBeWritten = bytes.length;
int maxTheoreticalSize = directAdsField.getAdsDataType().getTargetByteSize() * directAdsField.getNumberOfElements();
if (bytesToBeWritten > maxTheoreticalSize) {
LOGGER.debug("Requested AdsDatatype {} is exceeded by number of bytes {}. Limit {}.", directAdsField.getAdsDataType(), bytesToBeWritten, maxTheoreticalSize);
- throw new PlcProtocolPayloadTooBigException("ADS", maxTheoreticalSize, bytesToBeWritten, values);
+ throw new PlcProtocolPayloadTooBigException("ADS", maxTheoreticalSize, bytesToBeWritten, plcValues);
}
AdsWriteRequest data = new AdsWriteRequest(indexGroup, indexOffset, bytes.length, bytes);
AmsPacket amsPacket = new AmsPacket(new AmsHeader(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, CommandId.ADS_WRITE, new State(false, false, false, false, false, false, true, false, false), data.getLength(), 0, invokeId), data);
@@ -302,14 +302,14 @@ public class Plc4x2AdsProtocol extends MessageToMessageCodec<AmsPacket, PlcReque
PlcResponseCode responseCode = decodeResponseCode(responseMessage.getResult());
byte[] bytes = responseMessage.getData();
- PlcValue fieldItem = decodeData(field.getAdsDataType(), bytes);
+ PlcValue plcValue = decodeData(field.getAdsDataType(), bytes);
// TODO: does every item has the same ads response or is this whole aggregation broken?
Map<String, Pair<PlcResponseCode, PlcValue>> responseItems = plcReadRequest.getFieldNames()
.stream()
.collect(Collectors.toMap(
fieldName -> fieldName,
- ignore -> Pair.of(responseCode, fieldItem)
+ ignore -> Pair.of(responseCode, plcValue)
));
return new DefaultPlcReadResponse(plcReadRequest, responseItems);
diff --git a/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/events/IsoTPConnectedEvent.java b/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/events/IsoTPConnectedEvent.java
deleted file mode 100644
index e829c5b..0000000
--- a/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/events/IsoTPConnectedEvent.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-package org.apache.plc4x.java.s7.readwrite.events;
-
-public class IsoTPConnectedEvent {
-}
diff --git a/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java b/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
index 6f9b82f..427f560 100644
--- a/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
+++ b/sandbox/test-java-s7-driver/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
@@ -180,9 +180,9 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements Ha
List<S7VarPayloadDataItem> payloadItems = new ArrayList<>(request.getNumberOfFields());
for (String fieldName : request.getFieldNames()) {
final S7Field field = (S7Field) request.getField(fieldName);
- final PlcValue fieldItem = request.getFieldItem(fieldName);
+ final PlcValue plcValue = request.getPlcValue(fieldName);
parameterItems.add(new S7VarRequestParameterItemAddress(encodeS7Address(field)));
- payloadItems.add(serializeFieldItem(field, fieldItem));
+ payloadItems.add(serializePlcValue(field, plcValue));
}
final int tpduId = tpduGenerator.getAndIncrement();
TPKTPacket tpktPacket = new TPKTPacket(new COTPPacketData(null,
@@ -302,12 +302,12 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements Ha
S7VarPayloadDataItem payloadItem = payloadItems[index];
PlcResponseCode responseCode = decodeResponseCode(payloadItem.getReturnCode());
- PlcValue fieldItem = null;
+ PlcValue plcValue = null;
ByteBuf data = Unpooled.wrappedBuffer(payloadItem.getData());
if (responseCode == PlcResponseCode.OK) {
- fieldItem = parseFieldItem(field, data);
+ plcValue = parsePlcValue(field, data);
}
- Pair<PlcResponseCode, PlcValue> result = new ImmutablePair<>(responseCode, fieldItem);
+ Pair<PlcResponseCode, PlcValue> result = new ImmutablePair<>(responseCode, plcValue);
values.put(fieldName, result);
index++;
}
@@ -340,7 +340,7 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements Ha
return new DefaultPlcWriteResponse(plcWriteRequest, responses);
}
- private S7VarPayloadDataItem serializeFieldItem(S7Field field, PlcValue plcValue) {
+ private S7VarPayloadDataItem serializePlcValue(S7Field field, PlcValue plcValue) {
try {
DataTransportSize transportSize = (field.getDataType().getDataProtocolId() == 1) ?
DataTransportSize.BIT : DataTransportSize.BYTE_WORD_DWORD;
@@ -355,7 +355,7 @@ public class S7ProtocolLogic extends Plc4xProtocolBase<TPKTPacket> implements Ha
return null;
}
- private PlcValue parseFieldItem(S7Field field, ByteBuf data) {
+ private PlcValue parsePlcValue(S7Field field, ByteBuf data) {
ReadBuffer readBuffer = new ReadBuffer(data.array());
try {
return DataItemIO.parse(readBuffer, field.getDataType().getDataProtocolId());
diff --git a/src/main/script/prerequisiteCheck.groovy b/src/main/script/prerequisiteCheck.groovy
index 23c168d..a0f3c3a 100644
--- a/src/main/script/prerequisiteCheck.groovy
+++ b/src/main/script/prerequisiteCheck.groovy
@@ -319,6 +319,7 @@ if(pythonEnabled && !proxiesEnabled) {
if(proxiesEnabled) {
checkBison()
+ checkBoost()
}
if(dotnetEnabled) {
diff --git a/src/site/asciidoc/users/testing.adoc b/src/site/asciidoc/users/testing.adoc
index 3ca9485..55dde26 100644
--- a/src/site/asciidoc/users/testing.adoc
+++ b/src/site/asciidoc/users/testing.adoc
@@ -40,7 +40,7 @@ The Interface for the Mock Device is
```
public interface MockDevice {
- Pair<PlcResponseCode, BaseDefaultFieldItem> read(String fieldQuery);
+ Pair<PlcResponseCode, PlcValue> read(String fieldQuery);
PlcResponseCode write(String fieldQuery, Object value);
@@ -73,9 +73,9 @@ Here, we pass it an instance of `MockDevice` which could be a simple Implementat
```
MockDevice mockDevice = new MockDevice() {
- Pair<PlcResponseCode, BaseDefaultFieldItem> read(String fieldQuery) {
+ Pair<PlcResponseCode, PlcValue> read(String fieldQuery) {
System.out.println("I got a read to " + fieldQuery);
- return Pair.of(PlcResponseCode.OK, new DefaultStringFieldItem("hello"));
+ return Pair.of(PlcResponseCode.OK, new PlcString("hello"));
}
PlcResponseCode write(String fieldQuery, Object value) {
@@ -102,7 +102,7 @@ PlcMockConnection connection = (PlcMockConnection) driverManager.getConnection("
connection.setDevice(mockDevice);
// Populate the Mock to avoid a NPE
-when(mockDevice).read(anyString()).thenReturn(Pair.of(PlcResponseCode.OK, new DefaultStringFieldItem("hello")));
+when(mockDevice).read(anyString()).thenReturn(Pair.of(PlcResponseCode.OK, new PlcString("hello")));
// Some Demo code that uses the same Driver Manager and either the connection from above
// or at least mock:my-mock-connection as connection string
@@ -128,7 +128,7 @@ PlcDriverManager driverManager = new PlcDriverManager();
PlcMockConnection connection = (PlcMockConnection) driverManager.getConnection("mock:my-mock-connection");
connection.setDevice(mockDevice);
// Populate the Mock to avoid a NPE
-when(mockDevice).read(anyString()).thenReturn(Pair.of(PlcResponseCode.OK, new DefaultStringFieldItem("hello")));
+when(mockDevice).read(anyString()).thenReturn(Pair.of(PlcResponseCode.OK, new PlcString("hello")));
// Some Demo code that uses the same Driver Manager and either the connection from above
// or at least mock:my-mock-connection as connection string
diff --git a/tools/thrift/pom.xml b/tools/thrift/pom.xml
index d3b26ca..96ac3f6 100644
--- a/tools/thrift/pom.xml
+++ b/tools/thrift/pom.xml
@@ -336,4 +336,16 @@
</plugins>
</build>
+ <dependencies>
+ <!-- Make sure Boost is built first -->
+ <dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4x-tools-boost</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <classifier>lib-${os.classifier}</classifier>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
</project>
\ No newline at end of file