Package com.metratec.lib.connection
Class Rs232Connection
- java.lang.Object
-
- com.metratec.lib.connection.ICommConnection
-
- com.metratec.lib.connection.SerialConnection
-
- com.metratec.lib.connection.Rs232Connection
-
public class Rs232Connection extends SerialConnection
A connection to a rs232 device- Author:
- man
-
-
Field Summary
-
Fields inherited from class com.metratec.lib.connection.SerialConnection
DATABITS_5, DATABITS_6, DATABITS_7, DATABITS_8, FLOWCONTROL_NONE, FLOWCONTROL_RTSCTS_IN, FLOWCONTROL_RTSCTS_OUT, FLOWCONTROL_XONXOFF_IN, FLOWCONTROL_XONXOFF_OUT, PARITY_EVEN, PARITY_MARK, PARITY_NONE, PARITY_ODD, PARITY_SPACE, STOPBITS_1, STOPBITS_1_5, STOPBITS_2
-
Fields inherited from class com.metratec.lib.connection.ICommConnection
CONNECTION_LOST, DEVICE_IN_USE, ETHERNET_TIMEOUT, ETHERNET_UNKNOWN_HOST, NO_DEVICES_FOUND, NO_LIBRARY_FOUND, NOT_AVAILABLE, NOT_INITIALISED, RECV_TIMEOUT, SERIAL_NO_ACCESS, SERIAL_NOT_INITIALISED, SERIAL_PARAMETER_NOT_SET, SERIAL_PORT_NOT_EXIST, SET_CONFIGURATION, UNHANDLED_ERROR, USB_SET_BAUDRATE, USB_SET_DATA_CHARACTERISTICS, USB_SET_FLOWCONTROL, USB_SET_TIMEOUTS, USER_ERRORCODE_01, USER_ERRORCODE_02, USER_ERRORCODE_03, USER_ERRORCODE_04, USER_ERRORCODE_05, WRONG_PARAMETER
-
-
Constructor Summary
Constructors Constructor Description Rs232Connection(java.lang.String portName, int baudrate, int dataBit, int stopBit, int parity, int flowControl)
Construct a new RS232Connection object, with the given parameters
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
connect()
This method opens a connection.int
dataAvailable()
void
disconnect()
Closes the communication interfaceint
getConnectionTimeout()
java.util.Hashtable<java.lang.String,java.lang.Object>
getInfo()
Gets Device Informationsjava.io.InputStream
getInputStream()
java.io.OutputStream
getOutputStream()
java.lang.String
getPortName()
int
getRecvTimeout()
gnu.io.SerialPort
getSerialPort()
static java.lang.String[]
getSerialPorts()
get the available Serial Portsboolean
isConnected()
java.lang.StringBuilder
receive(int... terminators)
Receives data from the connected device until one of the terminator signs is found.int
recv()
Receives a single byte.void
recv(byte[] b, int off, int len)
Receives until buffer is filled or timeout occurrs.void
send(byte[] senddata)
Sends data to the connected devicevoid
setConnectionTimeout(int time)
Sets the waiting time for the connectionvoid
setPortName(java.lang.String portName)
Sets the used serial portvoid
setRecvTimeout(int timeout)
set the receive timeout for read data, if the timeout expires an CommConnectionException is raised with errorcode RECV_TIMEOUT, the connection is still validvoid
setSettings(java.util.Hashtable<java.lang.String,java.lang.String> settings)
Sets connections settingsjava.lang.String
toString()
-
Methods inherited from class com.metratec.lib.connection.SerialConnection
getBaudrate, getDataBit, getFlowControl, getParity, getStopBit, setBaudrate, setDataBit, setFlowControl, setParity, setStopBit
-
Methods inherited from class com.metratec.lib.connection.ICommConnection
recv, recv, send
-
-
-
-
Constructor Detail
-
Rs232Connection
public Rs232Connection(java.lang.String portName, int baudrate, int dataBit, int stopBit, int parity, int flowControl)
Construct a new RS232Connection object, with the given parameters- Parameters:
portName
- Name of the used ports (COM1,COM2, /dev/ttyS0, /dev/ttyS1, ...), can read with thegetPortName()
method.baudrate
- baud rate of the connected device, can read with theSerialConnection.getBaudrate()
method.dataBit
- Number of data bits, can read with theSerialConnection.getDataBit()
method.stopBit
- Value of StopBits, can read with theSerialConnection.getStopBit()
method. A value larger 2 means 1.5 stopbits.parity
- Parity-Bit (0 for no, 1 for ODD, 2 for EVEN, 3 for MARK, 4 for SPACE), can read with theSerialConnection.getParity()
method.flowControl
- Flow Control (0 for no, ..), can read with theSerialConnection.getFlowControl()
method.
-
-
Method Detail
-
getSerialPorts
public static java.lang.String[] getSerialPorts() throws CommConnectionException
get the available Serial Ports- Returns:
- String array with available ports
- Throws:
CommConnectionException
- possible Errorcodes:- NO_LIBRARY_FOUND if no rxtx libary found
-
connect
public void connect() throws CommConnectionException
Description copied from class:ICommConnection
This method opens a connection. Parameters are passed through the constructor- Specified by:
connect
in classICommConnection
- Throws:
CommConnectionException
- possible Errorcodes:- for TCP Connection:
- ETHERNET_UNKNOWN_HOST
- ETHERNET_TIMEOUT
- WRONG_PARAMETER
- for USB Connection:
- DEVICE_IN_USE
- NO_LIBRARY_FOUND
- NO_DEVICES_FOUND
- USB_SET_BAUDRATE
- USB_SET_DATA_CHARACTERISTICS
- USB_SET_FLOWCONTROL
- USB_SET_TIMEOUTS
- for RS232 Connection:
- NO_LIBRARY_FOUND
- SERIAL_PORT_NOT_EXIST
- SERIAL_PARAMETER_NOT_SET
- DEVICE_IN_USE
- SERIAL_NO_ACCESS
- SERIAL_NO_INITIALISE
- for TCP Connection:
-
disconnect
public void disconnect() throws CommConnectionException
Description copied from class:ICommConnection
Closes the communication interface- Specified by:
disconnect
in classICommConnection
- Throws:
CommConnectionException
- possible Errorcodes:- for TCP Connection:
- UNHANDLED_ERROR
- for USB Connection:
- UNHANDLED_ERROR
- for TCP Connection:
-
getPortName
public java.lang.String getPortName()
- Returns:
- the Name of the used serial port
-
setPortName
public void setPortName(java.lang.String portName)
Sets the used serial port- Parameters:
portName
- Name of the serial port
-
getInputStream
public java.io.InputStream getInputStream()
- Specified by:
getInputStream
in classICommConnection
- Returns:
- the
InputStream
of this connection
-
getOutputStream
public java.io.OutputStream getOutputStream()
- Specified by:
getOutputStream
in classICommConnection
- Returns:
- the
OutputStream
of this connection
-
getSerialPort
public gnu.io.SerialPort getSerialPort()
- Returns:
- the
SerialPort
-
isConnected
public boolean isConnected()
- Specified by:
isConnected
in classICommConnection
- Returns:
- true if connected else false
-
recv
public int recv() throws CommConnectionException
Description copied from class:ICommConnection
Receives a single byte.- Specified by:
recv
in classICommConnection
- Returns:
- byte or -1 if no Data available (timeout)
- Throws:
CommConnectionException
- possible Errorcodes:- for TCP Connection:
- CONNECTION_LOST
- UNHANDLED_ERROR
- NOT_INITIALISE
- for USB Connection:
- CONNECTION_LOST
- UNHANDLED_ERROR
- NOT_INITIALISE
- for RS232 Connection:
- CONNECTION_LOST
- UNHANDLED_ERROR
- NOT_INITIALISE
- for TCP Connection:
-
send
public void send(byte[] senddata) throws CommConnectionException
Description copied from class:ICommConnection
Sends data to the connected device- Specified by:
send
in classICommConnection
- Parameters:
senddata
- data/command send to the connected device- Throws:
CommConnectionException
- possible Errorcodes:- for TCP Connection:
- WRONG_PARAMETER
- UNHANDLED_ERROR
- NOT_INITIALISE
- for USB Connection:
- WRONG_PARAMETER
- UNHANDLED_ERROR
- NOT_INITIALISE
- for RS232 Connection:
- WRONG_PARAMETER
- CONNECTION_LOST
- UNHANDLED_ERROR
- NOT_INITIALISE
- for TCP Connection:
-
dataAvailable
public int dataAvailable() throws CommConnectionException
- Specified by:
dataAvailable
in classICommConnection
- Returns:
- number of available signs
- Throws:
CommConnectionException
- possible Errorcodes:- for all connections
- CONNECTION_LOST
- NOT_INITIALISE
- for all connections
-
getInfo
public java.util.Hashtable<java.lang.String,java.lang.Object> getInfo()
Description copied from class:ICommConnection
Gets Device Informations- Specified by:
getInfo
in classICommConnection
- Returns:
- Hashtable with the information
-
setSettings
public void setSettings(java.util.Hashtable<java.lang.String,java.lang.String> settings)
Description copied from class:ICommConnection
Sets connections settings- Specified by:
setSettings
in classICommConnection
- Parameters:
settings
- Hashtable with the special settings
-
getRecvTimeout
public int getRecvTimeout()
- Specified by:
getRecvTimeout
in classICommConnection
- Returns:
- the receive timeout
-
setRecvTimeout
public void setRecvTimeout(int timeout) throws CommConnectionException
Description copied from class:ICommConnection
set the receive timeout for read data, if the timeout expires an CommConnectionException is raised with errorcode RECV_TIMEOUT, the connection is still valid- Specified by:
setRecvTimeout
in classICommConnection
- Parameters:
timeout
- time in milliseconds- Throws:
CommConnectionException
- possible Errorcodes:- for all connections
- SET_CONFIGURATION
- for all connections
-
setConnectionTimeout
public void setConnectionTimeout(int time)
Description copied from class:ICommConnection
Sets the waiting time for the connection- Specified by:
setConnectionTimeout
in classICommConnection
- Parameters:
time
- connection timeout
-
getConnectionTimeout
public int getConnectionTimeout()
- Specified by:
getConnectionTimeout
in classICommConnection
- Returns:
- the waiting time for the connection
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
recv
public void recv(byte[] b, int off, int len) throws CommConnectionException
Description copied from class:ICommConnection
Receives until buffer is filled or timeout occurrs.- Overrides:
recv
in classICommConnection
- Parameters:
b
- Byte array to filloff
- Offset into array (it is filled beginning with the offset)len
- Number of bytes to read.- Throws:
CommConnectionException
- possible Errorcodes:- for TCP Connection:
- CONNECTION_LOST
- RECV_TIMEOUT
- UNHANDLED_ERROR
- NOT_INITIALISE
- for USB Connection:
- CONNECTION_LOST
- RECV_TIMEOUT
- UNHANDLED_ERROR
- NOT_INITIALISE
- for RS232 Connection:
- CONNECTION_LOST
- RECV_TIMEOUT
- UNHANDLED_ERROR
- NOT_INITIALISE
- for TCP Connection:
-
receive
public java.lang.StringBuilder receive(int... terminators) throws CommConnectionException
Description copied from class:ICommConnection
Receives data from the connected device until one of the terminator signs is found. The result is returned as a StringBuilder for performance reasons.- Overrides:
receive
in classICommConnection
- Parameters:
terminators
- A list of terminator signs. Note that this may be a list of parameters or an array.- Returns:
- a StringBuilder object, including the termination sign
- Throws:
CommConnectionException
- possible Errorcodes:- for TCP Connection:
- CONNECTION_LOST
- RECV_TIMEOUT
- UNHANDLED_ERROR
- NOT_INITIALISE
- for USB Connection:
- CONNECTION_LOST
- RECV_TIMEOUT
- UNHANDLED_ERROR
- NOT_INITIALISE
- for RS232 Connection:
- CONNECTION_LOST
- RECV_TIMEOUT
- UNHANDLED_ERROR
- NOT_INITIALISE
- for TCP Connection:
-
-