鴻蒙OS 開(kāi)發(fā)ADAS相關(guān)應(yīng)用

2020-09-18 17:55 更新

場(chǎng)景介紹

通常在汽車使用過(guò)程中,駕駛員希望通過(guò)顯示、聲音、預(yù)警、故障告警等方式感知行車危險(xiǎn)或規(guī)劃行駛路線,因此 HarmonyOS 提供了 ADAS 輔助交互相關(guān)的接口,供三方開(kāi)發(fā)者開(kāi)發(fā) ADAS 設(shè)置、自動(dòng)泊車等相關(guān)應(yīng)用。

說(shuō)明

該功能與具體的車廠車型相關(guān),部分低配車型可能不具備該項(xiàng)功能。

接口說(shuō)明

目前 ADAS 提供的功能主要有以下三類:

  • 駕駛輔助管理類 DrivingAssistManager,提供了駕駛輔助相關(guān)方法,例如設(shè)置前向/后向碰撞預(yù)警開(kāi)關(guān)、設(shè)置盲點(diǎn)檢測(cè)開(kāi)關(guān)、設(shè)置導(dǎo)航目的地及導(dǎo)航路徑等;
  • 公共信息管理類 InfoAssistManager,提供了 ADAS 公共信息管理的相關(guān)方法,例如獲取障礙物信息、行車記錄儀信息、車道線信息、駕駛員狀態(tài)信息等;
  • 自主泊車管理類 ParkingAssistManager,提供了泊車控制的相關(guān)方法,例如啟動(dòng)泊車、暫停泊車、設(shè)置泊車車位、獲取泊車狀態(tài)等。
接口名 描述
byte[] getAdasSignal() 獲取指定字節(jié)數(shù)組類型的駕駛輔助信號(hào)值。
<T> T getAdasSignal() 獲取指定駕駛輔助信號(hào)值。
setAdasActuator() 設(shè)置指定駕駛輔助信號(hào)值。
sendAdasSignal() 發(fā)送指定字節(jié)數(shù)組類型的駕駛輔助信號(hào)請(qǐng)求信息。
subscribeAdasSignal() 訂閱指定駕駛輔助信號(hào)。
subscribeBatchProperties() 批量訂閱指定駕駛輔助信號(hào)。
unsubscribeAdasSignal() 取消訂閱指定的駕駛輔助信號(hào)。
unsubscribeAdasSignalAll() 取消所有訂閱的駕駛輔助信號(hào)。
接口名 描述
byte[] getAdasSignal() 獲取指定字節(jié)數(shù)組類型的 Adas 信號(hào)值。
<T> T getAdasSignal 獲取指定 Adas 信號(hào)值。
setAdasActuator() 設(shè)置指定 Adas 信號(hào)值。
sendAdasSignal() 發(fā)送指定字節(jié)數(shù)組類型的 Adas 信號(hào)請(qǐng)求信息。
subscribeAdasSignal() 訂閱指定 Adas 信號(hào)。
subscribeBatchProperties() 批量訂閱指定 Adas 信號(hào)。
unsubscribeAdasSignal() 取消訂閱指定的 Adas 信號(hào)。
unsubscribeAdasSignalAll() 取消所有訂閱的 Adas 信號(hào)。
接口名 描述
byte[] getAdasSignal() 獲取指定字節(jié)數(shù)組類型泊車信號(hào)值。
<T> T getAdasSignal() 獲取指定泊車信號(hào)值。
setAdasActuator() 設(shè)置指定泊車信號(hào)值。
sendAdasSignal() 發(fā)送指定字節(jié)數(shù)組類型泊車信號(hào)請(qǐng)求值。
subscribeAdasSignal() 訂閱指定泊車信號(hào)。
subscribeBatchProperties() 批量訂閱指定的泊車信號(hào)。
unsubscribeAdasSignal() 取消訂閱指定的泊車信號(hào)。
unsubscribeAdasSignalAll() 取消所有訂閱的泊車信號(hào)。

開(kāi)發(fā)步驟

根據(jù)不同管理入口類,調(diào)對(duì)應(yīng)接口。

// DrivingAssistManager類使用
boolean result = false;
try {
    Boolean signalValue = DrivingAssistManager.getAdasSignal(Boolean.class, DrivingAssistManager.ID_DRIVING_FCW_WARNING_SWITCH);
    result = true;
} catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) {
    result = false;
}

 
// ParkingAssistManager類使用
String propId = ParkingAssistManager.ID_PARKING_APA_FUNCTION_SWITCH;
Boolean value = true;
AdasActuatorCallback callback = new AdasActuatorCallback() {
    @Override
    public void onErrorActuator(String propId, int outResult) {}
};
boolean result = false;
try {
     ParkingAssistManager.setAdasActuator(propId, callback, value);
     result = true;
} catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) {
     result = false;
}
// InfoAssistManager類使用
boolean result = false;
byte[] request = {'q', 'w'};
try {
     byte[] response = InfoAssistManager.getAdasSignal(InfoAssistManager.ID_INFO_HDMINFO, request);
     result = true;
} catch (RemoteException | IllegalArgumentException | UnsupportedOperationException e) {
     result = false;
}
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)