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 2007/05/03 14:44:11 UTC
svn commit: r534826 - in
/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial:
DefaultSerialSessionConfig.java SerialConnector.java SerialSession.java
SerialSessionConfig.java
Author: jvermillard
Date: Thu May 3 05:44:10 2007
New Revision: 534826
URL: http://svn.apache.org/viewvc?view=rev&rev=534826
Log:
Serial communications :
- fixed TODO and FIXME,
- removed useless parameters,
- parametrized port opening timeout,
- removed an hardcoded threshold value
Modified:
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java
mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java
Modified: mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java?view=diff&rev=534826&r1=534825&r2=534826
==============================================================================
--- mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java (original)
+++ mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/DefaultSerialSessionConfig.java Thu May 3 05:44:10 2007
@@ -27,6 +27,9 @@
*/
public class DefaultSerialSessionConfig implements SerialSessionConfig {
+
+ private int timeout = 2000;
+
private int receiveThreshold = -1;
private int inputBufferSize = 8;
@@ -68,11 +71,11 @@
receiveThreshold = bytes;
}
- public int getReceiveTimeout() {
- return receiveTimeout;
+ public int getTimeout() {
+ return timeout;
}
-
- public void setReceiveTimeout(int milliseconds) {
- receiveTimeout = milliseconds;
+
+ public void setTimeout(int timeout) {
+ this.timeout = timeout;
}
}
Modified: mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java?view=diff&rev=534826&r1=534825&r2=534826
==============================================================================
--- mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java (original)
+++ mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialConnector.java Thu May 3 05:44:10 2007
@@ -85,8 +85,8 @@
+ portId.getName());
}
- SerialPort serialPort = initalizePort("Apache MINA",
- 2000, portId, portAddress);
+ SerialPort serialPort = initializePort("Apache MINA",
+ portId, portAddress);
ConnectFuture future = new DefaultConnectFuture();
SerialSession session = new SerialSession(this,
@@ -123,11 +123,13 @@
return SerialSession.serialTransportType;
}
- // FIXME Is user and timeout used somewhere?
- private SerialPort initalizePort(String user, int timeout,
+ private SerialPort initializePort(String user,
CommPortIdentifier portId, SerialAddress portAddress)
throws UnsupportedCommOperationException, PortInUseException {
- SerialPort serialPort = (SerialPort) portId.open("Apache MINA", 2000); // TODO: need a parameter for millisec. timeout
+
+ SerialSessionConfig config = (SerialSessionConfig) getSessionConfig();
+
+ SerialPort serialPort = (SerialPort) portId.open(user, config.getTimeout());
serialPort.setSerialPortParams(portAddress.getBauds(), portAddress
.getDataBitsForRXTX(), portAddress.getStopBitsForRXTX(),
@@ -136,7 +138,6 @@
serialPort.setFlowControlMode(portAddress.getFLowControlForRXTX());
serialPort.notifyOnDataAvailable(true);
- SerialSessionConfig config = (SerialSessionConfig) getSessionConfig();
if (config.isLowLantecy())
serialPort.setLowLatency();
@@ -148,13 +149,6 @@
} else
serialPort.disableReceiveThreshold();
- if (config.getReceiveTimeout() >= 0) {
- serialPort.enableReceiveTimeout(config.getReceiveTimeout());
- } else
- serialPort.disableReceiveTimeout();
-
- serialPort.enableReceiveThreshold(8);
-
return serialPort;
}
-}
\ No newline at end of file
+}
Modified: mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java?view=diff&rev=534826&r1=534825&r2=534826
==============================================================================
--- mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java (original)
+++ mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSession.java Thu May 3 05:44:10 2007
@@ -55,17 +55,15 @@
public class SerialSession extends BaseIoSession implements
SerialPortEventListener {
- // TODO make immutable fields 'final'.
-
private SerialSessionConfig config;
- private IoHandler ioHandler;
+ private final IoHandler ioHandler;
- private IoFilterChain filterChain;
+ private final IoFilterChain filterChain;
- private IoService service;
+ private final IoService service;
- private SerialAddress address;
+ private final SerialAddress address;
private final Queue<WriteRequest> writeRequestQueue;
@@ -73,9 +71,9 @@
private OutputStream outputStream;
- private SerialPort port;
+ private final SerialPort port;
- private Logger log;
+ private final Logger log;
public static final TransportType serialTransportType = new DefaultTransportType(
"serial communication", false, SerialAddress.class,
@@ -261,8 +259,7 @@
if (readBytes > 0) {
increaseReadBytes(readBytes);
- // TODO : check if it's the good allocation way
- ByteBuffer buf = ByteBuffer.allocate(readBytes);
+ ByteBuffer buf = ByteBuffer.wrap(data,0,readBytes);
buf.put(data, 0, readBytes);
buf.flip();
getFilterChain().fireMessageReceived(
@@ -306,4 +303,4 @@
((SerialConnector) getService()).getListeners().fireSessionDestroyed(
this);
}
-}
\ No newline at end of file
+}
Modified: mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java?view=diff&rev=534826&r1=534825&r2=534826
==============================================================================
--- mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java (original)
+++ mina/trunk/transport-serial/src/main/java/org/apache/mina/transport/serial/SerialSessionConfig.java Thu May 3 05:44:10 2007
@@ -31,6 +31,18 @@
public interface SerialSessionConfig extends IoSessionConfig {
/**
+ * Gets the timeout for port opening in milliseconds.
+ * @return timeout for port opening in milliseconds
+ */
+ int getTimeout();
+
+ /**
+ * Sets the timeout for opening the port. Value in milliseconds.
+ * @param timeout the timeout value in millseconds
+ */
+ public void setTimeout(int timeout);
+
+ /**
* Gets the input buffer size. Note that this method is advisory and the underlying OS
* may choose not to report correct values for the buffer size.
* @return input buffer size in bytes
@@ -57,26 +69,17 @@
void setLowLatency(boolean lowLatency);
/**
- * TODO : to test if it's usefull for MINA
- * @return
+ * The current receive threshold (-1 if not enabled). Give the value of the current buffer
+ * needed for generate a new frame.
+ * @return the receive thresold in bytes or -1 if disabled
*/
int getReceiveThreshold();
/**
- * TODO : to test if it's usefull for MINA
- * @param bytes
+ * Set the receive threshold in byte (set it to -1 for disable). The serial port will try to
+ * provide frame of the given minimal byte count. Be carefull some devices doesn't support it.
+ * @param bytes minimal amount of byte before producing a new frame, or -1 if disabled
*/
void setReceiveThreshold(int bytes);
- /**
- * TODO : to test if it's usefull for MINA
- * @param bytes
- */
- int getReceiveTimeout();
-
- /**
- * TODO : to test if it's usefull for MINA
- * @param bytes
- */
- void setReceiveTimeout(int milliseconds);
}