public class AsyncSerialPortCommunicator
extends java.lang.Object
implements gnu.io.SerialPortEventListener
Modifier and Type | Class and Description |
---|---|
static class |
AsyncSerialPortCommunicator.ModemType
Modemtyp.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
BUSY
BUSY-Meldung vom Modem.
|
protected java.lang.String |
com
Name des ComPorts.
|
static java.lang.String |
CONNECT
CONNECT-Meldung vom Modem.
|
protected boolean |
debug
DEBUG.
|
static java.lang.String |
ERROR
ERROR-Meldung vom Modem.
|
protected static de.bsvrz.sys.funclib.debug.Debug |
LOGGER
Der Logger.
|
static java.lang.String |
NO_ANSWER
NO_ANSWER-Meldung vom Modem.
|
static java.lang.String |
NO_CARRIER
NO_CARRIER-Meldung vom Modem.
|
static java.lang.String |
NO_DIALTONE
NO_DIALTONE-Meldung vom Modem.
|
static java.lang.String |
OK
OK-Antwort vom Modem.
|
protected AsyncSerialPortReader |
reader
Der Reader-Worker.
|
static java.lang.String |
RING
RING-Meldung vom Modem.
|
protected gnu.io.SerialPort |
serialPort
Instanz der RX/TX seriellen Schnittstelle.
|
protected long |
timeout
Defaultwert für timeout = 10 Sekunden.
|
protected AsyncSerialPortWriter |
writer
Der Writer-Worker.
|
Constructor and Description |
---|
AsyncSerialPortCommunicator(java.lang.String com,
int baud,
int inPufferSize,
int outPufferSize,
long timeout,
boolean swFlowControll)
Standardkonstruktor.
|
Modifier and Type | Method and Description |
---|---|
void |
beenden()
Beendet die WorkerThreads und schliesst die Schnittstelle.
|
void |
endBinaerModus()
Beendet den binären Modus.
|
static java.lang.Object |
getLock(java.lang.String com)
Gibt das Lock-Objekt für den Port zurück.
|
java.lang.String |
getName()
Gibtt den Namen des Comm-Ports zurück.
|
long |
getTimeout()
Erfragt den eingestellten Timeout.
|
java.util.Collection<java.lang.String> |
recvAlleATantworten()
Wartet auf eine der erwarteten AT-Antworten oder Timeout.
|
java.lang.String |
recvATantwort()
Wartet auf eine der erwarteten AT-Antworten oder Timeout.
|
java.lang.String |
recvATantwort(long waittimeout)
Wartet auf eine der erwarteten AT-Antworten oder einen bestimmten
Timeout.
|
java.util.Collection<java.lang.String> |
recvATantwortMitKontroll()
Wartet bis max Timeout gekommen ist, oder eine von der erkannten AT
Antworten, Im Fall Timeout gekommen ist oder die Antwort ist negativ,
dann wird ein Exception geworfen sonst alle antworte die inzwischen
gekommen sind auser der ersten, die das Echo von dem Kommando ist.
|
java.lang.String |
recvATResp()
Empfängt eine AT-Antwort.
|
boolean |
recvBytes(byte[] erwartet)
Wartet bis die erwartete ByteKette gekommen ist, oder timeout.
|
boolean |
sendByte(byte b)
Versendet ein Byte ohne modification.
|
boolean |
sendBytes(byte[] cmd)
Versendet Bytes ohne Modifikation.
|
boolean |
sendBytes(byte[] cmd,
int off,
int len)
Versendet Bytes ohne Modifikation.
|
boolean |
sendCmd(long waittimeout,
java.lang.String cmd)
Versendet ein AT-Kommando.
|
boolean |
sendCmd(java.lang.String cmd)
Versendet ein AT-Kommando.
|
java.util.Collection<java.lang.String> |
sendCmdMitKontroll(java.lang.String cmd)
Ein Wrapper für sendCmd + recvATantwortMitKontroll().
|
int |
sendData(byte[] data,
int off,
int len,
boolean reverseBitOrder)
Versendet Daten wobei die DLEs verdoppelt werden.
|
void |
serialEvent(gnu.io.SerialPortEvent event) |
void |
setDebug(boolean debug)
Setzt den Debug Modus.
|
void |
setTimeout(long t)
Stellt den Timeout ein.
|
void |
startBinaerModus()
Startet den binären Modus.
|
void |
test()
Testausgabe Schnittstellenparameter.
|
protected static final de.bsvrz.sys.funclib.debug.Debug LOGGER
public static final java.lang.String OK
public static final java.lang.String CONNECT
public static final java.lang.String RING
public static final java.lang.String NO_CARRIER
public static final java.lang.String ERROR
public static final java.lang.String NO_DIALTONE
public static final java.lang.String BUSY
public static final java.lang.String NO_ANSWER
protected gnu.io.SerialPort serialPort
protected AsyncSerialPortReader reader
protected AsyncSerialPortWriter writer
protected boolean debug
protected long timeout
protected java.lang.String com
public AsyncSerialPortCommunicator(java.lang.String com, int baud, int inPufferSize, int outPufferSize, long timeout, boolean swFlowControll) throws java.lang.Exception
com
- Com-Portbaud
- BaudrateinPufferSize
- Grösse des Input-PuffersoutPufferSize
- Grösse des Output-Pufferstimeout
- Timeout in MilisekundenswFlowControll
- true
wenn Software-Datenflusssteuerung benutzt
werden solljava.lang.Exception
- Initialisierungsausnahmepublic static java.lang.Object getLock(java.lang.String com)
com
- ComPortpublic void beenden()
public void endBinaerModus()
public java.lang.String getName()
public long getTimeout()
public java.util.Collection<java.lang.String> recvAlleATantworten()
public java.lang.String recvATantwort()
public java.lang.String recvATantwort(long waittimeout)
waittimeout
- Timeoutpublic java.util.Collection<java.lang.String> recvATantwortMitKontroll() throws CommunicationException
CommunicationException
- bei Ausnahmenpublic java.lang.String recvATResp()
public boolean recvBytes(byte[] erwartet)
erwartet
- erwartete ByteKettepublic boolean sendByte(byte b)
b
- ByteKommandopublic boolean sendBytes(byte[] cmd)
cmd
- BytesKommandopublic boolean sendBytes(byte[] cmd, int off, int len)
cmd
- BytesKommandooff
- Offsetlen
- Lengthpublic boolean sendCmd(long waittimeout, java.lang.String cmd)
waittimeout
- Timeoutcmd
- AT Kommandopublic boolean sendCmd(java.lang.String cmd)
cmd
- AT Kommandopublic java.util.Collection<java.lang.String> sendCmdMitKontroll(java.lang.String cmd) throws CommunicationException
cmd
- KommandoCommunicationException
- Fehlerpublic int sendData(byte[] data, int off, int len, boolean reverseBitOrder)
data
- Datenoff
- Offsetlen
- LängereverseBitOrder
- Flag, ob die Bitorder umgekehrt werden sollpublic void serialEvent(gnu.io.SerialPortEvent event)
serialEvent
in interface gnu.io.SerialPortEventListener
public void setDebug(boolean debug)
debug
- true/falsepublic void setTimeout(long t)
t
- Timeout in mspublic void startBinaerModus()
public void test()