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;