Какие есть библиотеки для работы с последовательным COM портом из Java
Играюсь с ардуинкой. Поэтому хочу наладить общение своей ардуинки с компьютером через последовательный порт. Так как я работаю на джаве, то выбор пал на джаву, а не на C# или библиотеку для работы с портами Qt. Но беда: нормальных библиотек для работы с COM портом из джавы я не нашел. Посоветуйте, пожалуйста, библиотеку, ее файлы и гайд по работе с ней. Желательно самое современное и стабильное.
Нашел библиотеку JSSC, но при открытии порта COM3 при помощи нее вываливается ошибка:
A fatal error has been detected by the Java Runtime Environment:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=18676, tid=11844
JRE version: OpenJDK Runtime Environment (16.0.1+9) (build 16.0.1+9) Java VM: OpenJDK 64-Bit Server VM (16.0.1+9, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) Problematic frame: C [jSSC-2.8_x86_64.dll+0xb5db]
No core dump will be written. Minidumps are not enabled by default on client versions of Windows
An error report file with more information is saved as:
Код, который я запускаю:
public class Main
{
private static SerialPort port = new SerialPort("COM3");
public static void main(String[] args)
{
try
{
port.openPort();
port.setParams(SerialPort.BAUDRATE_9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
port.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | SerialPort.FLOWCONTROL_RTSCTS_OUT);
port.addEventListener(new PortReader());
}
catch (SerialPortException e)
{
System.out.println(e);
}
}
private static class PortReader implements SerialPortEventListener
{
@Override
public void serialEvent(SerialPortEvent evt)
{
if (evt.isRXCHAR() && evt.getEventValue() > 0)
{
try
{
String data = port.readString(evt.getEventValue());
port.writeString("Got data");
}
catch (SerialPortException e)
{
System.out.println(e);
}
}
}
}
}