|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.discotools.io.AbstractProtocol<T>
org.discotools.io.fsm.FsmProtocol<AprsPacket,TncParser>
org.discotools.io.aprs.tnc.TncProtocol
public final class TncProtocol
This class implements the terminal mode protocol.
Field Summary | |
---|---|
static String |
A_BATCH
TNC batch action: Executes a TncDialect batch. |
static String |
A_CANCEL
TNC batch cancel action: Cancels current TncDialect batch. |
static String |
A_CLOSE
AbstractConnection.close() action: The connection has been closed,
which forces the protocol to S_IDLE state. |
static String |
A_CONTINUE
TNC continue batch action: returns FSM to batch state. |
static String |
A_DONE
TNC command done action: Completes current TncDialect command. |
static String |
A_END
TNC batch end action: Ends current TncDialect batch. |
static String |
A_EXECUTE
TNC command execute action: Executes a TncDialect command. |
static String |
A_NEXT
TNC next batch step action: Executes a TncDialect command. |
static String |
A_OPEN
SerialConnection#open(org.discotools.io.IProtocol) action:
The connection has been open, which forces the protocol to
S_OPEN state. |
static String |
S_BATCH
TNC batch state: The protocol is executing a TncDialect batch. |
static String |
S_COMMAND
TNC command state: The protocol is executing a TncDialect command. |
static String |
S_IDLE
TNC idle state: SerialConnection is closed. |
static String |
S_OPEN
TNC open state: SerialConnection is open. |
static String |
S_STEP
TNC batch step state: The protocol is executing a batch step. |
Fields inherited from class org.discotools.io.fsm.FsmProtocol |
---|
common, parser, S_COMMON |
Fields inherited from class org.discotools.io.AbstractProtocol |
---|
DEFAULT_SIZE, head, isOpen, rb, size, tail, tb |
Constructor Summary | |
---|---|
TncProtocol(TncDialect dialect)
Dialect constructor |
|
TncProtocol(TncDialect dialect,
AprsCache cache)
Cache constructor |
Method Summary | |
---|---|
boolean |
addListener(org.discotools.fsm.event.FsmListener listener)
Add FsmListener to TNC finite state machine instance
|
protected org.discotools.fsm.Fsm |
createFsm(org.discotools.io.fsm.FsmProtocolState idle)
Create TNC FSM instance. |
protected org.discotools.io.fsm.FsmProtocolState |
createState(String name,
boolean isParseable)
|
boolean |
execute(org.discotools.io.Connection<AprsPacket> connection,
String sentence,
Object... params)
Execute given sentence. |
AprsCache |
getCache()
|
TncState |
getState()
|
protected void |
internalClose(org.discotools.io.Connection<AprsPacket> connection)
|
protected boolean |
internalOpen(org.discotools.io.Connection<AprsPacket> connection,
Map<String,? extends Object> options)
|
boolean |
removeListener(org.discotools.fsm.event.FsmListener listener)
Remove FsmListener from Terminal Finite State Machine instance
|
Methods inherited from class org.discotools.io.fsm.FsmProtocol |
---|
getCurrentState, getFsm, getParser, handle, internalParse, merge, setFsm, toState |
Methods inherited from class org.discotools.io.AbstractProtocol |
---|
addListener, assertClose, assertOpen, close, fireOnReceive, fireOnTransmit, getListeners, internalReceive, internalTransmit, isHead, isOpen, isTail, open, open, receive, receive, receive, receive, receive, removeListener, toBytes, toBytes, toString, transmit, transmit, transmit, transmit, transmit |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String A_CLOSE
AbstractConnection.close()
action: The connection has been closed,
which forces the protocol to S_IDLE
state.
public static final String S_IDLE
SerialConnection
is closed.
public static final String A_OPEN
SerialConnection#open(org.discotools.io.IProtocol)
action:
The connection has been open, which forces the protocol to
S_OPEN
state.
public static final String S_OPEN
SerialConnection
is open.
public static final String A_BATCH
TncDialect
batch.
public static final String S_BATCH
TncDialect
batch.
public static final String A_NEXT
TncDialect
command.
public static final String S_STEP
public static final String A_EXECUTE
TncDialect
command.
public static final String S_COMMAND
TncDialect
command.
public static final String A_DONE
TncDialect
command.
public static final String A_CONTINUE
public static final String A_CANCEL
TncDialect
batch.
public static final String A_END
TncDialect
batch.
Constructor Detail |
---|
public TncProtocol(TncDialect dialect)
public TncProtocol(TncDialect dialect, AprsCache cache)
Method Detail |
---|
public AprsCache getCache()
public TncState getState()
public boolean execute(org.discotools.io.Connection<AprsPacket> connection, String sentence, Object... params) throws org.discotools.fsm.FsmException
NOTE: Execution is only possible when getState()
is S_OPEN
.
connection
- sentence
- params
-
true
if passed to TNC, false
otherwise.
org.discotools.fsm.FsmException
public boolean addListener(org.discotools.fsm.event.FsmListener listener)
FsmListener
to TNC finite state machine
instance
addListener
in class org.discotools.io.fsm.FsmProtocol<AprsPacket,TncParser>
listener
-
true
if added.public boolean removeListener(org.discotools.fsm.event.FsmListener listener)
FsmListener
from Terminal Finite State Machine
instance
removeListener
in class org.discotools.io.fsm.FsmProtocol<AprsPacket,TncParser>
listener
-
true
if added.protected org.discotools.io.fsm.FsmProtocolState createState(String name, boolean isParseable)
createState
in class org.discotools.io.fsm.FsmProtocol<AprsPacket,TncParser>
protected org.discotools.fsm.Fsm createFsm(org.discotools.io.fsm.FsmProtocolState idle)
FSM
instance.
NOTE: Following parseable states share receive and transmit buffers.
which enables this protocol to parse payload intoAprsPacket
regardless of protocol state,
except in S_IDLE
.
createFsm
in class org.discotools.io.fsm.FsmProtocol<AprsPacket,TncParser>
protected boolean internalOpen(org.discotools.io.Connection<AprsPacket> connection, Map<String,? extends Object> options) throws IOException
internalOpen
in class org.discotools.io.AbstractProtocol<AprsPacket>
IOException
protected void internalClose(org.discotools.io.Connection<AprsPacket> connection) throws IOException
internalClose
in class org.discotools.io.AbstractProtocol<AprsPacket>
IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |