Skip to content

Releases: pschichtel/JavaCAN

Release 2.3.1

06 Apr 08:53
93d51f0
Compare
Choose a tag to compare

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

24 Mar 10:04
4b03971
Compare
Choose a tag to compare

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

06 Feb 18:46
c73f47c
Compare
Choose a tag to compare

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

27 Mar 16:47
c46180d
Compare
Choose a tag to compare

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

25 Mar 23:57
24bb696
Compare
Choose a tag to compare

Version 3.0

Plenty of Breaking Changes

  • Split the library into two modules: javacan-core and javacan-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

31 Aug 16:27
6e4e4d4
Compare
Choose a tag to compare

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

31 Aug 14:15
512683e
Compare
Choose a tag to compare

This is a small 2.x release that backports a nicer API to create and modify all the configuration objects.

Release 2.1

05 Aug 22:50
849017b
Compare
Choose a tag to compare

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

08 Jan 16:02
7f28b77
Compare
Choose a tag to compare

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

23 Aug 08:39
6248cc0
Compare
Choose a tag to compare

This build actually has working cross-compiled libraries and initial ISO-TP support in the form the CAN_ISOTP sockets.