
车机项目经验
文章平均质量分 72
天花板之恋
在coding的路上
展开
-
车机端同步outlook日历
outlook日历使用的是icalendar这种日历数据交互标准(RFC 2445),icalendar标准定义了描述日历信息的通用格式,它内部还分为了很多类型组件,比如Events(VEVENT)、To-do(VTODO)、Journal(VJOURNAL)、VTIMEZONE (time zones) 和 VALARM (alarms))等,比如下面文件内容:每个事件都会以BEGIN开头,以END结束。原创 2024-12-05 17:33:43 · 1097 阅读 · 0 评论 -
Android单元测试总结
一、概述:使用AndroidTest,我们可以获取到Android运行的环境,并且通过在测试文件中实例化我们需要测试的类,然后自己模拟一些参数去调用实例中的方法,来达到测试代码的目的。一个AndroidTest文件,就相当于一个运行进程一样,可以在真机上运行,并且可以把测试跑后的结果统计出来,作为研发自测重要的一个根据。二、创建测试单元我们可以针对我们代码中那些很关键的控制性类创建一个测试单元,这样创建的测试单元就可以包含很多内容。创建的方式也很简单,在需要创建的类边上进入提示,如下:点击Crea原创 2021-06-24 14:45:59 · 4090 阅读 · 0 评论 -
蓝牙电话开发总结
一、 基本概念HFP协议 :蓝牙电话控制协议,如拨号,接听,拒接,挂断等操作。车机上判断是否连接上蓝牙,主要就是判断HFP协议的连接状态。PBAP协议:通讯录访问协议,主要指下载联系人,同步通话记录。A2DP协议:蓝牙音频传输协议,用来传输蓝牙音乐数据。(蓝牙电话不涉及)AVRCP协议:音视频远程控制协议,比如上下曲的控制。(蓝牙电话不涉及)二、 功能需求蓝牙设置:a.开关蓝牙 b.搜索可用设备 c.对搜索到的设备进行配对操作 d.对已配对的设备发起连接。蓝牙电话:a.同步通讯录 b.同步通话原创 2020-09-18 10:22:47 · 2144 阅读 · 0 评论 -
蓝牙电话联系人中的正则表达式处理和排序算法
蓝牙电话同步完通讯录之后,还需要对联系人进行处理,包括获取首字母索引,中文排序等操作。可能涉及到如下几个需求:1,查看名字是否含有除数字,汉字,字母以外的其他特殊字符,这里我们最好的办法就是使用正则表达式来判断:Pattern p3 = Pattern.compile("[^\u4E00-\u9FA5a-zA-Z0-9]");Matcher m = p3.matcher("asdff汉字ㅇㅎ...原创 2020-04-27 11:31:50 · 454 阅读 · 0 评论 -
文件扫描的核心算法
扫描本地文件,或者新插入一个U盘,怎么用一种比较合理算法去扫描整个盘符,获取到想要的文件呢?比如音乐、视频、图片文件等。大致的思路肯定是从根节点开始扫描,然后递归扫描整个文件,最后形成一个树形结构,文件就存在于这些树枝当中。首先需要定义数据结构。1、文件夹的数据结构:FolderNode{private String mPath; //绝对路径private FolderNode par...原创 2020-04-01 12:11:12 · 1037 阅读 · 1 评论 -
光大DVR模块串口通信协议开发总结
之前我写了如何使用串口发送和接收数据,但这只是最原始的一步,下面分享一下我开发基于广大DVR串口通信协议的过程。概述:1、每一帧的协议数据必须要是完整的才能用,主要是通过冗余校验位来检测。校验位放在每一帧数据的最后面,它的值是除了它自己之外前面所有数据的总和。每一帧数据的协议头始终是aa开头。2、广大DVR串口协议要求主机系统每秒都要发送同步状态的请求给到DVR模块,于是在应用必须启动一个定...原创 2019-05-21 20:48:16 · 580 阅读 · 0 评论 -
Android串口开发总结
在嵌入式的开发中,经常会用到串口通信,用来和不同的硬件模块通信。比如最近我在开发行车记录仪,就用到了串口通信,串口就像一个桥梁,连接起了核心板(imax6)和行车记录仪(DVR)之前的数据通路。使用串口,分为以下几个步骤:1、导入Google的开源串口项目,此项目通过jni的方式提供了打开和操作串口的方法,同时也提供了java层代码的示范使用。代码地址:https://github.com/j...原创 2019-05-13 20:20:16 · 776 阅读 · 0 评论 -
车机屏幕适配方案总结
基本概念:1、px像素单位,构成图片的最小单位,1px相当于屏幕的一个物理像素点。2、分辨率屏幕的宽度上的像素点 * 高度上的像素点,例如1280*720。可以通过命名 vm size 获取分辨率信息 wm sizePhysical size: 1280x4803、屏幕尺寸指的是屏幕对角线的长度,单位是英寸。1英寸=2.54厘米。4、dpi屏幕像素密度,指的是每英寸上面的像...原创 2019-03-11 15:11:09 · 5978 阅读 · 2 评论 -
车载系统Android WIFI开发小结
1、WifiManager 操作wifi的管理类 ,通过系统服务获取:wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);wifiManager.setWifiEnabled(true/false); //打开或者关闭wifiwifiManager.startScan(); //开始扫描...原创 2019-03-04 17:22:16 · 1717 阅读 · 0 评论 -
讯飞消噪处理的知识点总结
音频流是通过MIC录入的,录入的音频流会经过讯飞模块消除噪音之后,再给到讯飞识别模块,或者给到蓝牙电话等其他应用使用。首先这里有两种输入模式:外挂模式和顶灯模式。如果是单个麦克风,由于声音能量比较小,所以我们的硬件驱动会对输入增益后,再给到讯飞的降噪模块,此为外挂模式;如果是麦克风组,比如使用的是两个麦克风,模组的输入信号较强,则需要使用顶灯模式处理后再给到讯飞降噪模块。讯飞降噪模...原创 2018-12-11 19:43:28 · 2365 阅读 · 0 评论 -
车机中行车记录仪(DVR)MVP模式开发总结
现在的车机系统中,DVR已经是不可或缺的功能了,下面是本人在开发DVR应用中总结的一些经验。原创 2018-12-12 17:57:07 · 8177 阅读 · 3 评论 -
车机系统开发中的经验总结
1、ACC OFF代表的是车辆熄火,ACC ON代表的是车辆打火;LOCK ON代表的是打开车门,LOCK OFF代表的是关闭车门;B+代表的是车上的电源,连接B+就是把车前面的电瓶的电源连上,掉B+就是把电瓶的电源拔了。2、主机的运行状态有多种,需要注意区分。息屏状态:MCU只是单纯地把屏熄掉,这个时候ARM系统还在正常运行,MCU也在正常运行;休眠状态:此时ARM已经停止运行,但是MCU...原创 2018-11-19 18:24:03 · 5043 阅读 · 1 评论 -
车载定制化系统设置中实现平滑的语言切换
在每个车载系统中,都会有自己独特的UI风格。比如系统设置这个功能,为了统一风格,我们不能直接去调用Android原生的设置应用,而是应该重新做一个风格统一的符合需求的系统设置应用。我们要说的语言切换这个功能,就是其中一个设置项。如果简单地实现语言切换,应该是比较简单的,就是利用反射重新设置一下Locale就好了,这个时候Activity会异常销毁,并会重新加载刷新当前语言资源。但是客户的需求可...原创 2018-11-23 18:55:43 · 1363 阅读 · 1 评论 -
讯飞汽车语音助理在其他外部应用唤醒
我们可以通过讯飞提供的外部唤醒适配功能,可以在不用唤醒语音关键词的情况下,监听我们所发出的语音命令。比如,我们用TTS播报一段消息,“规划前往北京鸟巢,是否前往?” ,这个时候语音其实是还没有通过唤醒词唤醒的,我们就需要通过外部唤醒适配功能,让语音去识别到我们的命令,是前往还是取消。实现此功能有以下几步:添加custommvw.jar,并build path把jar包导入到library里;...原创 2018-11-05 16:41:38 · 1852 阅读 · 0 评论 -
MVP模式在车载系统中车身设置的运用
车载系统的中的关于车身相关的设置过程,是一个异步的过程,就像网络请求一样。只是和网络用的http协议不同的是,车载主机和车身各个控制器的通信,是通过CAN协议实现的。CAN线就像是一个神经网络,它允许各个控制器也包括主机去获取自己感兴趣的报文,而我们的主机更像是一个整辆车的大脑一样。我们以辅助驾驶中的车道偏离预警的报警声音设置为例,这是一个开关按键。一个完整的车身设置如下:1、首先点击了设置按...原创 2018-11-14 20:29:30 · 3624 阅读 · 1 评论