in src/main/java/com/fazecast/jSerialComm/SerialPort.java [2066:2102]
public final void startListening()
{
if (eventListenerRunning)
return;
eventListenerRunning = true;
// Reset event listening parameters and start a new listening thread
resetBuffers();
if (androidPort != null)
androidPort.setEventListeningStatus(true);
else
setEventListeningStatus(portHandle, true);
serialEventThread = SerialPortThreadFactory.get().newThread(new Runnable()
{
@Override
public void run()
{
while (eventListenerRunning && !isShuttingDown)
{
try { waitForSerialEvent(); }
catch (Exception e)
{
eventListenerRunning = false;
if (userDataListener instanceof SerialPortDataListenerWithExceptions)
((SerialPortDataListenerWithExceptions)userDataListener).catchException(e);
else if (userDataListener instanceof SerialPortMessageListenerWithExceptions)
((SerialPortMessageListenerWithExceptions)userDataListener).catchException(e);
}
}
if (androidPort != null)
androidPort.setEventListeningStatus(false);
else
setEventListeningStatus(portHandle, false);
}
});
serialEventThread.start();
}