OpenXC : Any updates on plans for IOS?

Hi Thomas,

We're actively investigating this as we'd love to able to support all platforms,
but I can't say for sure what will be possible or when yet.

Actually, this would be a great place for some help and advice from the community.
Are there any iOS experts in the group?
What do you think would need to happen to make the OpenXC vehicle interface compatible with iOS?

Namely, these are the problems and questions we have:

Bluetooth and USB I/O (besides the A/V protocol stuff)
requires support for the iPod Accessory Protocol (iAP),
and that requires an Apple authentication chip on the vehicle interface.

It's currently difficult to impossible to do this even for hobbyist-oriented parts
without an expensive and proprietary license agreement with Apple (the MFi program).

Bluetooth low energy doesn't require iAP,
but it would require a completely different Bluetooth module on the vehicle interface
(from either SparkFun's BlueSMIRF RN-42 based board that we recommend right now
for the chipKIT vehicle interface, or the RN-41 that we're using in the prototype
of a streamlined kit that we just unveiled).

There are very few (or no?) Android devices that support Bluetooth 4.0 or BLE right now, too,
so it would effectively mean the vehicle interface would fork to support iOS.

Lastly, the max throughput over BLE is much less than Bluetooth or USB,
so we would have to add throttling to the data stream to intelligently decide
which data elements should be allowed through.

A vehicle that implements every OpenXC data point at the frequencies specified
on the OpenXC site right now runs at ~38KB/s.

Granted, some of the frequencies could be decreased without too much practical effect
on applications (torque at 60Hz is likely more than most applications need),
but restricting data is counter to our goals of opening up as much as possible.

We are trying to add more signals all of the time, and if we're fighting a ~35KB/s max throughput
on BLE it would be unfortunate (but not a dealbreaker).

If we were somehow able to get the data into iOS (e.g. over wifi, since the chipKIT-translator does
have an Ethernet port and could be hooked up to wifi router),
it's not clear what is the best way to keep the data stream alive and present the data to applications.

The Android library for OpenXC depends quite a bit on Android's freedom and flexibility
with background services.

We have one background service running in a remote process to manage the connection to the vehicle,
and the data stream is multiplex to any and all OpenXC-enabled apps running on the device.

With iOS the focus on foreground app performance means that background apps are significantly
restricted and killed off after a relatively short time.

From our own iOS experience and from our consultations with a few other experts,
the best suggestion seems to be that each OpenXC application in iOS would need
to manage its own connection to the vehicle interface,
and no more than 1 could be running at any time.

As soon as you switch away from an OpenXC data logging application,
for example to check an e-mail or switch music tracks, the data stream would stop.

That's a significant blocker for many applications.
That said, we have been focused almost exclusively on Android for the last year,
and there seem to be some applications out there that manage
to keep a data stream going in the background - if anyone has ideas on that, please speak up!

Chris

Thanks for clarifying the challenges in bringing OpenXC to the iOS platform.
I think you're okay with iOS background processes (there are a few ways
to bypass the 10-minute limit on running in the background)
so perhaps a possible way to work it would be the Ethernet/Wifi method,
but I agree that's a kludge at best.

As for the iPod Accessory Protocol (iAP), I don't think the license agreement
is expensive as you think, especially for an OpenSource project.

And even so... aren't you partially funded by Ford Motor Company?!? :)

There's a team of students at Carnegie Mellon University's Silicon Valley campus
who are working on an iOS port at the moment (hi Mari and Albert!)
and they recently hit a stumbling block - it seems that
even if you have iAP enabled Bluetooth hardware, there is no facility to use
the Serial Port Profile (SPP) from iOS!

That's what the current VI uses and without some sort of workaround,
it seems like Bluetooth 3.0 on iOS is a dead end.
Anyone have any insight?
Can we jam data through the HID profile at a reasonable data rate?

Chris

In terms of iOS, the best method would be Bluetooth low energy,
as this doesn't require the hardware to have an apple auth chip.
Data rates aren't great but you probably don't need much.
Thanks.

Do "Wireless interface" of BT and BLE support SPP?
Would you explain how to inquiry OBDII status by bluetooth protocol?
If we can achieve this by sending JSON format diagnostic request?

BLE does not support SPP as a standard. SPP is BT classic.
We use SPP on BT Classic. We use a generic GATT on BLE.
Both use the openxc-message-format to send/receive commands/data.

