Skip to content

Commit 81cf2f6

Browse files
authored
Update README.md
1 parent 3642641 commit 81cf2f6

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
# JavaCAN [![Maven Central](https://img.shields.io/maven-central/v/tel.schich/javacan.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22tel.schich%22%20AND%20a:%22javacan%22)
22

3-
A complete implementation of Java's [SelectableChannel](https://docs.oracle.com/javase/8/docs/api/java/nio/channels/SelectableChannel.html) API
4-
for CAN_RAW, CAN_BCM and CAN_ISOTP sockets.
3+
Bindings for SocketCAN's CAN_RAW, CAN_BCM and CAN_ISOTP sockets with full support for blocking and non-blocking IO. Non-blocking IO is possible using the epoll module, that provides an API very similar to Java's Selector API.
54

6-
Even though the JDK provides an epoll based Selector implementation, that implementation is unfortunately not compatible with custom Channel implementations. For that reason a custom `SelectorProvider` is required, that supplies an epoll based `Selector` compatible with CAN Channels.
5+
Implementing Java's SelectableChannel API is not possible with EPoll and SocketCAN due to various hardcoded assumptions in the JDK.
76

87
## What works?
98

109
* Creating and binding CAN_RAW, CAN_BCM and CAN_ISOTP sockets
1110
* Sending and receiving standard CAN and CAN-FD frames with and without EFF
1211
* Getting and setting all supported socket options
13-
* Event-driven networking using a [Selector](https://docs.oracle.com/javase/8/docs/api/java/nio/channels/Selector.html)
12+
* Event-driven networking using an [IOSelector](https://github.com/pschichtel/JavaCAN/blob/master/epoll/src/main/java/tel/schich/javacan/select/IOSelector.java)
1413
* Rough test coverage
1514

1615
## What is missing?
1716

1817
* Support for other CAN protocols (e.g. CAN_MCNET)
18+
* A [netty](https://netty.io) integration (see #20)
19+
* BSD Support
1920

2021
## Related Projects
2122

@@ -37,7 +38,7 @@ Currently the full build process includes the following architectures:
3738
* armv7
3839
* aarch64
3940

40-
The implementation can handle word sizes up to 64 bit and is byte order aware.
41+
The implementation can handle word sizes up to 64 bit and is byte order aware. If you need another architecture, feel free to ask for it!
4142

4243
## How to use
4344

0 commit comments

Comments
 (0)