You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2021/10/27 11:47:14 UTC
[plc4x] branch feature/mspec-ng updated: fix(plc4j/codgen): fix
build
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch feature/mspec-ng
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/feature/mspec-ng by this push:
new b3ad562 fix(plc4j/codgen): fix build
b3ad562 is described below
commit b3ad5622c4bf061b8ed775f03dcb27919fd2ea9f
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Oct 27 13:46:40 2021 +0200
fix(plc4j/codgen): fix build
---
.../server/s7/protocol/S7Step7ServerAdapter.java | 78 ++++++++++------------
1 file changed, 37 insertions(+), 41 deletions(-)
diff --git a/sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java b/sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java
index b739f57..e5a637d 100644
--- a/sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java
+++ b/sandbox/plc-simulator/src/main/java/org/apache/plc4x/simulator/server/s7/protocol/S7Step7ServerAdapter.java
@@ -26,6 +26,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.nio.ByteOrder;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
import java.util.List;
@@ -63,7 +64,7 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
- if(msg instanceof TPKTPacket) {
+ if (msg instanceof TPKTPacket) {
TPKTPacket packet = (TPKTPacket) msg;
final COTPPacket cotpPacket = packet.getPayload();
switch (state) {
@@ -90,21 +91,20 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
return;
}
}
- if(proposedTpduSize == null) {
+ if (proposedTpduSize == null) {
LOGGER.error("Missing COTP Connection-Request Parameter Tpdu Size");
return;
}
remoteReference = cotpConnectionRequest.getSourceReference();
protocolClass = cotpConnectionRequest.getProtocolClass();
- assert proposedTpduSize != null;
tpduSize = (proposedTpduSize.getSizeInBytes() > maxTpduSize.getSizeInBytes()) ? maxTpduSize : proposedTpduSize;
// Prepare a response and send it back to the remote.
- COTPParameter[] parameters = new COTPParameter[3];
- parameters[0] = new COTPParameterCalledTsap(remoteTsapId);
- parameters[1] = new COTPParameterCallingTsap(localTsapId);
- parameters[2] = new COTPParameterTpduSize(tpduSize);
+ List<COTPParameter> parameters = new ArrayList<>();
+ parameters.add(new COTPParameterCalledTsap(remoteTsapId));
+ parameters.add(new COTPParameterCallingTsap(localTsapId));
+ parameters.add(new COTPParameterTpduSize(tpduSize));
COTPPacketConnectionResponse response = new COTPPacketConnectionResponse(
parameters, null, remoteReference, localReference, protocolClass);
ctx.writeAndFlush(new TPKTPacket(response));
@@ -121,14 +121,14 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
COTPPacketData packetData = (COTPPacketData) cotpPacket;
final short cotpTpduRef = packetData.getTpduRef();
final S7Message payload = packetData.getPayload();
- if(!(payload instanceof S7MessageRequest)) {
+ if (!(payload instanceof S7MessageRequest)) {
LOGGER.error("Expecting S7 Message Request");
return;
}
S7MessageRequest s7MessageRequest = (S7MessageRequest) payload;
final int s7TpduReference = s7MessageRequest.getTpduReference();
final S7Parameter s7Parameter = s7MessageRequest.getParameter();
- if(!(s7Parameter instanceof S7ParameterSetupCommunication)) {
+ if (!(s7Parameter instanceof S7ParameterSetupCommunication)) {
LOGGER.error("Expecting S7 Message Request containing a S7 Setup Communication Parameter");
return;
}
@@ -158,27 +158,27 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
COTPPacketData packetData = (COTPPacketData) cotpPacket;
final short cotpTpduRef = packetData.getTpduRef();
final S7Message payload = packetData.getPayload();
- if(payload instanceof S7MessageUserData) {
+ if (payload instanceof S7MessageUserData) {
S7MessageUserData s7MessageUserData = (S7MessageUserData) payload;
final int s7TpduReference = s7MessageUserData.getTpduReference();
final S7Parameter s7Parameter = s7MessageUserData.getParameter();
- if(s7Parameter instanceof S7ParameterUserData) {
+ if (s7Parameter instanceof S7ParameterUserData) {
S7ParameterUserData userDataParameter = (S7ParameterUserData) s7Parameter;
for (S7ParameterUserDataItem item : userDataParameter.getItems()) {
- if(item instanceof S7ParameterUserDataItemCPUFunctions) {
+ if (item instanceof S7ParameterUserDataItemCPUFunctions) {
S7ParameterUserDataItemCPUFunctions function =
(S7ParameterUserDataItemCPUFunctions) item;
final S7PayloadUserData userDataPayload =
(S7PayloadUserData) s7MessageUserData.getPayload();
for (S7PayloadUserDataItem userDataPayloadItem : userDataPayload.getItems()) {
- if(userDataPayloadItem instanceof S7PayloadUserDataItemCpuFunctionReadSzlRequest) {
+ if (userDataPayloadItem instanceof S7PayloadUserDataItemCpuFunctionReadSzlRequest) {
S7PayloadUserDataItemCpuFunctionReadSzlRequest readSzlRequestPayload =
(S7PayloadUserDataItemCpuFunctionReadSzlRequest) userDataPayloadItem;
final SzlId szlId = readSzlRequestPayload.getSzlId();
// This is a request to list the type of device
- if((szlId.getTypeClass() == SzlModuleTypeClass.CPU) &&
+ if ((szlId.getTypeClass() == SzlModuleTypeClass.CPU) &&
(szlId.getSublistList() == SzlSublist.MODULE_IDENTIFICATION)) {
S7ParameterUserDataItemCPUFunctions readSzlResponseParameter =
@@ -188,24 +188,22 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
(short) 0, (short) 0, 0);
// This is the product number of a S7-1200
- SzlDataTreeItem[] items = new SzlDataTreeItem[1];
- items[0] = new SzlDataTreeItem((short) 0x0001,
- "6ES7 212-1BD30-0XB0 ".getBytes(), 0x2020, 0x0001, 0x2020);
+ List<SzlDataTreeItem> items = new ArrayList<>();
+ items.add(new SzlDataTreeItem((short) 0x0001,
+ "6ES7 212-1BD30-0XB0 ".getBytes(), 0x2020, 0x0001, 0x2020));
S7PayloadUserDataItemCpuFunctionReadSzlResponse readSzlResponsePayload =
new S7PayloadUserDataItemCpuFunctionReadSzlResponse(
DataTransportErrorCode.OK, DataTransportSize.OCTET_STRING, szlId,
readSzlRequestPayload.getSzlIndex(), items);
- S7ParameterUserDataItem[] responseParameterItems =
- new S7ParameterUserDataItem[1];
- responseParameterItems[0] = readSzlResponseParameter;
+ List<S7ParameterUserDataItem> responseParameterItems = new ArrayList<>();
+ responseParameterItems.add(readSzlResponseParameter);
S7ParameterUserData responseParameterUserData =
new S7ParameterUserData(responseParameterItems);
- S7PayloadUserDataItem[] responsePayloadItems =
- new S7PayloadUserDataItem[1];
- responsePayloadItems[0] = readSzlResponsePayload;
+ List<S7PayloadUserDataItem> responsePayloadItems = new ArrayList<>();
+ responsePayloadItems.add(readSzlResponsePayload);
S7PayloadUserData responsePayloadUserData =
new S7PayloadUserData(responsePayloadItems);
@@ -226,39 +224,38 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
s7Parameter.getClass().getName());
}
} else {
- if(cotpPacket.getPayload() instanceof S7MessageRequest) {
+ if (cotpPacket.getPayload() instanceof S7MessageRequest) {
S7MessageRequest request = (S7MessageRequest) cotpPacket.getPayload();
- if(request.getParameter() instanceof S7ParameterReadVarRequest) {
+ if (request.getParameter() instanceof S7ParameterReadVarRequest) {
S7ParameterReadVarRequest readVarRequestParameter =
(S7ParameterReadVarRequest) request.getParameter();
- final S7VarRequestParameterItem[] items = readVarRequestParameter.getItems();
- S7VarPayloadDataItem[] payloadItems = new S7VarPayloadDataItem[items.length];
- for (int i = 0; i < items.length; i++) {
- S7VarRequestParameterItem item = items[i];
- if(item instanceof S7VarRequestParameterItemAddress) {
+ List<S7VarRequestParameterItem> items = readVarRequestParameter.getItems();
+ List<S7VarPayloadDataItem> payloadItems = new ArrayList<>();
+ for (S7VarRequestParameterItem item : items) {
+ if (item instanceof S7VarRequestParameterItemAddress) {
S7VarRequestParameterItemAddress address =
(S7VarRequestParameterItemAddress) item;
final S7Address address1 = address.getAddress();
- if(address1 instanceof S7AddressAny) {
+ if (address1 instanceof S7AddressAny) {
S7AddressAny addressAny = (S7AddressAny) address1;
switch (addressAny.getArea()) {
case DATA_BLOCKS: {
final int dataBlockNumber = addressAny.getDbNumber();
- if(dataBlockNumber != 1) {
+ if (dataBlockNumber != 1) {
// TODO: Return unknown object.
}
final int numberOfElements = addressAny.getNumberOfElements();
- if(numberOfElements != 1) {
+ if (numberOfElements != 1) {
// TODO: Return invalid address.
}
final int byteAddress = addressAny.getByteAddress();
- if(byteAddress != 0) {
+ if (byteAddress != 0) {
// TODO: Return invalid address.
}
final byte bitAddress = addressAny.getBitAddress();
switch (addressAny.getTransportSize()) {
case BOOL:
- payloadItems[i] = new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BIT, new byte[] {1});
+ payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BIT, new byte[]{1}));
break;
case INT:
case UINT: {
@@ -268,7 +265,7 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
byte[] data = new byte[2];
data[1] = (byte) (shortValue & 0xff);
data[0] = (byte) ((shortValue >> 8) & 0xff);
- payloadItems[i] = new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BYTE_WORD_DWORD, data);
+ payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BYTE_WORD_DWORD, data));
break;
}
default: {
@@ -284,20 +281,19 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
addressAny.getNumberOfElements() : addressAny.getTransportSize().getSizeInBytes() * 8;
final BitSet bitSet = toBitSet(context.getDigitalInputs(), ioNumber, numElements);
final byte[] data = Arrays.copyOf(bitSet.toByteArray(), (numElements + 7) / 8);
- payloadItems[i] = new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BYTE_WORD_DWORD, data);
+ payloadItems.add(new S7VarPayloadDataItem(DataTransportErrorCode.OK, DataTransportSize.BYTE_WORD_DWORD, data));
break;
}
}
}
}
}
- S7ParameterReadVarResponse readVarResponseParameter = new S7ParameterReadVarResponse((short) items.length);
+ S7ParameterReadVarResponse readVarResponseParameter = new S7ParameterReadVarResponse((short) items.size());
S7PayloadReadVarResponse readVarResponsePayload = new S7PayloadReadVarResponse(payloadItems);
S7MessageResponseData response = new S7MessageResponseData(request.getTpduReference(),
readVarResponseParameter, readVarResponsePayload, (short) 0x00, (short) 0x00);
ctx.writeAndFlush(new TPKTPacket(new COTPPacketData(null, response, true, cotpTpduRef)));
- }
- else if(request.getParameter() instanceof S7ParameterWriteVarRequest) {
+ } else if (request.getParameter() instanceof S7ParameterWriteVarRequest) {
S7ParameterWriteVarRequest writeVarRequestParameter =
(S7ParameterWriteVarRequest) request.getParameter();
@@ -325,7 +321,7 @@ public class S7Step7ServerAdapter extends ChannelInboundHandlerAdapter {
private BitSet toBitSet(List<Boolean> booleans, int startIndex, int numElements) {
BitSet bitSet = new BitSet(booleans.size());
- for(int i = 0; i < Math.min(booleans.size() - startIndex, numElements); i++) {
+ for (int i = 0; i < Math.min(booleans.size() - startIndex, numElements); i++) {
bitSet.set(i, booleans.get(i + startIndex));
}
return bitSet;