【问题标题】:Android OBD-II: How to get distance traveled in meters?Android OBD-II:如何以米为单位获得距离?
【发布时间】:2016-09-06 12:09:08
【问题描述】:

我正在制作一个通过蓝牙连接到 OBD-II 设备 (ELM327 - http://www.dx.com/p/elm327-bluetooth-odb2-v1-5-car-diagnostic-interface-126921#.V86wdih97IU) 的 Android 应用程序。

我还使用https://github.com/pires/obd-java-api/ 库从设备中获取数据。

我能够毫无问题地连接到设备并获取数据,但是当我尝试检索距离时,它总是以 KM 为单位返回它。有没有办法以米为单位获得旅行的距离?

我尝试使用 Torque Lite 应用程序 (https://play.google.com/store/apps/details?id=org.prowl.torquefree&hl=en),它能够以 KM 为单位返回小数点后一位 (0.0 KM) 的行程距离。

想知道它使用什么命令来实际获取值,或者它是从其他东西中派生出来的。

【问题讨论】:

  • 你现在用什么命令来获取公里的距离?
  • 我正在使用新的 DistanceSinceCCCommand();它发送一个“01 31”命令。
  • @lordian - 你是怎么做到的?我遇到了同样的问题

标签: android obd-ii


【解决方案1】:

不幸的是,根本不存在用于行驶距离的标准 PID。有关标准 PID 的列表,请参阅 this

您现在使用的代码DistanceSinceCCCommand 使用标准模式 01 PID 0x31 来检索自上次清除代码命令以来行驶的距离。 PID 的单位为整数公里,因此无法为您提供所需的精度。

我尝试使用 Torque Lite 应用程序 (https://play.google.com/store/apps/details?id=org.prowl.torquefree&hl=en),它能够返回以 KM 为单位的行程距离,带小数点后一位 (0.0 KM)。

扭矩应用程序使用来自 android 设备的位置 (GPS) 信息来记录地理位置。我猜它正在使用该信息来确定行程距离,精度为 0.1 公里。

推荐

如果您需要这种准确性,我建议您跟随他们的领导并使用位置数据来确定行驶距离。

使用来自google location apiLocation.distanceTo(location) 的位置侦听器来确定增量位置更改。

关于增强型 PID 的更多信息

增强型 PID(也称为 DID)是特定于车辆的模式 22 参数。

还有许多其他车辆参数未公开记录,但可能会提供更好的精度。它们是特定于车辆的(但通常对来自同一制造商的部分车辆通用)。它们是模式 22 增强型 PID。 Here's a list of old Ford DIDs。如果有人能找到更新的模式 22 DID 列表,请编辑我的帖子并添加它,因为我知道有很多比我公开发现的更多。

【讨论】:

  • 感谢您的回答,但请记住,GPS 信号会在隧道或停车场丢失。
【解决方案2】:

您可以定期读取 OBD-II 模式 1、PID 0D 以获取速度。如果您经常阅读并应用距离 = 速度 * 时间计算,这将给出一个不错的距离读数(以米为单位)。

【讨论】:

    【解决方案3】:

    大部分类都实现了

    ObdCommand 
    

    有一个方法

    useImperialUnits(boolean)
    

    所以,如果你使用 DistanceSinceCCCommand,那么

    DistanceSinceCCCommand distanceSinceCCCommand = new DistanceSinceCCCommand();
    distanceSinceCCCommand.useImperialUnits(true);
    

    会进行转换。 如果您检查库源,您会发现有趣的东西。

    【讨论】:

      【解决方案4】:

      你也可以使用

      getImperialUnit()
      

      如果您只想要数值而不是带有尾随单位标签的字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-01
        • 1970-01-01
        • 2018-04-02
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多