目前主要在做車載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,
所以很多問題單,我們只需要追蹤是否這些有問題即可。