OpenXC : Any updates on plans for IOS?的更多相关文章

  1. App Store审核被拒的23个理由

    原文地址 iOS 应用提交审核要持续一周或者更久,在提交之前,我们一定要进行「自我审查」,避免被拒.ASO100 为大家收集整理了2015年 App Store 审核被拒的23个理由,并且附上官方拒绝 ...

  2. AppStore审核

    应用被拒分为两种:Binary Rejected 和 Metadata Rejected.前者需要重新上传应用并且重新排队,后者只需要修改信息,不需要重新上传应用. 1.应用内包含检查更新功能 iOS ...

  3. 提交AppStore被拒原因总结

    (1)Information Needed We began the review of your app but aren’t able to continue because we need ad ...

  4. 苹果拒绝App内部使用版本检测功能

    10.6 - Apple and our customers place a high value on simple, refined, creative, well thought through ...

  5. Expo大作战(四)--快速用expo构建一个app,expo中的关键术语

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  6. 新提交审核app保留检查更新入口将被拒绝

    3月起要求关闭所有App内的检查更新功能,苹果App Store将向用户自动提示更新,新提交审核版本如果保留检查更新入口审核时将被拒绝,请各产品团队重点关注. 10.6 - Apple and our ...

  7. 关于iOS后台问题( 一 )(ios后台刷新,后台定位,后台下载,真后台)

    关于iOS的后台,以下引用一些文段进行一下脑补,请同学们大致看一下,有个基础,原文出处 -------------------------------------------------------- ...

  8. iOS开发之表视图爱上CoreData

    在接触到CoreData时,感觉就是苹果封装的一个ORM.CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功 ...

  9. 那些年一起用过的iOS开发利器之Parse

    阅读此文章需要对Objective-C和iOS有一定的了解,完全没有基础的朋友请先阅读<让不懂编程的人爱上iPhone开发>系列教程. 什么是后台服务(back-end service)? ...

随机推荐

  1. LibreOJ β Round #2

    题解: 都是不错的技巧题目 t1暴力就不说了 t2dp是比较显然的 然后发现都是0,1用bitset优化 代码非常短 t3容易发现这个东西在不断合并 于是我们想到启发式合并 存疑:splay启发式合并 ...

  2. linux服务器查看tcp链接shell

    netstat -nt |awk '{++S[$NF]} END {for (a in S ) print a,S[a]}'

  3. Flink的容错

    checkpoint介绍 checkpoint机制是Flink可靠性的基石,可以保证Flink集群在某个算子因为某些原因(如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保 ...

  4. Python学习(二十三)—— 前端基础之jQuery

    转载自http://www.cnblogs.com/liwenzhou/p/8178806.html 一.jQuery入门 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQue ...

  5. PAT (Basic Level) Practise - 写出这个数

    题目链接:https://www.patest.cn/contests/pat-b-practise/1002 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试 ...

  6. 2018-03-11 20165235 祁瑛 Java第二周考试总结

    20165235 祁瑛 Java第二周考试总结 课后习题p16 代码编写 class Person { void speakHello (){ System.out.print("nin h ...

  7. unity打成aar上传到maven库的工具

    需求: 把unity打成aar并上传到maven库 其实就是把前两个博客整合了一下 unity打aar包工具 aar上传maven库工具 这里先说eclipse版的 package com.jinke ...

  8. ACM-ICPC Beijing 2016 Genius ACM(倍增+二分)

    描述 给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下: 从集合 S 中取出 M 对数(即 2∗M 个数,不能重复使用集合中的数,如果 S 中的整 数不够 M 对,则取到不能取为止),使 ...

  9. gitment Error:validation failed错误解决办法

    点击Initialize comments 突然跳转出一个错误Error:validation failed 经查阅之后发现 issue的标签label有长度限制!labels的最大长度限制是50个字 ...

  10. Codeforces 1027D Mouse Hunt (强连通缩点 || DFS+并查集)

    <题目链接> 题目大意: 有n个房间,每个房间都会有一只老鼠.处于第i个房间的老鼠可以逃窜到第ai个房间中.现在要清理掉所有的老鼠,而在第i个房间中防止老鼠夹的花费是ci,问你消灭掉所有老 ...