android车载开发之HVAC
目前主要在做车载hvac的开发,主要的一些功能主要是hvac,座椅,香氛,设置等的一些模块,具体模块下,比如
1.空调
ac,智能模式(极速降温,极速采暖,智能除味),auto,负离子ion,吹头吹脚等吹风模式,左区空调温度,右区温度等,还有车内车外的空气质量,风量调节。
2.座椅
每个座椅的座椅加热,通风,按摩。
3.香氛
香氛选择,浓度选择。
4.设置
自动出风,座舱自动清洁,自动换气,迎宾模式等
这里面主要是做一些动效,比如调节风量的变加速旋转,页面切换的动效(tab,文字,页面的渐入渐出),UI的变更,需求的变更修改,信号的接入。
其中最主要的就是和mcu的交互,和之前开发蓝牙电话蓝牙音乐和蓝牙中间件不同的是,后者主要是和蓝牙协议栈进行数据沟通,空调主要就是mcu和对手件。那么问题来了,
对手件是什么?
通俗来讲,比如说方控,车窗按键,空调A/C按键等,都是方控,其中的数据链路是这样的:
APP < ——> MCU <——> 对手件
比如说打开空调,我们通过封装好的CarInfoProxy,去发送相关的信号给到mcu,mcu根据我们发送的moduleid,cmdID,和对应的value进行相关的设置,设置完成后通过回调给到空调,这里面我们的架构是mvp,所以,对应mcu给过来的回调,在model层接收后就给到presenter,然后再传递给view进行UI刷新,这里一个很重要的点就是hvac不会自己进行页面的更新,都是根据底层的信号来做页面的渲染。
这里我们在分析相关问题的时候,和其他项目不同的是,我们需要把相关日志以及信号的读写也附加上去,确保把问题甩给mcu,比如下面这个:
这个就是Hvac往mcu写数据,对应的还有Read->这个就是mcu发送信号给到hvac,
所以很多问题单,我们只需要追踪是否这些有问题即可。