糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 车联网Apollo(阿波罗) 研究carlife车机端集成及开发 (WeLink carplay/carlife)

车联网Apollo(阿波罗) 研究carlife车机端集成及开发 (WeLink carplay/carlife)

时间:2024-02-06 13:24:55

相关推荐

车联网Apollo(阿波罗) 研究carlife车机端集成及开发 (WeLink carplay/carlife)

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景 - /ctripcorp/apollo

-- WeLink,carplay/carlife

Android车机、WinCE车机、Linux车机和Qnx车机四大车机层的手车互联方案。

四维图新趣驾WeLink,高德地图WINCE车机版。在相对价位更低的低配版本中仅支持CarLife,而高配则仅支持Carplay。

苹果carplay,百度carlife。

-- 汽车牌照及省级缩写:

"京", "沪", "鄂", "湘", "川", "渝", "粤", "港", "鲁", "津",

"浙", "豫", "贵", "青", "琼", "辽", "吉", "藏", "闽",

"冀", "苏", "皖", "赣", "甘", "陕", "新", "澳",

"黑", "宁", "云", "蒙", "晋", "桂" ;

-- CarLife开发总结- /zjfengdou30/article/details/81808551

百度CarLife是百度推出的车联网解决方案之一,目前分为前装集成与后装安装两种方式提供:

前装项目申请:/carlife/caroem/myproj

前装项目申请完成后,得到一个百度渠道号与集成资料

后装源码地址:/ApolloAuto/apollo-DuerOS/tree/master/CarLife-Android-Vehicle

apollo-DuerOS- /ApolloAuto/apollo-DuerOS/tree/master/CarLife-Android-Vehicle

--carlife需要改进的地方:(carlife, carplay)

1、和手机内的百度共享离线地图文件(感觉这个最傻,都是自己家的,居然不能共用!);

2、改近使用体验,各种不能连接、不能接打电话、不能使用自己的歌单……

3、插线导航的时候手机发烫严重,因为屏幕一直是亮的!

-- CarLife的开发完成,主要有以下几个工作点:

1. CarLife lib库的集成:lib库主要的功能就是提供CarLife服务数据通道的建立,数据报文的封装与解析,我们需要使用Android.mk文件将其加入Android系统的交叉编译环境中。

2. Usb通信: CarLife的握手与通信主要是通过Android的AOA方式来进行,具体通信方式已经单独作为介绍: USB开发——android AOA开发

3. CarLife视频显示: CarLife主要是采集手机端的视频流,然后通过USB以H.264的方式发送到车机端,车机端针对H.264进行硬解码播放,播放主要用MediaCodec, 具体使用方式已经单独作为介绍 android使用MediaCodec实现异步视频编解码

4. CarLife音频播放: CarLife的音频数据是以PCM流的形式发送到车机端,因此车机端只需要使用AudioTrack创建对应的配置来播放即可,注意音频流数据的字节序大小端是以小端的方式存在的。

-- 研究carlife车机端集成- /weixin_38148680/article/details/80586255

/**

* 思路:

* 1.连接方式AOA(Android Open Accessory)

* 2.车机端获取USB操作权限

* 3.检测Android 设备是否支持AOA协议

* 4.启动Android 设备的USB配件模式。

* 5.与Android 设备建立USB通信通道。

*/

百度CarLife是一款手机车机互联方案,通过CarLife用户可以将移动设备(Mobile Device,简称MD)上符合驾驶安全的应用通过多屏互动技术分享到车机(Head Unit,简称HU)上显示,并通过车上的触摸屏、硬按键、旋钮操控和麦克风来控制CarLife,此方案能充分利用手机和车机的各自优势,为驾驶员提供安全、丰富的信息娱乐体验。

Carlife 协议规定了五种数据流,控制流(cmd),视频流(video),音频流(Audio),语音流(VR)以及发控流(Touch),其中将音频流分为Media和导航TTS两种类型。协议定义了以下六个TCP socket通道用于传输这些数据流。

1.控制流(Cmd):1个tcp socket通道,主要在车机和移动设备之间传输相关控制消息,比如车载数据、蓝牙自动配对消息、视频初始化消息等。

2.视频流(Video):1个tcp socket通道,主要用于移动设备向车机传输视频编码数据。

3.音频流(Audio):2个tcp socket通道,一个用于传输Media音频流,另一个用于传输导航TTS(Text to Sound)音频流,分别用于移动设备向车机传输音乐和导航语音播报的PCM流。

4.语音流(VR):1个tcp socket通道,主要用于车机向移动设备传输车机mic录制的用户语音数据。

5.反控流(Touch):1个tcp socket通道,主要用于传输车机触摸事件或者按键事件到移动设备端。

针对Android5.0系统以及以上版本的移动设备,可以使用AOA(Android Open Accessory)进行连接。AOA是Google为Android系统提供的一种外设通讯机制。该机制可以通过蓝牙或者USB接口和外设通讯,无需Android系统特殊系统权限,包括root和adb debug,对于CarLife而言,移动设备端不需要获取root权限和打开adb 更高的平台中直接支持,作为一个附加库也被Android 2.3.4(API level 10)支持。AOA2.0在Android4.1(API level 16)及更高的平台中直接支持。在Android移动设备上,Android系统提供标准的Accessory API用于访问外设。采用USB通讯时,外部设备的USB角色为Host,Android移动设备为Device。

基于当前5.0以上的手机占比居高,ADB与AOA连接建议默认使用AOA连接,或者优先使用AOA连接,连接成功后首先检测手机系统的版本号,如果手机系统版本低于5.0则主动切换到ADB模式。

-- 百度CarLife Android车机端黑屏问题

发现与视频头帧sps和pps有关。在ShowFragment里获取了视频的头帧sps和pps,在界面内退出时,销毁了界面,也删除了头帧信息,后面虽然有数据继续传输到车机端,但是缺少了sps和pps就解不了码,因此黑屏。

那为什么手机USB线断开后,再次连接就连得上呢?因为手机USB断开之后,车机端将重新开启ADB,并反初始化各参数,而手机端则停止了视频传输,当再一次连接时,会重发头帧sps和pps,自然可以解码成功。

记下sps和pps数据,但是不能在Activity中记,因为退出时会被销毁,这里在AppManager这个管理Activity的类里记,然后在显示的ShowFragment里需要视频头帧的时候取出,车机视频就不在黑屏。

CarLife安卓车机端- /ApolloAuto/apollo-DuerOS/tree/master/CarLife-Android-Vehicle

如果觉得《车联网Apollo(阿波罗) 研究carlife车机端集成及开发 (WeLink carplay/carlife)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。