org.ka2ddo.yaac.io
Class SerialTNCConnector

java.lang.Object
  extended by org.ka2ddo.ax25.Connector
      extended by org.ka2ddo.yaac.io.PortConnector
          extended by org.ka2ddo.yaac.io.TransmittingPortConnector
              extended by org.ka2ddo.yaac.io.TNCConnector
                  extended by org.ka2ddo.yaac.io.SerialTNCConnector
All Implemented Interfaces:
gnu.io.SerialPortEventListener, java.util.EventListener

public class SerialTNCConnector
extends TNCConnector
implements gnu.io.SerialPortEventListener

This class implements a port to a TNC connected by a serial port using KISS over asynchronous serial data via RS-232C or USB. Note this can only handle one TNC per serial port; it does not support the multiplexing with port numbers in the high nibble of the KISS command byte, but only expects port#0.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.ka2ddo.ax25.Connector
Connector.PortStats
 
Field Summary
static java.lang.String CONFIG_GUI
          Specify the fully-qualified platform-wildcarded class name for the editor for SerialTNCConnector.
static java.lang.String TYPE_NAME
          Specify the PortConnector type name for SerialTNCConnector.
 
Fields inherited from class org.ka2ddo.yaac.io.PortConnector
currentCfg, portConfig
 
Fields inherited from class org.ka2ddo.ax25.Connector
CAP_FULL_DUPLEX, CAP_GPS_DATA, CAP_HF, CAP_IGATE, CAP_OPENTRAC, CAP_RCV_PACKET_DATA, CAP_RF, CAP_WAYPOINT_SENDER, CAP_WEATHER, CAP_XMT_PACKET_DATA, stats
 
Constructor Summary
SerialTNCConnector()
          Create an uninitialized SerialTNCConnector instance, to be configured with a later call to configure().
 
Method Summary
 void close()
          Shut down this port connection.
 void configure(PortConfig portConfig)
          Update the configuration of the connector to match the updated setup.
 int getCapabilities()
          Specify what capabilities a port of this type has.
 boolean isOpen()
          Reports whether this PortConnector has an open connection to its port.
 void sendFrame(AX25Frame frame)
          Transmit an AX.25 frame through this port.
 void serialEvent(gnu.io.SerialPortEvent event)
          Process incoming serial port event.
 java.lang.String toString()
          Returns a string representation of the object.
 
Methods inherited from class org.ka2ddo.yaac.io.TNCConnector
convertTNC2FormatToAX25Frame, getBitRate, getCallsign, getPortAddress, setPortAddress
 
Methods inherited from class org.ka2ddo.yaac.io.PortConnector
addFrameListener, addPortEventListener, createPort, fireConsumeFrame, fireConsumeFrame, fireFailed, fireReceiving, fireTransmitting, getPortConnectorClass, portConnectorClasses, portTypeNames, registerPortConnectorType, removeFrameListener, removePortEventListener, setPortConfig
 
Methods inherited from class org.ka2ddo.ax25.Connector
finalize, getStats, hasCapability
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPE_NAME

public static final java.lang.String TYPE_NAME
Specify the PortConnector type name for SerialTNCConnector.

See Also:
Constant Field Values

CONFIG_GUI

public static final java.lang.String CONFIG_GUI
Specify the fully-qualified platform-wildcarded class name for the editor for SerialTNCConnector.

See Also:
Constant Field Values
Constructor Detail

SerialTNCConnector

public SerialTNCConnector()
Create an uninitialized SerialTNCConnector instance, to be configured with a later call to configure().

See Also:
configure(PortConfig)
Method Detail

configure

public void configure(PortConfig portConfig)
               throws java.io.IOException,
                      java.lang.IllegalArgumentException
Update the configuration of the connector to match the updated setup.

Specified by:
configure in class PortConnector
Parameters:
portConfig - PortConfig defining new port settings
Throws:
java.io.IOException - if interface changes could not be applied
java.lang.IllegalArgumentException - if type information is invalid for changing the settings of this PortConnector

isOpen

public boolean isOpen()
Reports whether this PortConnector has an open connection to its port.

Specified by:
isOpen in class Connector
Returns:
boolean true if PortConnector is open

sendFrame

public void sendFrame(AX25Frame frame)
               throws java.io.IOException
Transmit an AX.25 frame through this port. May fail silently if port is not configured for transmission (receive-only).

Specified by:
sendFrame in class TransmittingPortConnector
Parameters:
frame - AX25Frame object to transmit
Throws:
java.io.IOException - if transmit failed for any reason other than a receive-only port

serialEvent

public void serialEvent(gnu.io.SerialPortEvent event)
Process incoming serial port event.

Specified by:
serialEvent in interface gnu.io.SerialPortEventListener
Parameters:
event - SerialPortEvent describing the handling needed

close

public void close()
Shut down this port connection.

Overrides:
close in class Connector

toString

public java.lang.String toString()
Returns a string representation of the object.

Overrides:
toString in class java.lang.Object
Returns:
a string representation of the object.

getCapabilities

public int getCapabilities()
Specify what capabilities a port of this type has.

Overrides:
getCapabilities in class Connector
Returns:
bitmask of capability flags
See Also:
Connector.CAP_RCV_PACKET_DATA, Connector.CAP_XMT_PACKET_DATA, Connector.CAP_FULL_DUPLEX, Connector.CAP_GPS_DATA, Connector.CAP_IGATE, Connector.CAP_OPENTRAC, Connector.CAP_RF, Connector.CAP_WAYPOINT_SENDER, Connector.CAP_WEATHER