Releases: pschichtel/JavaCAN
Release 2.3.1
A small release including:
- a tiny fix in the ISOTP test suite to confirm to new validations introduced by recent kernels
- buffer copying handler proxies to ease working with the IsotpListener and CanBroker in a multi threaded environment.
Release 3.2.0
The release mostly brings builds improvements, specifically:
- the builds is now reproducible, so you should be able to locally build the identical jar files locally
- the build now support static linking, which currently is done for the newly supported
armv7l
architecture - the riscv32 and riscv64 architectures are now part of the release distribution
- the build can be configured to use a different container for native compilation, but it must still behave similar to the dockcross containers.
- Simple github workflow to build commits, testing cannot currently done on github because it requires a vcan device.
Release 3.1.0
The release brings mostly documentation updates, however two significant changes exist:
- Some implementation classes have been made final since they were never meant to be extended. If you did extend these, please contact me so we can find a proper solution for your use case. I assume this is unlikely to affect anyone, so while this is technically a breaking change I only raised the minor version.
- To provide clearer errors when configuring invalid options on sockets some of the validations the kernel interface does have been duplicated to JavaCAN. In case you want to set options not known to JavaCAN, some of the kernel validations change in an incompatible way or if you want to avoid the (minimal) overhead, simply use the new
setOptionUnsafe
method that will skip the validation.
Release 3.0.1
Previous 3.0.0 release is functional, but failed to deploy to maven central due to a maven misconfiguration. This release is available now.
Release 3.0
Version 3.0
Plenty of Breaking Changes
- Split the library into two modules:
javacan-core
andjavacan-epoll
- Drop runtime architecture detection in favor of per-architecture classified jars with the native library
- Replaced the SelectableChannel and Selector implementations by a very similar yet different set of interfaces based around IOSelector
- Various other small improvements
Release 2.3
This release adds new unsafe variants of read and write to allow reading and writing the socketcan data as-is into/from buffers. This should help with the PLC4X integration (#22).
Release 2.2
This is a small 2.x release that backports a nicer API to create and modify all the configuration objects.
Release 2.1
This release is mostly a feature release. The biggest new feature is the binding to the kernel's CAN_BCM support. Thanks to @mscheibler for the initial implementation. A lot of the error handling logic around the native interface has been corrected/improved. As part of this effort a code generator has been implemented to generates the interface code both from java to C and C to java, which can be found here.
One small API behaviour breakage has been introduced: Previously CanFrame.create(...) passed all 32 bits of the id on to the frame content. In 2.1.0 this is not the case any more. Instead, it will only use the first 11 bits as used by an SFF frame. New methods have been introduced that can provide EFF frames and to create a frame from the complete 32 bits as before. See here
Also thanks to @tomocesnik and @mvitorovic for their testing and fixing efforts around the selector and event loop code, which made this more robust and inspired future changes.
Release 2.0
This release is basically a full rewrite of the 1.x releases. The library now completely integrates with Java's NIO APIs: Channel, Selector, ByteBuffer and so on. ISOTP has now been implemented based on the Kernel module by @hartkopp: can-isotp. Both CAN_RAW and CAN_ISOTP channels are selectable, however only using a customized SelectorProvider and Selector implementation. More options and a few helper classes have been integrated as well to ease working with CAN.
Release 1.2
This build actually has working cross-compiled libraries and initial ISO-TP support in the form the CAN_ISOTP sockets.