MCPcopy Index your code
hub / github.com/eltonvs/java-obd-api

github.com/eltonvs/java-obd-api @v0.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.1 ↗ · + Follow
390 symbols 676 edges 82 files 328 documented · 84%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Java OBD API

==============

An OBD-II API written in Java. Based on obd-java-api.

Quickstart

Android

Just include it into the build.gradle file:

   dependencies {
     ...

     // Java OBD API
     implementation 'com.github.eltonvs:java-obd-api:0.0.1'
   }

Maven

You only need to include it into your pom.xml file:

   <dependency>
     <groupId>com.github.eltonvs</groupId>
     <artifactId>java-obd-api</artifactId>
     <version>0.0.1</version>
   </dependency>

Sample Usage

After pairing and establishing a Bluetooth connection with your OBD device.

// retrieve Bluetooth socket
socket = ...; // specific to the VM you're using (Java, Android, etc.)

// Group many obd commands into a single command ()
ObdCommandGroup obdCommands = new ObdCommandGroup();
obdCommands.add(new EchoOffCommand());
obdCommands.add(new LineFeedOffCommand());
obdCommands.add(new TimeoutCommand(timeout));
obdCommands.add(new SelectProtocolCommand(protocol));

// Run all commands at once
obdCommands.run(socket.getInputStream(), socket.getOutputStream());

Contributing

We're open for contributions!

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the Apache 2.0 - see the LICENSE file for details

Acknowledgments

  • Paulo Pires - Creator of the obd-java-api, on which this project was based.

Extension points exported contracts — how you extend this code

SystemOfUnits (Interface)
This interface will define methods for converting to/from imperial units and from/to metric units. [10 implementers]
src/main/java/br/ufrn/imd/obd/commands/SystemOfUnits.java
IObdCommand (Interface)
Interface with OBD Command behaviours [4 implementers]
src/main/java/br/ufrn/imd/obd/commands/IObdCommand.java

Core symbols most depended-on inside this repo

getResult
called by 23
src/main/java/br/ufrn/imd/obd/commands/IObdCommand.java
toString
called by 16
src/main/java/br/ufrn/imd/obd/commands/IObdCommand.java
replaceAll
called by 12
src/main/java/br/ufrn/imd/obd/utils/RegexUtils.java
getCommand
called by 9
src/main/java/br/ufrn/imd/obd/enums/AvailableCommand.java
getValue
called by 7
src/main/java/br/ufrn/imd/obd/enums/FuelType.java
removeAll
called by 5
src/main/java/br/ufrn/imd/obd/utils/RegexUtils.java
getName
called by 4
src/main/java/br/ufrn/imd/obd/commands/IObdCommand.java
clean
called by 4
src/main/java/br/ufrn/imd/obd/exceptions/ResponseException.java

Shape

Method 307
Class 76
Enum 5
Interface 2

Languages

Java100%

Modules by API surface

src/main/java/br/ufrn/imd/obd/commands/ObdCommand.java31 symbols
src/main/java/br/ufrn/imd/obd/commands/ObdCommandGroup.java13 symbols
src/main/java/br/ufrn/imd/obd/commands/control/GenericTroubleCodeCommand.java11 symbols
src/main/java/br/ufrn/imd/obd/commands/IObdCommand.java10 symbols
src/main/java/br/ufrn/imd/obd/enums/AvailableCommand.java9 symbols
src/main/java/br/ufrn/imd/obd/commands/temperature/TemperatureCommand.java9 symbols
src/main/java/br/ufrn/imd/obd/commands/protocol/GenericAvailablePidsCommand.java9 symbols
src/main/java/br/ufrn/imd/obd/commands/pressure/PressureCommand.java9 symbols
src/main/java/br/ufrn/imd/obd/commands/engine/SpeedCommand.java9 symbols
src/main/java/br/ufrn/imd/obd/commands/control/DistanceSinceCCCommand.java9 symbols
src/main/java/br/ufrn/imd/obd/commands/control/DistanceMILOnCommand.java8 symbols
src/main/java/br/ufrn/imd/obd/commands/fuel/ConsumptionRateCommand.java7 symbols

For agents

$ claude mcp add java-obd-api \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact