Android下发送和接收OBD数据
来源:互联网 发布:易语言驱动保护源码 编辑:程序博客网 时间:2024/06/02 14:32
服务:
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
阅读前请了解:
本文只提供OBD相关知识的入门 ,文中不提供相关解决方案。
如需技术服务,可以私聊我。
私聊内容需要提供如下信息:
1. 需求描述(请描述清楚,否则不给于回馈)
2. 预期开发周期
3. 预期报价
) 对符合要求的顾客,我们将给于相关的 开发周期 和 报价。
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from:
http://marshal.easymorse.com/archives/5025
OBD,On-Board Diagnostics,车载自动诊断系统。你可以把它看做汽车上的电脑。现在的汽车,如果不是出厂年份太早,基本上都带有OBD接口,是国际标准。
连接OBD可以获取到很多汽车状态数据,在驾驶员位置附近,有OBD接口,我的高尔夫6,接口在方向盘左下方位置。可以使用ELM327蓝牙转接口连接OBD接口,这样就可以无线蓝牙连接。我使用的ELM327转接口:
Android有连接ELM327的app,比如Torque,有功能简化的免费版本。
如果想编写Android连接ELM327的程序,需要解决以下几个问题:
- 如何通过蓝牙连接到ELM327设备
- 发送和接收数据的格式
好在已经有人编写了开源项目,可实现基本的ELM327通讯的app,链接见:
https://code.google.com/p/android-obd-reader/
该作者编写的代码,依赖maven3,比较麻烦。我改写了他的代码:
- 不在需要依赖maven3,直接可导入到IDE工具生成项目
- 增加了手工输入命令和显示原始结果的功能
效果见:
代码共享在这里:
https://github.com/MarshalW/MyObdDemo
因为是开源项目,对容错和自动化处理不够,要按照一定的次序执行,否则会app崩溃:
- 启动android蓝牙
- 在android蓝牙设置中对ELM327做蓝牙配对
- 在app菜单中,选择Settings,在列表中选择Bluetooth Devices,然后在对话框中选择配对的设备(下面有截图)
- 在app菜单中,选择Start Live Data,等2秒钟左右,界面将显示发送命令接收到的内容
- 这时候,可以在上面的对话框中输入OBD命令,确切的说,应该叫OBD II PID,可参见:http://en.wikipedia.org/wiki/OBD-II_PIDs#Bitwise_encoded_PIDs
该项目主要代码:
- ObdGatewayService,是一个Android Service,可以跑在系统后台,这个Service用来连接蓝牙,并发送接收数据
- ObdCommand,是个类族,用于封装命令和返回的结果,我写了个继承ObdCommand的子类,MyObdCommand,用于手工输入的命令和获得原始返回数据
- MainActivity,我加了个文本框和相关界面组件,用于接收用户输入数据,然后,将数据封装为MyObdCommand,再加入到ObdGatewayService的队列中去执行
如能理解这些,就可以在这个项目代码基础上,编写自己的基于读取ELM327的应用了。
- Android下发送和接收OBD数据
- Android下发送和接收OBD数据
- Windows下数据的接收和发送
- 数据发送和接收
- udp下接收发送数据
- linux多线程下打开串口发送和接收数据
- linux多线程下打开串口发送和接收数据
- linux多线程下打开串口发送和接收数据
- android发送/接收json数据
- Android接收/发送jSON数据
- Android接收/发送jSON数据
- android发送/接收json数据
- android发送/接收json数据
- android发送/接收json数据
- android发送/接收json数据
- WSAAsyncSelect发送和接收数据
- WSAAsyncSelect发送和接收数据
- L2CAP数据发送和接收
- 解决内部元素onMouseOver/onMouseOut事件冒泡触发父元素的相应事件
- Edit Distance
- 如何处理海量数据
- nutch在eclipse上运行时错误
- WIN32串口编程
- Android下发送和接收OBD数据
- jquery的extend和fn.extend
- MVC中Html.EditorFor宽度及高度怎么设定
- Android源码学习—系统启动过程
- Submission Details
- 算法入门7:分支限界法
- 用android安卓手机远程控制编辑Word文档
- ERRO:cannot launch the modelsim-altera software because you did not specify the path...
- the class should be static or leaks might occus