This is an automated email from the ASF dual-hosted git repository. sruehl pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit ea0b3b9d6b36f9f10e1d2cfd7a0dabebf2ffdb4a Author: Sebastian Rühl <sru...@apache.org> AuthorDate: Thu Mar 8 16:27:31 2018 +0100 added serial connection --- plc4j/protocols/ads/pom.xml | 5 + .../org/apache/plc4x/java/ads/ADSPlcDriver.java | 4 +- .../ads/connection/ADSAbstractPlcConnection.java | 100 +++++++++++++++ .../java/ads/connection/ADSPlcConnection.java | 134 --------------------- .../ads/connection/ADSSerialPlcConnection.java | 56 +++++++++ .../java/ads/connection/ADSTcpPlcConnection.java | 71 +++++++++++ .../apache/plc4x/java/ads/ADSPlcDriverTest.java | 8 +- ...ionTests.java => ADSTcpPlcConnectionTests.java} | 16 +-- .../java/base/connection/SerialChannelFactory.java | 8 +- 9 files changed, 248 insertions(+), 154 deletions(-) diff --git a/plc4j/protocols/ads/pom.xml b/plc4j/protocols/ads/pom.xml index fbeacab..ae5e6ad 100644 --- a/plc4j/protocols/ads/pom.xml +++ b/plc4j/protocols/ads/pom.xml @@ -51,6 +51,11 @@ </dependency> <dependency> <groupId>org.apache.plc4x</groupId> + <artifactId>plc4j-protocol-driver-base-serial</artifactId> + <version>0.0.1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.plc4x</groupId> <artifactId>plc4j-core</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>runtime</scope> diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java index 9df2f3f..7950c37 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/ADSPlcDriver.java @@ -21,7 +21,7 @@ package org.apache.plc4x.java.ads; import org.apache.commons.lang3.StringUtils; import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; import org.apache.plc4x.java.ads.api.generic.types.AMSPort; -import org.apache.plc4x.java.ads.connection.ADSPlcConnection; +import org.apache.plc4x.java.ads.connection.ADSTcpPlcConnection; import org.apache.plc4x.java.api.PlcDriver; import org.apache.plc4x.java.api.authentication.PlcAuthentication; import org.apache.plc4x.java.api.connection.PlcConnection; @@ -73,7 +73,7 @@ public class ADSPlcDriver implements PlcDriver { String sourceAmsPortString = matcher.group("sourceAmsPort"); AMSPort sourceAmsPort = StringUtils.isNotBlank(sourceAmsPortString) ? AMSPort.of(sourceAmsPortString) : null; try { - return new ADSPlcConnection(InetAddress.getByName(host), port, targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort); + return new ADSTcpPlcConnection(InetAddress.getByName(host), port, targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort); } catch (UnknownHostException e) { throw new PlcConnectionException(e); } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSAbstractPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSAbstractPlcConnection.java new file mode 100644 index 0000000..ca60188 --- /dev/null +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSAbstractPlcConnection.java @@ -0,0 +1,100 @@ +/* + 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.ads.connection; + +import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; +import org.apache.plc4x.java.ads.api.generic.types.AMSPort; +import org.apache.plc4x.java.ads.model.ADSAddress; +import org.apache.plc4x.java.api.connection.PlcReader; +import org.apache.plc4x.java.api.connection.PlcWriter; +import org.apache.plc4x.java.api.exceptions.PlcException; +import org.apache.plc4x.java.api.messages.*; +import org.apache.plc4x.java.api.model.Address; +import org.apache.plc4x.java.base.connection.AbstractPlcConnection; +import org.apache.plc4x.java.base.connection.ChannelFactory; + +import java.util.concurrent.CompletableFuture; + +public abstract class ADSAbstractPlcConnection extends AbstractPlcConnection implements PlcReader, PlcWriter { + + protected final AMSNetId targetAmsNetId; + + protected final AMSPort targetAmsPort; + + protected final AMSNetId sourceAmsNetId; + + protected final AMSPort sourceAmsPort; + + protected ADSAbstractPlcConnection(ChannelFactory channelFactory, AMSNetId targetAmsNetId, AMSPort targetAmsPort) { + this(channelFactory, targetAmsNetId, targetAmsPort, generateAMSNetId(), generateAMSPort()); + } + + protected ADSAbstractPlcConnection(ChannelFactory channelFactory, AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort) { + super(channelFactory); + this.targetAmsNetId = targetAmsNetId; + this.targetAmsPort = targetAmsPort; + this.sourceAmsNetId = sourceAmsNetId; + this.sourceAmsPort = sourceAmsPort; + } + + public AMSNetId getTargetAmsNetId() { + return targetAmsNetId; + } + + public AMSPort getTargetAmsPort() { + return targetAmsPort; + } + + public AMSNetId getSourceAmsNetId() { + return sourceAmsNetId; + } + + public AMSPort getSourceAmsPort() { + return sourceAmsPort; + } + + + @Override + public Address parseAddress(String addressString) throws PlcException { + return ADSAddress.of(addressString); + } + + @Override + public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) { + CompletableFuture<PlcReadResponse> readFuture = new CompletableFuture<>(); + channel.writeAndFlush(new PlcRequestContainer<>(readRequest, readFuture)); + return readFuture; + } + + @Override + public CompletableFuture<PlcWriteResponse> write(PlcWriteRequest writeRequest) { + CompletableFuture<PlcWriteResponse> writeFuture = new CompletableFuture<>(); + channel.writeAndFlush(new PlcRequestContainer<>(writeRequest, writeFuture)); + return writeFuture; + } + + protected static AMSNetId generateAMSNetId() { + return AMSNetId.of("0.0.0.0.0.0"); + } + + protected static AMSPort generateAMSPort() { + return AMSPort.of(0); + } + +} diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSPlcConnection.java deleted file mode 100644 index 2186b2b..0000000 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSPlcConnection.java +++ /dev/null @@ -1,134 +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.ads.connection; - -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelInitializer; -import io.netty.channel.ChannelPipeline; -import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; -import org.apache.plc4x.java.ads.api.generic.types.AMSPort; -import org.apache.plc4x.java.ads.model.ADSAddress; -import org.apache.plc4x.java.ads.protocol.ADS2TcpProtocol; -import org.apache.plc4x.java.ads.protocol.Plc4X2ADSProtocol; -import org.apache.plc4x.java.api.connection.PlcReader; -import org.apache.plc4x.java.api.connection.PlcWriter; -import org.apache.plc4x.java.api.exceptions.PlcException; -import org.apache.plc4x.java.api.messages.*; -import org.apache.plc4x.java.api.model.Address; -import org.apache.plc4x.java.base.connection.AbstractPlcConnection; -import org.apache.plc4x.java.base.connection.TcpSocketChannelFactory; - -import java.net.InetAddress; -import java.util.concurrent.CompletableFuture; - -public class ADSPlcConnection extends AbstractPlcConnection implements PlcReader, PlcWriter { - - private static final int TCP_PORT = 48898; - - private final AMSNetId targetAmsNetId; - - private final AMSPort targetAmsPort; - - private final AMSNetId sourceAmsNetId; - - private final AMSPort sourceAmsPort; - - public ADSPlcConnection(InetAddress address, AMSNetId targetAmsNetId, AMSPort targetAmsPort) { - this(address, targetAmsNetId, targetAmsPort, generateAMSNetId(), generateAMSPort()); - } - - public ADSPlcConnection(InetAddress address, Integer port, AMSNetId targetAmsNetId, AMSPort targetAmsPort) { - this(address, port, targetAmsNetId, targetAmsPort, generateAMSNetId(), generateAMSPort()); - } - - - private ADSPlcConnection(InetAddress address, AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort) { - this(address, null, targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort); - } - - public ADSPlcConnection(InetAddress address, Integer port, AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort) { - super(new TcpSocketChannelFactory(address, port != null ? port : TCP_PORT)); - this.targetAmsNetId = targetAmsNetId; - this.targetAmsPort = targetAmsPort; - this.sourceAmsNetId = sourceAmsNetId; - this.sourceAmsPort = sourceAmsPort; - } - - public AMSNetId getTargetAmsNetId() { - return targetAmsNetId; - } - - public AMSPort getTargetAmsPort() { - return targetAmsPort; - } - - public AMSNetId getSourceAmsNetId() { - return sourceAmsNetId; - } - - public AMSPort getSourceAmsPort() { - return sourceAmsPort; - } - - @Override - protected ChannelHandler getChannelHandler(CompletableFuture<Void> sessionSetupCompleteFuture) { - return new ChannelInitializer() { - @Override - protected void initChannel(Channel channel) { - // Build the protocol stack for communicating with the ads protocol. - ChannelPipeline pipeline = channel.pipeline(); - pipeline.addLast(new Plc4X2ADSProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort)); - pipeline.addLast(new ADS2TcpProtocol()); - } - }; - } - - @Override - public Address parseAddress(String addressString) throws PlcException { - return ADSAddress.of(addressString); - } - - @Override - public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) { - CompletableFuture<PlcReadResponse> readFuture = new CompletableFuture<>(); - PlcRequestContainer<PlcReadRequest, PlcReadResponse> container = - new PlcRequestContainer<>(readRequest, readFuture); - channel.writeAndFlush(container); - return readFuture; - } - - @Override - public CompletableFuture<PlcWriteResponse> write(PlcWriteRequest writeRequest) { - CompletableFuture<PlcWriteResponse> writeFuture = new CompletableFuture<>(); - PlcRequestContainer<PlcWriteRequest, PlcWriteResponse> container = - new PlcRequestContainer<>(writeRequest, writeFuture); - channel.writeAndFlush(container); - return writeFuture; - } - - private static AMSNetId generateAMSNetId() { - return AMSNetId.of("0.0.0.0.0.0"); - } - - private static AMSPort generateAMSPort() { - return AMSPort.of(TCP_PORT); - } - -} diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSSerialPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSSerialPlcConnection.java new file mode 100644 index 0000000..80b282a --- /dev/null +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSSerialPlcConnection.java @@ -0,0 +1,56 @@ +/* + 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.ads.connection; + +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelPipeline; +import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; +import org.apache.plc4x.java.ads.api.generic.types.AMSPort; +import org.apache.plc4x.java.ads.protocol.ADS2SerialProtocol; +import org.apache.plc4x.java.ads.protocol.Plc4X2ADSProtocol; +import org.apache.plc4x.java.base.connection.SerialChannelFactory; + +import java.util.concurrent.CompletableFuture; + +public class ADSSerialPlcConnection extends ADSAbstractPlcConnection { + + public ADSSerialPlcConnection(String serialPort, AMSNetId targetAmsNetId, AMSPort targetAmsPort) { + this(serialPort, targetAmsNetId, targetAmsPort, generateAMSNetId(), generateAMSPort()); + } + + public ADSSerialPlcConnection(String serialPort, AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort) { + super(new SerialChannelFactory(serialPort), targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort); + } + + @Override + protected ChannelHandler getChannelHandler(CompletableFuture<Void> sessionSetupCompleteFuture) { + return new ChannelInitializer() { + @Override + protected void initChannel(Channel channel) { + // Build the protocol stack for communicating with the ads protocol. + ChannelPipeline pipeline = channel.pipeline(); + pipeline.addLast(new Plc4X2ADSProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort)); + pipeline.addLast(new ADS2SerialProtocol()); + } + }; + } + +} diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSTcpPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSTcpPlcConnection.java new file mode 100644 index 0000000..3c4f2e7 --- /dev/null +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/ADSTcpPlcConnection.java @@ -0,0 +1,71 @@ +/* +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.ads.connection; + +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelInitializer; +import io.netty.channel.ChannelPipeline; +import org.apache.plc4x.java.ads.api.generic.types.AMSNetId; +import org.apache.plc4x.java.ads.api.generic.types.AMSPort; +import org.apache.plc4x.java.ads.protocol.ADS2TcpProtocol; +import org.apache.plc4x.java.ads.protocol.Plc4X2ADSProtocol; +import org.apache.plc4x.java.base.connection.TcpSocketChannelFactory; + +import java.net.InetAddress; +import java.util.concurrent.CompletableFuture; + +public class ADSTcpPlcConnection extends ADSAbstractPlcConnection { + + private static final int TCP_PORT = 48898; + + public ADSTcpPlcConnection(InetAddress address, AMSNetId targetAmsNetId, AMSPort targetAmsPort) { + this(address, targetAmsNetId, targetAmsPort, generateAMSNetId(), generateAMSPort()); + } + + public ADSTcpPlcConnection(InetAddress address, Integer port, AMSNetId targetAmsNetId, AMSPort targetAmsPort) { + this(address, port, targetAmsNetId, targetAmsPort, generateAMSNetId(), generateAMSPort()); + } + + public ADSTcpPlcConnection(InetAddress address, AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort) { + this(address, null, targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort); + } + + public ADSTcpPlcConnection(InetAddress address, Integer port, AMSNetId targetAmsNetId, AMSPort targetAmsPort, AMSNetId sourceAmsNetId, AMSPort sourceAmsPort) { + super(new TcpSocketChannelFactory(address, port != null ? port : TCP_PORT), targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort); + } + + @Override + protected ChannelHandler getChannelHandler(CompletableFuture<Void> sessionSetupCompleteFuture) { + return new ChannelInitializer() { + @Override + protected void initChannel(Channel channel) { + // Build the protocol stack for communicating with the ads protocol. + ChannelPipeline pipeline = channel.pipeline(); + pipeline.addLast(new Plc4X2ADSProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort)); + pipeline.addLast(new ADS2TcpProtocol()); + } + }; + } + + protected static AMSPort generateAMSPort() { + return AMSPort.of(TCP_PORT); + } + +} diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ADSPlcDriverTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ADSPlcDriverTest.java index 2d5040d..8d010f0 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ADSPlcDriverTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ADSPlcDriverTest.java @@ -19,9 +19,8 @@ under the License. package org.apache.plc4x.java.ads; -import org.apache.commons.lang3.RandomStringUtils; import org.apache.plc4x.java.PlcDriverManager; -import org.apache.plc4x.java.ads.connection.ADSPlcConnection; +import org.apache.plc4x.java.ads.connection.ADSTcpPlcConnection; import org.apache.plc4x.java.ads.util.TcpHexDumper; import org.apache.plc4x.java.api.authentication.PlcUsernamePasswordAuthentication; import org.apache.plc4x.java.api.exceptions.PlcConnectionException; @@ -29,9 +28,6 @@ import org.apache.plc4x.java.api.exceptions.PlcException; import org.junit.Rule; import org.junit.Test; -import java.net.UnknownHostException; - -import static org.apache.plc4x.java.ads.util.Junit5Backport.assertThrows; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; @@ -43,7 +39,7 @@ public class ADSPlcDriverTest { @Test public void getConnection() throws Exception { - ADSPlcConnection adsConnection = (ADSPlcConnection) + ADSTcpPlcConnection adsConnection = (ADSTcpPlcConnection) new PlcDriverManager().getConnection("ads://localhost:" + tcpHexDumper.getPort() + "/0.0.0.0.0.0:13"); assertEquals(adsConnection.getTargetAmsNetId().toString(), "0.0.0.0.0.0"); assertEquals(adsConnection.getTargetAmsPort().toString(), "13"); diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/ADSPlcConnectionTests.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/ADSTcpPlcConnectionTests.java similarity index 76% rename from plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/ADSPlcConnectionTests.java rename to plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/ADSTcpPlcConnectionTests.java index c29008b..6833921 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/ADSPlcConnectionTests.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/ADSTcpPlcConnectionTests.java @@ -30,30 +30,30 @@ import java.net.InetAddress; import static org.junit.Assert.*; -public class ADSPlcConnectionTests { +public class ADSTcpPlcConnectionTests { - private ADSPlcConnection adsPlcConnection; + private ADSTcpPlcConnection adsTcpPlcConnection; @Before public void setUp() throws Exception { - adsPlcConnection = new ADSPlcConnection(InetAddress.getByName("localhost"), AMSNetId.of("0.0.0.0.0.0"), AMSPort.of(13)); + adsTcpPlcConnection = new ADSTcpPlcConnection(InetAddress.getByName("localhost"), AMSNetId.of("0.0.0.0.0.0"), AMSPort.of(13)); } @After public void tearDown() { - adsPlcConnection = null; + adsTcpPlcConnection = null; } @Test public void initialState() { - assertEquals(adsPlcConnection.getTargetAmsNetId().toString(), "0.0.0.0.0.0"); - assertEquals(adsPlcConnection.getTargetAmsPort().toString(), "13"); + assertEquals(adsTcpPlcConnection.getTargetAmsNetId().toString(), "0.0.0.0.0.0"); + assertEquals(adsTcpPlcConnection.getTargetAmsPort().toString(), "13"); } @Test public void emptyParseAddress() throws Exception { try { - adsPlcConnection.parseAddress(""); + adsTcpPlcConnection.parseAddress(""); } catch (IllegalArgumentException exception) { assertTrue("Unexpected exception", exception.getMessage().startsWith("address doesn't match ")); } @@ -62,7 +62,7 @@ public class ADSPlcConnectionTests { @Test public void parseAddress() throws Exception { try { - ADSAddress address = (ADSAddress) adsPlcConnection.parseAddress("1/1"); + ADSAddress address = (ADSAddress) adsTcpPlcConnection.parseAddress("1/1"); assertEquals(address.getIndexGroup(), 1); assertEquals(address.getIndexOffset(), 1); } catch (IllegalArgumentException exception) { diff --git a/plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/base/connection/SerialChannelFactory.java b/plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/base/connection/SerialChannelFactory.java index 5f0c621..0d9941f 100644 --- a/plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/base/connection/SerialChannelFactory.java +++ b/plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/base/connection/SerialChannelFactory.java @@ -30,16 +30,16 @@ import org.apache.plc4x.java.api.exceptions.PlcConnectionException; public class SerialChannelFactory implements ChannelFactory { - private final String port; + private final String serialPort; - public SerialChannelFactory(String port) { - this.port = port; + public SerialChannelFactory(String serialPort) { + this.serialPort = serialPort; } @Override public Channel createChannel(ChannelHandler channelHandler) throws PlcConnectionException { - JSerialCommDeviceAddress address = new JSerialCommDeviceAddress(port); + JSerialCommDeviceAddress address = new JSerialCommDeviceAddress(serialPort); try { Bootstrap bootstrap = new Bootstrap(); -- To stop receiving notification emails like this one, please contact sru...@apache.org.