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.

时间: 2024-12-17 17:40:38

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

To avoid user confusion, app version updates must utilize the iOS built-in update mechanism.

March 11, 2015 at 3:08 AM 发件人 Apple 遇到问题(被拒绝原因) 苹果不让自己检测并提示用户更新了,我们给你截图了,自己看去吧.(貌似是新的审核规定,跪了...) 10.6 - Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Ap

app version updates must utilize the iOS built-in update mechanism(app的更新必须用iOS内置的更新机制)

今天有一个app审核被拒了,提示app里面包括了一个更新按钮,而app的更新必须用IOS的内置更新机制,而不是app里面含有更新视图 苹果的审核规则随时都会变,好吧,那就去掉了,重新打包上传审核

2015年App Store审核被拒的23个理由

分类:APP推广 iOS 应用提交审核要持续一周或者更久,在提交之前,我们一定要进行「自我审查」,避免被拒.ASO100 为大家收集整理了2015年 App Store 审核被拒的23个理由,并且附上官方拒绝理由原文,供大家上传应用时对照检查. 应用被拒分为两种:Binary Rejected 和 Metadata Rejected.前者需要重新上传应用并且重新排队,后者只需要修改信息,不需要重新上传应用. 1.应用内包含检查更新功能 iOS 应用的版本更新必须通过 App Store 进行,自

App Store审核被拒的23个理由

原文地址 iOS 应用提交审核要持续一周或者更久,在提交之前,我们一定要进行「自我审查」,避免被拒.ASO100 为大家收集整理了2015年 App Store 审核被拒的23个理由,并且附上官方拒绝理由原文,供大家上传应用时对照检查. 应用被拒分为两种:Binary Rejected 和 Metadata Rejected.前者需要重新上传应用并且重新排队,后者只需要修改信息,不需要重新上传应用. 1.应用内包含检查更新功能 iOS 应用的版本更新必须通过 App Store 进行,自身 Ap

AppStore审核

应用被拒分为两种:Binary Rejected 和 Metadata Rejected.前者需要重新上传应用并且重新排队,后者只需要修改信息,不需要重新上传应用. 1.应用内包含检查更新功能 iOS 应用的版本更新必须通过 App Store 进行,自身 App 内不能包含提示更新功能.从2015年3月起,所有包含检查更新功能的 App 都会被拒绝上架. 附被拒理由原文: Your app includes an update button or alerts the user to upda

app内含有版本更新操作被拒

Your app includes an update button (检查新版本) or alerts the user to update the app. To avoid user confusion, app version updates must utilize the iOS built-in update mechanism. We've attached screenshot(s) for your reference. 我们应用在设置页面有个"版本更新"的功能,苹

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

10.6 - Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your user interface is complex or less than very good, it may be rejected

被App Store拒绝的N个原因

作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天转发一下别人收集的常见的被拒的原因,以便更多开发者了解. 1.程序有重大bug,程序不能启动,或者中途退出. 2.绕过苹果的付费渠道,我们之前游戏里的用兑换码兑换金币. 3.游戏里有实物奖励的话,一定要说清楚,奖励由本公司负责,和苹果没有关系. 4.用到苹果的标志.(应用的设计和Apple的Logo风格太像了也会被拒) 5.网络功能不能正常访问. 6.图标不能点击,不能点击的图标要置灰,或者直

Appstore被拒的各种理由(持续更新中……)

1. QQ第三方登录,详情如下: 我们应用中用了QQ第三方登录,结果被拒(违反10.6),原因如果没有安装qq会跳转到一个页面提示下载qq,苹果不允许应用这样. We found that your app requires the installation of another app before it can be used, which is not in compliance with the App Store Review Guidelines. Apps should be ab