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

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

--  WeLink,carplay/carlife
  Android车机、WinCE车机、Linux车机和Qnx车机四大车机层的手车互联方案。
  四维图新趣驾WeLink,高德地图WINCE车机版。在相对价位更低的低配版本中仅支持CarLife,而高配则仅支持Carplay。
  苹果carplay,百度carlife。

-- 汽车牌照及省级缩写:
 "京", "沪", "鄂", "湘", "川", "渝", "粤", "港", "鲁", "津",
                "浙", "豫", "贵", "青", "琼", "辽", "吉", "藏", "闽",
                "冀", "苏", "皖", "赣", "甘", "陕", "新", "澳",
                "黑", "宁", "云", "蒙", "晋", "桂" ;

-- CarLife开发总结- https://blog.csdn.net/zjfengdou30/article/details/81808551
百度CarLife是百度推出的车联网解决方案之一,目前分为前装集成与后装安装两种方式提供:
前装项目申请:http://carlife.baidu.com/carlife/caroem/myproj 
前装项目申请完成后,得到一个百度渠道号与集成资料 
后装源码地址:https://github.com/ApolloAuto/apollo-DuerOS/tree/master/CarLife-Android-Vehicle

apollo-DuerOS- https://github.com/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车机端集成- https://blog.csdn.net/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安卓车机端- https://github.com/ApolloAuto/apollo-DuerOS/tree/master/CarLife-Android-Vehicle

https://img-blog.csdnimg.cn/2018122020425390.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NoYXJlVXM=,size_16,color_FFFFFF,t_70

https://img-blog.csdnimg.cn/20181220204355850.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NoYXJlVXM=,size_16,color_FFFFFF,t_70

  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值