Package org.ka2ddo.yaac.io


package org.ka2ddo.yaac.io

This package contains classes managing and controlling I/O operations between YAAC and the various sensors and communications devices the core distribution of YAAC can talk to. This includes:

  • hardware and software TNCs (Terminal-Node Controllers, or radio modems)
  • the APRS-IS Internet backbone
  • GPS receivers
  • weather stations
  • inter-process communications with other data-providing applications
It also provides optimized variants of standard Java I/O classes to improve YAAC's CPU and memory heap performance.
  • Class
    Description
    This class provides common functionality for PortConnectors that receive NMEA-0183 data from some kind of connection to a GPS receiver.
    This class defines a driver for using the Windows AGWPE software TNC/multiplexer with YAAC, or emulations thereof such as software TNCs like UZ7HO, Sivan Toledo's soundmodem, or the DireWolf software.
    This class defines a potentially bidirectional connection to an APRS-IS server.
    This class provides an adapter to convert an arbitrary DataInput implementer into a sequential input stream.
    This interface declares a callback method for objects who wish to be notified when the local station's beacon definition is changed.
    This class contains all the data associated with a beacon message.
    Enum defining the APRS message formats that YAAC can use for position beacons.
    Enum specifying the specific APRS Position Report message type code used for BeaconType.POSITION and BeaconType.COMPRESSED beacon messages in APRS.
    This class examines the active configuration of YAAC and derives what the station is capable of doing (digipeat, I-gate, etc.), and produces a data structure that can be converted into a report.
    Enumeration defining the level of I-gate operation allowed on this system.
    Structure containing statistics about a port carrying APRS traffic.
    Enumeration defining generic port categories.
    Configuration analysis statistics for the local YAAC system as a whole.
    This class implements an XML parser that can interpret the XML export of a YAAC configuration (as dumped by the Java Preferences code).
    InputStream to count the number of bytes read from the input, so as to drive a progress bar.
    InputStream to count the number of bytes read from the input, so as to drive a progress bar, but it avoids using the read() method of the passed-in InputStream, as SocketInputStream malloc's a 1-byte byte array for each such read, then throws the array away.
    This class is a FilterOutputStream that counts the number of bytes written to the lower-level OutputStream.
    This implements a TCP or UDP socket or serial port reader for receiving ASCII-text messages to transmit to the RF and APRS-IS networks for APRS.
    This class implements a port to a TNC connected by an arbitrary file using KISS over asynchronous serial data.
    This class provides a driver to connect YAAC to a gpsd daemon, so that YAAC can use a shared GPS receiver, or non-standard hardware that acts like a GPS receiver or speaks protocols other than NMEA 0183.
    This interface defines a PortConnector that connects to a remote application on another system.
    This class provides an InputStream-like interface to a jssc.SerialPort object.
    This class provides an OutputStream wrapper around a jssc.SerialPort object.
    This class defines a connector for communicating with a Kenwood TM-D710 (or equivalent) radio through its COM port when the radio is in APRS (not packet TNC) mode.
    This filtering OutputStream adds the KISS protocol escape sequences for the body of a KISS frame.
    States of a KISS frame decoder.
    This class defines the port driver for connecting to a KISS TNC over a TCP/IP network connection.
    Specify listener callback so YAAC can be informed of modem changes made at the fldigi UI.
    This class provides a cached, buffered variant of RandomAccessFile, so that sequential reads from a starting point can be done with minimal JNI calls and actual kernel calls.
    This interface tags a Connector that requires to be told its containing application's name and version.
    This class is a merged duplicate of java.io.BufferedOutputStream and java.io.DataOutputStream, except that its methods are not synchronized, limiting its use to a single thread.
    This class is a copy of java.io.BufferedInputStream, but without the synchronization, which restricts instances of this class to use in a single thread.
    This class is a duplicate of java.io.BufferedOutputStream, except that its methods are not synchronized, limiting its use to a single thread.
    This class implements a non-mutexing buffered version of PrintStream, locked to the UTF-8 encoding, with no autoflushing.
    This class implements a version of BufferedReader that can only be used by one thread.
    This class is a merged copy of java.io.BufferedInputStream and java.io.DataInputStream, but without the synchronization, which restricts instances of this class to use in a single thread.
    This class is a duplicate of java.io.BufferedOutputStream, except that its methods are not synchronized, limiting its use to a single thread.
    This class is a duplicate of java.io.DataInputStream, without the byte counter and the synchronization, so it can only be used by a single thread.
    This class is a duplicate of java.io.DataInputStream, without the byte counter and the synchronization, so it can only be used by a single thread, plus it avoids using the read() method of the passed-in InputStream, because SocketInputStream has the heap-thrashing habit of malloc-ing a 1-byte array for each such read and then throwing the array away.
    This class is a duplicate of java.io.DataOutputStream, without the byte counter and the synchronization, so it can only be used by a single thread.
    This interface permits an ObjectReportTransmitter to obtain extra information from an ObjectEditor that is not stored in the ObjectReport message.
    This class extends SendableMessageWrapper to cancel transmission when the ObjectReport is overridden by another source (i.e., taken over).
    This interface defines a callback from the ObjectEditor, delivering an ObjectReport to be transmitted.
    This class implements a polling file reader for files accessed over HTTP from a webserver such as an OUTERNET receiver, where the file contains APRS messages in TNC2 ASCII/UTF-8 format.
    Interface for listeners (such as the Test Port button on the configuration GUI panel) to intercept the data read from the Outernet receiver.
    This is a performance-optimized clone of the java.io.PipedReader class.
    This is a performance-optimized clone of the java.io.PipedWriter class.
    This class contains all the parameters for configuring a PortConnector in this application, and the encoding and decoding code for saving its value in the persisted configuration data.
    Port-type-specific configuration parameters for a PortConnector.
    Enumeration identifying all the fields in a Cfg sub-record.
    For the ConfigImporter, provide hints of how required but non-transferable config fields should be asked for.
    Data structure describing how the ConfigImporter should ask for missing (or blanked-out) required port configuration parameters when they are a file in the filesystem.
    Data structure describing how the ConfigImporter should ask for missing (or blanked-out) required port configuration parameters.
    This class defines the generic API for an object that connects a bidirectional real-time data stream to this application.
    This enum is used to select which sets of statistics should be returned.
    This interface defines a listener that wants to know the details of when a port is receiving or sending frames of data.
    Implementers of this interface can be informed of all PortStatusListener events (opens and closes) as well as other status changes of a port.
    This interface declares the control methods of an abstract GUI object used by the I/O system to report an unsolicited port failure.
    This interface defines a callback so a PortFailureReporterIfc implementer can tell the requestor that the GUI object no longer exists (user disposed of it) and should not be used any more.
    This singleton class manages the PortConnectors opened by YAAC.
    Implementers of this interface can be notified of state changes of the I/O ports used by YAAC.
    Implementers of this interface can be notified of state changes of the I/O ports used by YAAC.
    This class provides a sequential OutputStream wrapper around a RandomAccessFile.
    Implementers of this interface will be informed when the outgoing locally originated message queue is updated.
    This class wraps a SendableMessage in a AX25Frame suitable for transmission.
    This class implements a port to a GPS receiver connected by a serial port over RS-232C (or USB emulating a RS-232C serial port).
    This class implements a port to a TNC connected by a serial port using KISS over asynchronous serial data via RS-232C or USB.
    This class implements a driver to listen to serial-port-connected weather stations.
    This class defines a potentially bidirectional connection to an APRS-IS server, using SSL client authentication rather than passcodes to connect.
    This class defines all the data for transmitting an APRS Status message for this station, per chapter 16 of the APRS Protocol Specification.
    This class provides a Runnable for copying a stream to another stream, typically the standard output and standard error of a launched subprocess.
    This class defines a generic bidirectional TNC interface port, which can both send and receive AX.25 frames.
    This class handles scheduling transmit requests to the various ports.
    Class to shut down the Transmitter as a parallel thread.
    This interface allows a plugin to provide an API to tune a radio based on a repeater frequency PositionMessage, so a TUNE button on the KenwoodRadioViewPane can actually work without having to call up the plugin view.
    These enum values report the results of calling the TuneIfc.tuneForRepeater(AX25Message) method.
    This class provides a PortConnector for write-only access to the APRS-IS via UDP submit.
    This class defines a "port" for periodically reading weather data from a wxnow.txt file, as provided by other software used for reading Davis weather stations.
    This class implements a receive-only port for listening to the non-standard command-mode style APRS packet output of the Yaesu FTM-400DR and related radios, and to Kantronics TNCs in command mode.