You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jv...@apache.org on 2011/03/25 11:50:46 UTC
svn commit: r1085314 - in
/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus:
./ transport/rtu/ transport/tcp/
Author: jvermillard
Date: Fri Mar 25 10:50:46 2011
New Revision: 1085314
URL: http://svn.apache.org/viewvc?rev=1085314&view=rev
Log:
more javadoc on modbus classes
Modified:
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/ModbusTable.java
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusEncoder.java
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusMessage.java
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusTransport.java
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoder.java
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusEncoder.java
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusMessage.java
mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusTransport.java
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/ModbusTable.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/ModbusTable.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/ModbusTable.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/ModbusTable.java Fri Mar 25 10:50:46 2011
@@ -20,7 +20,7 @@
package org.apache.mina.modbus;
/**
- * A modbus table. This table is a slave and reply with values to the request of the master.
+ * A Modbus table. This table is a slave and reply with values to the request of the master.
*
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusDecoder.java Fri Mar 25 10:50:46 2011
@@ -24,6 +24,7 @@ import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
+import org.apache.mina.filter.codec.ProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolDecoderException;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import org.apache.mina.modbus.ModbusConstants;
@@ -31,6 +32,13 @@ import org.apache.mina.modbus.transport.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * A {@link ProtocolDecoder} implementation decoding Modbus RTRU messages.
+ * Can be used in slave of master mode( {@link RTUModbusDecoder#RTUModbusDecoder(boolean)})
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ * *
+ */
public class RTUModbusDecoder extends CumulativeProtocolDecoder {
private static final Logger LOG = LoggerFactory.getLogger(RTUModbusDecoder.class);
@@ -42,6 +50,9 @@ public class RTUModbusDecoder extends Cu
}
@Override
+ /**
+ * {@inheritDoc}
+ */
protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
in.order(ByteOrder.BIG_ENDIAN);
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusEncoder.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusEncoder.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusEncoder.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusEncoder.java Fri Mar 25 10:50:46 2011
@@ -27,10 +27,19 @@ import org.apache.mina.filter.codec.Prot
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * A {@link ProtocolEncoder} implementation encoding Modbus RTU messages.
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
public class RTUModbusEncoder implements ProtocolEncoder {
private static final Logger LOG = LoggerFactory.getLogger(RTUModbusEncoder.class);
+ /**
+ * {@inheritDoc}
+ */
public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws ProtocolEncoderException {
if (message instanceof RTUModbusMessage) {
IoBuffer buf = ((RTUModbusMessage) message).encode();
@@ -46,6 +55,9 @@ public class RTUModbusEncoder implements
}
}
+ /**
+ * {@inheritDoc}
+ */
public void dispose(IoSession session) throws Exception {
}
}
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusMessage.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusMessage.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusMessage.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusMessage.java Fri Mar 25 10:50:46 2011
@@ -23,9 +23,17 @@ import java.nio.ByteOrder;
import java.security.InvalidParameterException;
import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.modbus.ModbusConstants;
import org.apache.mina.modbus.msg.ModbusMessage;
-
+/**
+ * The RTU Modbus message. It's {@link ModbusMessage} with the extra field used
+ * for the Modbus RTU.
+ * For understanding the different fields of a RTU modbus message you need to refer to
+ * the <a href="http://www.modbus.org">Modbus specification</a>.
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ */
public class RTUModbusMessage implements ModbusMessage {
private int functionCode;
@@ -34,10 +42,23 @@ public class RTUModbusMessage implements
private int device;
+ /**
+ * Create a RTU Modbus message with the specified device identifier and function code from
+ * {@link ModbusConstants}.
+ * @param device the device identifier
+ * @param functioncode the function code {@link ModbusConstants}
+ */
public RTUModbusMessage(int device, int functioncode) {
this(device, functioncode, new byte[] {});
}
+ /**
+ * Create a RTU Modbus message with the specified device identifier, payload and function code from
+ * {@link ModbusConstants}.
+ * @param device the device identifier
+ * @param functioncode the function code {@link ModbusConstants}
+ * @param data the payload
+ */
public RTUModbusMessage(int device, int functioncode, byte[] data) {
this.device = device;
this.functionCode = functioncode;
@@ -72,18 +93,30 @@ public class RTUModbusMessage implements
buffer.order(oldOrder);
}
+ /**
+ * {@inheritDoc}
+ */
public int getFunctionCode() {
return functionCode;
}
+ /**
+ * {@inheritDoc}
+ */
public byte[] getData() {
return data;
}
+ /**
+ * {@inheritDoc}
+ */
public void setData(byte[] data) {
this.data = data;
}
+ /**
+ * {@inheritDoc}
+ */
public int getDevice() {
return device;
}
@@ -104,6 +137,12 @@ public class RTUModbusMessage implements
return buff.flip();
}
+ /**
+ * The RTU message can't be decoded due to a corruption resulting into an incorrect CRC
+ * check.
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
public class CRCException extends Exception {
private static final long serialVersionUID = 1L;
@@ -114,6 +153,9 @@ public class RTUModbusMessage implements
}
+ /**
+ * 16 bits polynomial CRC computation. Check RTU Modbus specification for fancy details.
+ */
private int getCrc(IoBuffer buf, int start, int end) {
int oldPos = buf.position();
@@ -152,6 +194,9 @@ public class RTUModbusMessage implements
return "RTUModbusMessage {dev=" + getDevice() + ",func=" + getFunctionCode() + ",data = " + dataStr + " }";
}
+ /**
+ * {@inheritDoc}
+ */
public void setFunctionCode(int functionCode) {
this.functionCode = functionCode;
}
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusTransport.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusTransport.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusTransport.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/rtu/RTUModbusTransport.java Fri Mar 25 10:50:46 2011
@@ -47,11 +47,17 @@ public class RTUModbusTransport implemen
this.hostname = hostname;
this.port = port;
}
-
+
+ /**
+ * {@inheritDoc}
+ */
public ProtocolDecoder createDecoder(boolean master) {
return new RTUModbusDecoder(master);
}
+ /**
+ * {@inheritDoc}
+ */
public ProtocolEncoder createEncoder() {
return new RTUModbusEncoder();
}
@@ -60,6 +66,9 @@ public class RTUModbusTransport implemen
private IoSession session;
+ /**
+ * {@inheritDoc}
+ */
public void connect(final IoHandler handler) {
// create connection thread
Thread cnxThread = new Thread("ModbusConnection") {
@@ -91,11 +100,17 @@ public class RTUModbusTransport implemen
}
+ /**
+ * {@inheritDoc}
+ */
public ModbusMessage createReplyMessage(ModbusMessage query) {
RTUModbusMessage msg = (RTUModbusMessage) query;
return new RTUModbusMessage(msg.getDevice(), msg.getFunctionCode());
}
-
+
+ /**
+ * {@inheritDoc}
+ */
public ModbusMessage createMessage(int functionCode, int device) {
return new RTUModbusMessage(device, functionCode);
}
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoder.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoder.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoder.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusDecoder.java Fri Mar 25 10:50:46 2011
@@ -24,23 +24,38 @@ import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
+import org.apache.mina.filter.codec.ProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolDecoderException;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
import org.apache.mina.modbus.ModbusConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * A {@link ProtocolDecoder} implementation decoding Modbus TCP messages.
+ * Can be used in slave of master mode( {@link TCPModbusDecoder#TCPModbusDecoder(boolean)})
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
public class TCPModbusDecoder extends CumulativeProtocolDecoder {
private static final Logger LOG = LoggerFactory.getLogger(TCPModbusDecoder.class);
private boolean master;
+ /**
+ * Create the decoder.
+ * @param master <code>true</code> if the decoder if for behaving like a Modbus master (the master is the
+ * device sending queries, the slave is usualy a table only replying to request of the master).
+ */
public TCPModbusDecoder(boolean master) {
this.master = master;
}
@Override
+ /**
+ * {@inheritDoc}
+ */
protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
in.order(ByteOrder.BIG_ENDIAN);
@@ -48,9 +63,7 @@ public class TCPModbusDecoder extends Cu
int startPos = in.position();
boolean isDecoded = false;
- if (LOG.isDebugEnabled()) {
- LOG.debug("doDecode bytes : " + in);
- }
+ LOG.debug("doDecode bytes : {}",in);
if ((in.remaining() < 8)) {
in.position(startPos);
@@ -73,9 +86,8 @@ public class TCPModbusDecoder extends Cu
@SuppressWarnings("unused")
private boolean decodeReply(IoBuffer in, ProtocolDecoderOutput out) throws ProtocolDecoderException {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Decode a reply : " + in);
- }
+ LOG.debug("Decode a reply : {}",in);
+
int startPos = in.position();
in.order(ByteOrder.BIG_ENDIAN);
@@ -109,7 +121,7 @@ public class TCPModbusDecoder extends Cu
}
msg = new TCPModbusMessage(in);
- //decode
+
out.write(msg);
return true;
@@ -139,7 +151,7 @@ public class TCPModbusDecoder extends Cu
}
msg = new TCPModbusMessage(in);
- //decode
+
out.write(msg);
return true;
@@ -166,9 +178,7 @@ public class TCPModbusDecoder extends Cu
@SuppressWarnings("unused")
private boolean decodeQuery(IoBuffer in, ProtocolDecoderOutput out) throws ProtocolDecoderException {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Decode a query : " + in);
- }
+ LOG.debug("Decode a query : {}",in);
int startPos = in.position();
in.order(ByteOrder.BIG_ENDIAN);
@@ -227,7 +237,7 @@ public class TCPModbusDecoder extends Cu
return false;
}
- msg = new TCPModbusMessage(in);//, dataLen + 9);
+ msg = new TCPModbusMessage(in);
if (LOG.isDebugEnabled()) {
LOG.debug("Decoded a Modbus multiple query : " + msg);
}
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusEncoder.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusEncoder.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusEncoder.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusEncoder.java Fri Mar 25 10:50:46 2011
@@ -26,8 +26,17 @@ import org.apache.mina.filter.codec.Prot
import org.apache.mina.filter.codec.ProtocolEncoderException;
import org.apache.mina.filter.codec.ProtocolEncoderOutput;
+/**
+ * A {@link ProtocolEncoder} implementation encoding Modbus TCP messages.
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
public class TCPModbusEncoder implements ProtocolEncoder {
+ /**
+ * {@inheritDoc}
+ */
public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws ProtocolEncoderException {
if (message instanceof TCPModbusMessage) {
IoBuffer buf = ((TCPModbusMessage) message).encode();
@@ -37,7 +46,10 @@ public class TCPModbusEncoder implements
}
}
-
+
+ /**
+ * {@inheritDoc}
+ */
public void dispose(IoSession session) throws Exception {
}
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusMessage.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusMessage.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusMessage.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusMessage.java Fri Mar 25 10:50:46 2011
@@ -22,17 +22,23 @@ package org.apache.mina.modbus.transport
import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.modbus.ModbusConstants;
import org.apache.mina.modbus.msg.ModbusMessage;
+/**
+ * The TCP Modbus message. It's {@link ModbusMessage} with the extra field used
+ * for the Modbus TCP.
+ * For understanding the different fields of a TCP modbus message you need to refer to
+ * the <a href="http://www.modbus.org">Modbus specification</a>.
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
public class TCPModbusMessage implements ModbusMessage {
// modbus variables
private int functionCode;
- public void setFunctionCode(int functionCode) {
- this.functionCode = functionCode;
- }
-
private byte[] data;
// TCP Modbus variables
@@ -42,17 +48,23 @@ public class TCPModbusMessage implements
private int unitId;
- public int getUnitId() {
- return unitId;
- }
-
+ /**
+ * Create a TCP Modbus message with the corresponding transaction identifier, function code
+ * (see : {@link ModbusConstants}).
+ * @param transactionIdentifier the transaction identifier for this message (look at Modbus specifications)
+ * @param functionCode the function code for this message (one of {@link ModbusConstants}).
+ * @param unitId unit identifier (look at Modbus specifications)
+ */
public TCPModbusMessage(int transactionIdentifier, int functionCode, int unitId) {
this.transactionIdentifier = transactionIdentifier;
- // this.protocolIdentifier = protocolIdentifier;
this.functionCode = functionCode;
this.unitId = unitId;
}
+ /**
+ * Create a TCP message from a buffer of bytes.
+ * @param buffer the buffer of bytes with the PDU
+ */
public TCPModbusMessage(IoBuffer buffer) {
ByteOrder oldOrder = buffer.order();
buffer.order(ByteOrder.BIG_ENDIAN);
@@ -69,28 +81,68 @@ public class TCPModbusMessage implements
buffer.order(oldOrder);
}
+ /**
+ * The unit identifier of this message
+ * @return the unit identifier
+ */
+ public int getUnitId() {
+ return unitId;
+ }
+
+ /**
+ * Set the function code for this message (one of {@link ModbusConstants}).
+ */
+ public void setFunctionCode(int functionCode) {
+ this.functionCode = functionCode;
+ }
+
+ /**
+ * Get the payload of this modbus message.
+ */
public byte[] getData() {
return data;
}
+ /**
+ * Get the function code of this message.
+ */
public int getFunctionCode() {
return functionCode;
}
+ /**
+ * Set the payload of this Modbus message.
+ */
public void setData(byte[] data) {
this.data = data;
}
+ /**
+ * Get the transaction identifier of this message.
+ * @return the transaction identifier
+ */
public int getTransactionIdentifier() {
return transactionIdentifier;
}
-
+
+ /**
+ * Get the protocol identifier of this message.
+ * @return the protocol identifier
+ */
public int getProtocolIdentifier() {
return protocolIdentifier;
}
/**
+ * Get the unit id of the device of this message.
+ */
+ public int getDevice() {
+ return unitId;
+ }
+
+ /**
* create a buffer encoding this PDU
+ *
* @return a new pooled ByteBuffer
*/
public IoBuffer encode() {
@@ -121,8 +173,4 @@ public class TCPModbusMessage implements
+ ",unitId=" + getUnitId() + ",func=" + getFunctionCode() + ",data = " + data + " }";
}
- public int getDevice() {
- return unitId;
- }
-
}
\ No newline at end of file
Modified: mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusTransport.java
URL: http://svn.apache.org/viewvc/mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusTransport.java?rev=1085314&r1=1085313&r2=1085314&view=diff
==============================================================================
--- mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusTransport.java (original)
+++ mina/sandbox/jvermillard/mina-modbus/src/main/java/org/apache/mina/modbus/transport/tcp/TCPModbusTransport.java Fri Mar 25 10:50:46 2011
@@ -21,11 +21,13 @@ package org.apache.mina.modbus.transport
import java.io.IOException;
+import java.lang.annotation.Inherited;
import java.net.InetSocketAddress;
import org.apache.mina.core.service.IoHandler;
import org.apache.mina.filter.codec.ProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolEncoder;
+import org.apache.mina.modbus.ModbusSlave;
import org.apache.mina.modbus.msg.ModbusMessage;
import org.apache.mina.modbus.transport.ModbusTransport;
import org.apache.mina.transport.socket.SocketAcceptor;
@@ -33,6 +35,13 @@ import org.apache.mina.transport.socket.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * The TCP Modbus implementation of {@link ModbusTransport}.
+ * Useful for creating TCP Modbus table ( see {@link ModbusSlave}).
+ *
+ * @author <a href="http://mina.apache.org">Apache MINA Project</a>
+ *
+ */
public class TCPModbusTransport implements ModbusTransport {
private int transactionIdentifier = 0;
@@ -41,10 +50,17 @@ public class TCPModbusTransport implemen
private Logger logger = LoggerFactory.getLogger(TCPModbusTransport.class);
+ /**
+ * Create the modbus transport which will bind the specified TCP port.
+ * @param port the TCP port to bind
+ */
public TCPModbusTransport(int port) {
this.port = port;
}
+ /**
+ * {@inheritDoc}
+ */
public void connect(IoHandler handler) {
SocketAcceptor acceptor = new NioSocketAcceptor();
acceptor.setReuseAddress(true);
@@ -56,14 +72,23 @@ public class TCPModbusTransport implemen
}
}
+ /**
+ * {@inheritDoc}
+ */
public ProtocolDecoder createDecoder(boolean master) {
return new TCPModbusDecoder(master);
}
+ /**
+ * {@inheritDoc}
+ */
public ProtocolEncoder createEncoder() {
return new TCPModbusEncoder();
}
+ /**
+ * {@inheritDoc}
+ */
public ModbusMessage createReplyMessage(ModbusMessage query) {
TCPModbusMessage msg = (TCPModbusMessage) query;
TCPModbusMessage reply = new TCPModbusMessage(msg.getTransactionIdentifier(), msg.getFunctionCode(), msg
@@ -71,6 +96,9 @@ public class TCPModbusTransport implemen
return reply;
}
+ /**
+ * {@inheritDoc}
+ */
public ModbusMessage createMessage(int functionCode, int unitId) {
return new TCPModbusMessage(((int) transactionIdentifier++ % Integer.MAX_VALUE), functionCode, unitId);
}