Releases: Fazecast/jSerialComm
Releases · Fazecast/jSerialComm
jSerialComm v2.8.5
- Retry native write() call upon errno == EAGAIN on Posix
- Remove all FTDI native driver calls to FT_Open, FT_Close, FT_GetComPort, and FT_SetDriverLatency on Windows
- Update FTDI enumeration using registry keys directly on Windows
- Search for serial modem devices in addition to plain serial devices on Windows
- Set FTDI latency using the registry on Windows (requires admin first time)
- Only set FTDI latency when calling openPort()
- Ignore LPT parallel devices on Windows
jSerialComm v2.8.4
- Fixed bug where calling
removeDataListener()
on an unopened port caused a crash
jSerialComm v2.8.3
- RS485-mode ioctl errors are no longer treated as fatal errors
- Small updates to getLastErrorLine() and getLastError() when a port has failed to open
- All JNI functions are now checked for and cleared of exceptions at runtime
- The portHandle pointer returned from native code to Java is guaranteed to be 0 if there is an error, else a valid number
- All "open port" checks now verify that the portHandle is not equal to exactly 0
- Implemented full functionality for OpenBSD x86 and amd64
jSerialComm v2.8.2
- Allow returning of native error code if port does not open successfully
- Fix bug with openPort() failing when RS485 mode does not exist
jSerialComm v2.8.1
- Attempt to load shared library from user's home directory if it failed to load from tmp directory for whatever reason
- Fix Solaris loading directories for correct architecture
- Make shared library non-writeable
jSerialComm v2.8.0
- Add Java property fazecast.jSerialComm.appid so multiple applications using jSerialComm simultaneously do not interfere
- Fix RS485 RTS delay timing bugs
- Update documentation to specify how to use a different tmp directory for native library extraction
- Add option to disable acquiring exclusive lock of a serial port
- Implement remaining RS485 configuration options (rs485EnableTermination and rs485RxDuringTx)
- Overhaul build system to entirely use cross-compilers
- Add support for Windows on ARM
- Add FreeBSD support for x86, x86_64, and ARM64 architectures
- Add method to return full OS-defined system path to the port (
getSystemPortPath()
) - Various documentation updates and clarifications
- Properly clear XON/XOFF flow control settings
- Ensure XOFF is disabled at startup time when no XON/XOFF flow control settings desired
- Ignore SIGIO POSIX signals
- Update built-in MacOS baud rates and function deprecations
- Reduce latency timer in Windows-connected FTDI devices
- Completely overhaul JNI boundary, port settings and descriptors now stored entirely in C
- Add methods to return native library error codes and source file locations (
getLastErrorCode()
andgetLastErrorLocation()
) - Stop auto-closing serial ports upon every native error (allow user to handle errors themselves)
- Add open/close native code test case and Makefile
- Mov compiler and build configuration files out of the source code repo
- Ensure port handle exists before attempting to close it
- Remove "final" keyword from SerialPortEvent class so that it can be mocked
- Ensure that writeBytes() actually writes all passed-in bytes before returning
- Verify that port is still open when writing through OutputStream
- Synchronize open/close code on Java class as well as instance
- Add new functionality to set custom XON/XOFF characters (
setXonXoffCharacters(byte xonStartCharacter, byte xoffStopCharacter)
) - Fix event-based reading issues in Windows
- Move event-based reading code to native C instead of Java on Posix
- Add test case for closing a port from a separate thread than its reading thread
- Force-switch port to be non-blocking before attempting to close it
- Add new functionality to flush RX/TX buffers in the OS and driver-side (
flushIOBuffers()
) - Attempt to load backup native library version if primary version fails
- Print architecture of the native library trying to be loaded if it fails
- Update README to explain how to use non-default system temporary (tmp) directory
- Add new functionality to retrieve physical port location (
getPortLocation()
) that stays the same across reboots - Add Java shutdown hook to force all open ports to close at end of JVM life
- Fix Windows enumeration bug where wrong description will get returned for correct port
- Add full range of event listener options (RI, DSR, CTS, BRK, FE, PE)
- Add new "Port Disconnected" event listener (LISTENING_EVENT_PORT_DISCONNECTED)
- Update documentation to specify OS limitations for getRead/WriteBufferSize() methods
- Removed/updated all deprecated Windows-specific function calls
jSerialComm v2.7.0
- Add native support for Apple Silicon (M1)
- Add native support for PowerPC
- Fix port name mangling if invalid port path is passed in
- Throw SerialPortInvalidPortException if descriptor search fails
- Allow read timeout exceptions to be suppressed within InputStream
- Add Gradle wrapper and automate builds
jSerialComm v2.6.2
- Set "low latency mode" on Linux, if it exists
- Do not tcdrain before closing port in case port has stopped responding (which causes a freeze)
- Update documentation to indicate that getCommPorts() always returns a new unique array of SerialPort instances
jSerialComm v2.6.1
- Merge Android-specific code into General POSIX codebase
- Deprecated Android architectures removed
- Updated Crosstool-NG config files to work with newer Crosstool version
- Sync/force write data before closing port
- Update error strings to better indicate IO errors
- Only enable BRKINT flag if not in RS485 mode
- Check return value of SetupComm in Windows
- Return boolean value when changing port configurations after opened to indicate success/failure
- Redefine fdatasync to fsync on Mac OS
- Do not completely reset port configuration when updating config parameters
- Updated Javadocs
jSerialComm v2.6.0
- Created new SerialPortMessageListenerWithExceptions class to allow users to handle event-based exceptions
- In Windows, use "CreateProcess" to directly preset DTR/RTS modes instead of calling system()
- Add ability for user to specify whether RTS is high/low when sending in RS485 mode
- Ensure data was actually received in waitForEvent on Windows
- Add additional ARM version indicator for choosing correct native binary
- Additional test case updates
- Use flock() to ensure exclusive port access instead of TIOCEXCL
- Perform full port closure routing upon native error
- Synchronize open/close/setup calls in Java to avoid race conditions
- Officially remove OSX 32-bit support
- Remove isOpened field and detect openness based on file descriptor instead
- Break out of event waiting loop based on Java-side boolean value
- Force-interrupt event waiting thread in case it gets stuck in native/driver code
- Update Gradle build file to use bnd instead of the deprecated osgi plugin