This package contains the core abstractions for establishing communication links with I-bus and K-bus vehicle networks found in various car models (primarily BMW).
The abstractions provided by this package include: packets, messages, parsers, module descriptors and vehicle network profiles.
Furthermore a set of I/O interfaces and classes are provided for setting up a communication link to read and write I/K-bus packets using generic InputStream
and OutputStream
objects.
By itself this package only offers the foundation for building applications that process I/K-bus packets.
To actually decode/parse packets and to obtain their semantics you need an additional package.
Soon I will publish an ikbus-bmw
package that provides an I/K-bus network profile for BMW E38, E39, E46, and E53 models.
As soon as this package is published I will add a link to that repository.
In addition you may want your application to communicate with the I/K-bus network of your vehicle.
For this you will need a physical interface like Rolf Resler's IBUS interface.
This IBUS interface adds a serial/COM port to your computer, which can be used to read and write data to/from the I/K-bus network of your vehicle.
The ikbus-jssc-connector
package provides a SerialPortIKBusConnection
class that can be used to read and write I/K-bus packets from a serial port.
NOTE: This package is currently not yet available on Maven. I will fix this a.s.a.p.
To use this package in your application add the following Maven dependency:
<dependency>
<groupId>net.novazero.ikbus</groupId>
<artifactId>ikbus-core</artifactId>
<version>1.0.0</version>
</dependency>
Javadoc for this package can be found at the following location: https://dscheerens.github.io/docs/ikbus-core/latest/javadoc/
The most important classes and interfaces of the ikbus-core
package are listed below:
Interface / Class | Description |
---|---|
IKBusPacket |
Class that encapsulates I/K-bus packets. |
IKBusMessage |
Interface for classes that implement the semantics of I/K-bus messages. |
IKBusMessageParser |
Interface for classes that can parse I/K-bus messages from packets. |
UnknownIKBusMessageCatcher |
A class that implements IKBusMessageParser and which is used to capture unrecognized I/K-bus packets and wrap those in UnknownIKBusMessage instances. |
CompoundIKBusMessageParser |
A IKBusMessageParser implementation that iterates over a list of delegate parsers to parse I/K-bus messages. |
IKBusProfile |
Interface for classes that define an I/K-bus network profile, by providing an IKBusMessageParser and an IKBusModuleDescriptionProvider . |
IKBusConnection |
Interface to represent I/K-bus connections. Provides an IKBusPacketReader and an an IKBusPacketWriter . |
ikbus-jssc-connector
- I/K-bus communication link for serial ports.ikbus-bmw
- Provides an I/K-bus network profile for several BMW car models. (coming soon)
- I-BUS Inside - Great introduction of the I-bus in the BMW E39.
- BMW bus systems - Gives an overview of various bus systems used in BMW vehicles from 1991 to 2001.
- IBUS interface - A place where you can buy an USB and RS232 interface to connect to the I/K-bus of your vehicle.
- NavCoder - A Windows application to reprogram various BMW I-bus devices.