Enable full range of event listener options for Windows
This commit is contained in:
parent
9a576ea145
commit
569a5c66c6
|
@ -495,6 +495,16 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou
|
|||
eventFlags |= EV_RXCHAR;
|
||||
if (eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_WRITTEN)
|
||||
eventFlags |= EV_TXEMPTY;
|
||||
if (eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_BREAK_INTERRUPT)
|
||||
eventFlags |= EV_BREAK;
|
||||
if (eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_CTS)
|
||||
eventFlags |= EV_CTS;
|
||||
if (eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DSR)
|
||||
eventFlags |= EV_DSR;
|
||||
if (eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_RING_INDICATOR)
|
||||
eventFlags |= EV_RING;
|
||||
if (eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_CARRIER_DETECT)
|
||||
eventFlags |= EV_RLSD;
|
||||
|
||||
// Set updated port timeouts
|
||||
COMMTIMEOUTS timeouts;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* SerialPort.java
|
||||
*
|
||||
* Created on: Feb 25, 2012
|
||||
* Last Updated on: Dec 15, 2021
|
||||
* Last Updated on: Dec 17, 2021
|
||||
* Author: Will Hedgecock
|
||||
*
|
||||
* Copyright (C) 2012-2021 Fazecast, Inc.
|
||||
|
@ -934,19 +934,13 @@ public final class SerialPort
|
|||
if (userDataListener != null)
|
||||
return false;
|
||||
userDataListener = listener;
|
||||
eventFlags = listener.getListeningEvents();
|
||||
if ((eventFlags & LISTENING_EVENT_DATA_RECEIVED) > 0)
|
||||
eventFlags |= LISTENING_EVENT_DATA_AVAILABLE;
|
||||
serialEventListener = ((userDataListener instanceof SerialPortPacketListener) ? new SerialPortEventListener(((SerialPortPacketListener)userDataListener).getPacketSize()) :
|
||||
((userDataListener instanceof SerialPortMessageListener) ?
|
||||
new SerialPortEventListener(((SerialPortMessageListener)userDataListener).getMessageDelimiter(), ((SerialPortMessageListener)userDataListener).delimiterIndicatesEndOfMessage()) :
|
||||
new SerialPortEventListener()));
|
||||
|
||||
eventFlags = 0;
|
||||
if ((listener.getListeningEvents() & LISTENING_EVENT_DATA_AVAILABLE) > 0)
|
||||
eventFlags |= LISTENING_EVENT_DATA_AVAILABLE;
|
||||
if ((listener.getListeningEvents() & LISTENING_EVENT_DATA_RECEIVED) > 0)
|
||||
eventFlags |= LISTENING_EVENT_DATA_RECEIVED;
|
||||
if ((listener.getListeningEvents() & LISTENING_EVENT_DATA_WRITTEN) > 0)
|
||||
eventFlags |= LISTENING_EVENT_DATA_WRITTEN;
|
||||
|
||||
if (portHandle > 0)
|
||||
{
|
||||
configTimeouts(portHandle, timeoutMode, readTimeout, writeTimeout, eventFlags);
|
||||
|
@ -1667,75 +1661,62 @@ public final class SerialPort
|
|||
|
||||
public final void waitForSerialEvent() throws Exception
|
||||
{
|
||||
switch (waitForEvent(portHandle))
|
||||
int event = waitForEvent(portHandle) & eventFlags;
|
||||
if (((event & LISTENING_EVENT_DATA_AVAILABLE) > 0) && ((eventFlags & LISTENING_EVENT_DATA_RECEIVED) > 0))
|
||||
{
|
||||
case LISTENING_EVENT_DATA_AVAILABLE:
|
||||
// Read data from serial port
|
||||
int numBytesAvailable, bytesRemaining, newBytesIndex;
|
||||
event &= ~(LISTENING_EVENT_DATA_AVAILABLE | LISTENING_EVENT_DATA_RECEIVED);
|
||||
while (eventListenerRunning && ((numBytesAvailable = bytesAvailable(portHandle)) > 0))
|
||||
{
|
||||
if ((eventFlags & LISTENING_EVENT_DATA_RECEIVED) > 0)
|
||||
newBytesIndex = 0;
|
||||
byte[] newBytes = new byte[numBytesAvailable];
|
||||
bytesRemaining = readBytes(portHandle, newBytes, newBytes.length, 0, timeoutMode, readTimeout);
|
||||
if (delimiters.length > 0)
|
||||
{
|
||||
// Read data from serial port
|
||||
int numBytesAvailable, bytesRemaining, newBytesIndex;
|
||||
while (eventListenerRunning && ((numBytesAvailable = bytesAvailable(portHandle)) > 0))
|
||||
int startIndex = 0;
|
||||
for (int offset = 0; offset < bytesRemaining; ++offset)
|
||||
if (newBytes[offset] == delimiters[delimiterIndex])
|
||||
{
|
||||
if ((++delimiterIndex) == delimiters.length)
|
||||
{
|
||||
messageBytes.write(newBytes, startIndex, 1 + offset - startIndex);
|
||||
byte[] byteArray = (messageEndIsDelimited ? messageBytes.toByteArray() : Arrays.copyOf(messageBytes.toByteArray(), messageBytes.size() - delimiters.length));
|
||||
if ((byteArray.length > 0) && (messageEndIsDelimited || (delimiters[0] == byteArray[0])))
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_RECEIVED, byteArray));
|
||||
startIndex = offset + 1;
|
||||
messageBytes.reset();
|
||||
delimiterIndex = 0;
|
||||
if (!messageEndIsDelimited)
|
||||
messageBytes.write(delimiters, 0, delimiters.length);
|
||||
}
|
||||
}
|
||||
else if (delimiterIndex != 0)
|
||||
delimiterIndex = (newBytes[offset] == delimiters[0]) ? 1 : 0;
|
||||
messageBytes.write(newBytes, startIndex, bytesRemaining - startIndex);
|
||||
}
|
||||
else if (dataPacket.length == 0)
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_RECEIVED, newBytes.clone()));
|
||||
else
|
||||
{
|
||||
while (bytesRemaining >= (dataPacket.length - dataPacketIndex))
|
||||
{
|
||||
newBytesIndex = 0;
|
||||
byte[] newBytes = new byte[numBytesAvailable];
|
||||
bytesRemaining = readBytes(portHandle, newBytes, newBytes.length, 0, timeoutMode, readTimeout);
|
||||
if (delimiters.length > 0)
|
||||
{
|
||||
int startIndex = 0;
|
||||
for (int offset = 0; offset < bytesRemaining; ++offset)
|
||||
if (newBytes[offset] == delimiters[delimiterIndex])
|
||||
{
|
||||
if ((++delimiterIndex) == delimiters.length)
|
||||
{
|
||||
messageBytes.write(newBytes, startIndex, 1 + offset - startIndex);
|
||||
byte[] byteArray = (messageEndIsDelimited ? messageBytes.toByteArray() : Arrays.copyOf(messageBytes.toByteArray(), messageBytes.size() - delimiters.length));
|
||||
if ((byteArray.length > 0) && (messageEndIsDelimited || (delimiters[0] == byteArray[0])))
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_RECEIVED, byteArray));
|
||||
startIndex = offset + 1;
|
||||
messageBytes.reset();
|
||||
delimiterIndex = 0;
|
||||
if (!messageEndIsDelimited)
|
||||
messageBytes.write(delimiters, 0, delimiters.length);
|
||||
}
|
||||
}
|
||||
else if (delimiterIndex != 0)
|
||||
delimiterIndex = (newBytes[offset] == delimiters[0]) ? 1 : 0;
|
||||
messageBytes.write(newBytes, startIndex, bytesRemaining - startIndex);
|
||||
}
|
||||
else if (dataPacket.length == 0)
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_RECEIVED, newBytes.clone()));
|
||||
else
|
||||
{
|
||||
while (bytesRemaining >= (dataPacket.length - dataPacketIndex))
|
||||
{
|
||||
System.arraycopy(newBytes, newBytesIndex, dataPacket, dataPacketIndex, dataPacket.length - dataPacketIndex);
|
||||
bytesRemaining -= (dataPacket.length - dataPacketIndex);
|
||||
newBytesIndex += (dataPacket.length - dataPacketIndex);
|
||||
dataPacketIndex = 0;
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_RECEIVED, dataPacket.clone()));
|
||||
}
|
||||
if (bytesRemaining > 0)
|
||||
{
|
||||
System.arraycopy(newBytes, newBytesIndex, dataPacket, dataPacketIndex, bytesRemaining);
|
||||
dataPacketIndex += bytesRemaining;
|
||||
}
|
||||
}
|
||||
System.arraycopy(newBytes, newBytesIndex, dataPacket, dataPacketIndex, dataPacket.length - dataPacketIndex);
|
||||
bytesRemaining -= (dataPacket.length - dataPacketIndex);
|
||||
newBytesIndex += (dataPacket.length - dataPacketIndex);
|
||||
dataPacketIndex = 0;
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_RECEIVED, dataPacket.clone()));
|
||||
}
|
||||
if (bytesRemaining > 0)
|
||||
{
|
||||
System.arraycopy(newBytes, newBytesIndex, dataPacket, dataPacketIndex, bytesRemaining);
|
||||
dataPacketIndex += bytesRemaining;
|
||||
}
|
||||
}
|
||||
else if ((eventFlags & LISTENING_EVENT_DATA_AVAILABLE) > 0)
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_AVAILABLE));
|
||||
break;
|
||||
}
|
||||
case LISTENING_EVENT_DATA_WRITTEN:
|
||||
{
|
||||
if ((eventFlags & LISTENING_EVENT_DATA_WRITTEN) > 0)
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, LISTENING_EVENT_DATA_WRITTEN));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (event != LISTENING_EVENT_TIMED_OUT)
|
||||
userDataListener.serialEvent(new SerialPortEvent(SerialPort.this, event));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
* SerialPortDataListener.java
|
||||
*
|
||||
* Created on: Feb 25, 2015
|
||||
* Last Updated on: Jan 03, 2018
|
||||
* Last Updated on: Dec 17, 2021
|
||||
* Author: Will Hedgecock
|
||||
*
|
||||
* Copyright (C) 2012-2020 Fazecast, Inc.
|
||||
* Copyright (C) 2012-2021 Fazecast, Inc.
|
||||
*
|
||||
* This file is part of jSerialComm.
|
||||
*
|
||||
|
@ -44,6 +44,15 @@ public interface SerialPortDataListener extends EventListener
|
|||
* {@link SerialPort#LISTENING_EVENT_DATA_AVAILABLE}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_RECEIVED}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_WRITTEN}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_BREAK_INTERRUPT}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_CARRIER_DETECT}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_CTS}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DSR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_RING_INDICATOR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_FRAMING_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_FIRMWARE_OVERRUN_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_SOFTWARE_OVERRUN_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_PARITY_ERROR}<br>
|
||||
* <p>
|
||||
* Two or more events may be OR'd together to listen for multiple events; however, if {@link SerialPort#LISTENING_EVENT_DATA_AVAILABLE} is OR'd with {@link SerialPort#LISTENING_EVENT_DATA_RECEIVED}, the {@link SerialPort#LISTENING_EVENT_DATA_RECEIVED} flag will take precedence.
|
||||
* <p>
|
||||
|
@ -54,15 +63,24 @@ public interface SerialPortDataListener extends EventListener
|
|||
* @see SerialPort#LISTENING_EVENT_DATA_AVAILABLE
|
||||
* @see SerialPort#LISTENING_EVENT_DATA_RECEIVED
|
||||
* @see SerialPort#LISTENING_EVENT_DATA_WRITTEN
|
||||
* @see SerialPort#LISTENING_EVENT_BREAK_INTERRUPT
|
||||
* @see SerialPort#LISTENING_EVENT_CARRIER_DETECT
|
||||
* @see SerialPort#LISTENING_EVENT_CTS
|
||||
* @see SerialPort#LISTENING_EVENT_DSR
|
||||
* @see SerialPort#LISTENING_EVENT_RING_INDICATOR
|
||||
* @see SerialPort#LISTENING_EVENT_FRAMING_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_FIRMWARE_OVERRUN_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_SOFTWARE_OVERRUN_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_PARITY_ERROR
|
||||
*/
|
||||
public abstract int getListeningEvents();
|
||||
|
||||
/**
|
||||
* Called whenever one of the serial port events specified by the {@link #getListeningEvents()} method occurs.
|
||||
* Called whenever one or more of the serial port events specified by the {@link #getListeningEvents()} method occurs.
|
||||
* <p>
|
||||
* Note that your implementation of this function should always perform as little data processing as possible, as the speed at which this callback will fire is at the mercy of the underlying operating system. If you need to collect a large amount of data, application-level buffering should be implemented and data processing should occur on a separate thread.
|
||||
*
|
||||
* @param event A {@link SerialPortEvent} object containing information and/or data about the serial event that occurred.
|
||||
* @param event A {@link SerialPortEvent} object containing information and/or data about the serial events that occurred.
|
||||
* @see SerialPortEvent
|
||||
*/
|
||||
public abstract void serialEvent(SerialPortEvent event);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* SerialPortEvent.java
|
||||
*
|
||||
* Created on: Feb 25, 2015
|
||||
* Last Updated on: Nov 18, 2021
|
||||
* Last Updated on: Dec 17, 2021
|
||||
* Author: Will Hedgecock
|
||||
*
|
||||
* Copyright (C) 2012-2021 Fazecast, Inc.
|
||||
|
@ -50,6 +50,15 @@ public class SerialPortEvent extends EventObject
|
|||
* {@link SerialPort#LISTENING_EVENT_DATA_AVAILABLE}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_RECEIVED}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_WRITTEN}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_BREAK_INTERRUPT}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_CARRIER_DETECT}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_CTS}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DSR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_RING_INDICATOR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_FRAMING_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_FIRMWARE_OVERRUN_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_SOFTWARE_OVERRUN_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_PARITY_ERROR}<br>
|
||||
* <p>
|
||||
* Note that event-based write callbacks are only supported on Windows operating systems. As such, the {@link SerialPort#LISTENING_EVENT_DATA_WRITTEN}
|
||||
* event will never be called on a non-Windows system.
|
||||
|
@ -59,6 +68,15 @@ public class SerialPortEvent extends EventObject
|
|||
* @see SerialPort#LISTENING_EVENT_DATA_AVAILABLE
|
||||
* @see SerialPort#LISTENING_EVENT_DATA_RECEIVED
|
||||
* @see SerialPort#LISTENING_EVENT_DATA_WRITTEN
|
||||
* @see SerialPort#LISTENING_EVENT_BREAK_INTERRUPT
|
||||
* @see SerialPort#LISTENING_EVENT_CARRIER_DETECT
|
||||
* @see SerialPort#LISTENING_EVENT_CTS
|
||||
* @see SerialPort#LISTENING_EVENT_DSR
|
||||
* @see SerialPort#LISTENING_EVENT_RING_INDICATOR
|
||||
* @see SerialPort#LISTENING_EVENT_FRAMING_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_FIRMWARE_OVERRUN_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_SOFTWARE_OVERRUN_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_PARITY_ERROR
|
||||
*/
|
||||
public SerialPortEvent(SerialPort comPort, int serialEventType)
|
||||
{
|
||||
|
@ -75,6 +93,15 @@ public class SerialPortEvent extends EventObject
|
|||
* {@link SerialPort#LISTENING_EVENT_DATA_AVAILABLE}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_RECEIVED}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_WRITTEN}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_BREAK_INTERRUPT}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_CARRIER_DETECT}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_CTS}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DSR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_RING_INDICATOR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_FRAMING_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_FIRMWARE_OVERRUN_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_SOFTWARE_OVERRUN_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_PARITY_ERROR}<br>
|
||||
* <p>
|
||||
* Note that event-based write callbacks are only supported on Windows operating systems. As such, the {@link SerialPort#LISTENING_EVENT_DATA_WRITTEN}
|
||||
* event will never be called on a non-Windows system.
|
||||
|
@ -85,6 +112,15 @@ public class SerialPortEvent extends EventObject
|
|||
* @see SerialPort#LISTENING_EVENT_DATA_AVAILABLE
|
||||
* @see SerialPort#LISTENING_EVENT_DATA_RECEIVED
|
||||
* @see SerialPort#LISTENING_EVENT_DATA_WRITTEN
|
||||
* @see SerialPort#LISTENING_EVENT_BREAK_INTERRUPT
|
||||
* @see SerialPort#LISTENING_EVENT_CARRIER_DETECT
|
||||
* @see SerialPort#LISTENING_EVENT_CTS
|
||||
* @see SerialPort#LISTENING_EVENT_DSR
|
||||
* @see SerialPort#LISTENING_EVENT_RING_INDICATOR
|
||||
* @see SerialPort#LISTENING_EVENT_FRAMING_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_FIRMWARE_OVERRUN_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_SOFTWARE_OVERRUN_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_PARITY_ERROR
|
||||
*/
|
||||
public SerialPortEvent(SerialPort comPort, int serialEventType, byte[] data)
|
||||
{
|
||||
|
@ -101,13 +137,22 @@ public class SerialPortEvent extends EventObject
|
|||
public final SerialPort getSerialPort() { return (SerialPort)source; }
|
||||
|
||||
/**
|
||||
* Returns the type of serial port event that caused this object to be created.
|
||||
* Returns the type of serial port events that caused this object to be created.
|
||||
* <p>
|
||||
* Return values will be one and only one of the following:
|
||||
* Return value will be a bitmask containing one or more of the following items OR'd together:
|
||||
* <p>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_AVAILABLE}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_RECEIVED}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DATA_WRITTEN}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_BREAK_INTERRUPT}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_CARRIER_DETECT}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_CTS}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_DSR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_RING_INDICATOR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_FRAMING_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_FIRMWARE_OVERRUN_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_SOFTWARE_OVERRUN_ERROR}<br>
|
||||
* {@link SerialPort#LISTENING_EVENT_PARITY_ERROR}<br>
|
||||
* <p>
|
||||
* Note that event-based write callbacks are only supported on Windows operating systems. As such, the {@link SerialPort#LISTENING_EVENT_DATA_WRITTEN}
|
||||
* event will never be called on a non-Windows system.
|
||||
|
@ -116,6 +161,15 @@ public class SerialPortEvent extends EventObject
|
|||
* @see SerialPort#LISTENING_EVENT_DATA_AVAILABLE
|
||||
* @see SerialPort#LISTENING_EVENT_DATA_RECEIVED
|
||||
* @see SerialPort#LISTENING_EVENT_DATA_WRITTEN
|
||||
* @see SerialPort#LISTENING_EVENT_BREAK_INTERRUPT
|
||||
* @see SerialPort#LISTENING_EVENT_CARRIER_DETECT
|
||||
* @see SerialPort#LISTENING_EVENT_CTS
|
||||
* @see SerialPort#LISTENING_EVENT_DSR
|
||||
* @see SerialPort#LISTENING_EVENT_RING_INDICATOR
|
||||
* @see SerialPort#LISTENING_EVENT_FRAMING_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_FIRMWARE_OVERRUN_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_SOFTWARE_OVERRUN_ERROR
|
||||
* @see SerialPort#LISTENING_EVENT_PARITY_ERROR
|
||||
*/
|
||||
public final int getEventType() { return eventType; }
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue