obd-c's People
obd-c's Issues
Initial project layout
Introduction
Let's think about the initial layout for the libobd project. How do we intend for end-users to communicate to the library?
First off - what do they want to do?
Retrieve OBD2 engine codes
Maybe the MIL is on, and the user wants to retrieve the diagnostic codes from the engine using standard OBD2 (without needing to know anything about the specific scanner used).
They would connect to the vehicle using any transport they want, and once a connection is established they can start communicating via OBD2.
E.g.
int main() {
// Initiate a connection.
BTTransport bt;
if (!bt.ConnectToMAC(const uint8_t* mac))
return 1;
// Create an ELM327 scanner on top of the BT transport.
ELM327 elm(bt);
// Create OBD2 on top of the scanner.
// OBD2 will have the protocol logic, which should be able to work at an abstract level across scanners.
OBD2 obd(elm);
// We could also just return an array of codes, or something.
obd.EnumMILCodes([] () {
// ... do something
});
// Object destructor will shut down the connection implicitly.
}
Spy on CAN bus traffic
This is going to require knowledge of the scanner being used. The user would initialize a transport and a scanner, and then ask the scanner politely to start spying on CAN bus traffic.
With the ELM327 scanner, this puts it into a mode where we cannot send any other commands (it dominates traffic to the scanner).
Fake ELM327 Device
Introduction
I hate sitting out in my hot car debugging this stuff. I'd like to be fat and lazy and debug this from the comfort of my shit-infested couch. So, this is a solution to that.
This device emulates the functionality of an ELM327 chip so we can develop logic around it.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.