新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS開發(fā)車輛控制應(yīng)用
場景介紹

HarmonyOS 提供了車輛控制的能力接口,開發(fā)者可以基于其能力接口,開發(fā)相關(guān)的控制應(yīng)用。例如,通過應(yīng)用來控制車內(nèi)空調(diào)溫度、車窗開合程度、雨刷器、左右后視鏡,查詢發(fā)動(dòng)機(jī)運(yùn)行狀況、轉(zhuǎn)速等。
說明
車輛控制能力與車廠車型息息相關(guān),HarmonyOS 提供統(tǒng)一的標(biāo)準(zhǔn)接口,具體能力請參考各個(gè)車輛說明。
接口說明
- 車機(jī)專有硬件服務(wù)連接類 Vehicle,支持車機(jī)專有硬件所有服務(wù)連接能力,同時(shí)攜帶自動(dòng)重試機(jī)制。當(dāng)車機(jī)專有硬件服務(wù)連接或者斷開時(shí),支持開發(fā)者實(shí)現(xiàn)自定義回調(diào),具體開放能力如下:
| 接口名 | 描述 |
|---|---|
| connect() | 連接指定車機(jī)專有硬件服務(wù)。 |
| disconnect() | 斷開指定車機(jī)專有硬件服務(wù)。 |
| isConnected() | 判斷指定車機(jī)專有硬件服務(wù)是否已連接。 |
- 車輛座艙管理類 VehicleCabinManager,提供了車輛座艙信號(hào)訪問控制方法,例如車門、空調(diào)。開發(fā)者可以通過定義的車輛信號(hào)標(biāo)識(shí)來獲取或者設(shè)置對(duì)應(yīng)的信號(hào)值,完成對(duì)車輛座艙的控制,具體開放能力如下:
| 接口名 | 描述 |
|---|---|
| getVehicleSignal() | 獲取座艙相關(guān)設(shè)備的信號(hào)值。 |
| getVehicleSignalMultiAreas() | 獲取座艙指定信號(hào)的多區(qū)域值。 |
| setVehicleActuator() | 設(shè)置車輛座艙信號(hào)值。 |
| subscribeVehicleSignal() | 訂閱指定的座艙信號(hào)。 |
| unsubscribeVCabinSignal() | 取消訂閱指定的座艙信號(hào)。 |
| unsubscribeVCabinSignalAll() | 取消訂閱全部座艙信號(hào)。 |
- 車輛車身管理類 VehicleBodyManager,提供了車輛車身設(shè)備控制相關(guān)的方法,例如雨刷器、擋風(fēng)玻璃、清潔劑、車燈、引擎蓋、行李箱等設(shè)備控制信息,具體開放能力如下:
| 接口名 | 描述 |
|---|---|
| getVehicleSignal() | 獲取車身相關(guān)設(shè)備的信號(hào)值。 |
| getVehicleSignalMultiAreas() | 獲取車身指定信號(hào)的多區(qū)域值。 |
| setVehicleActuator() | 設(shè)置車輛車身的信號(hào)值。 |
| subscribeVehicleSignal() | 訂閱指定的車身信號(hào)。 |
| unsubscribeVBodySignal() | 取消訂閱指定的車身信號(hào)。 |
| unsubscribeVBodySignalAll() | 取消訂閱全部車身信號(hào)。 |
- 車輛底盤管理類 VehicleChassisManager,提供了車輛底盤設(shè)備控制相關(guān)的方法,例如獲取車輛重量、軸距、方向盤轉(zhuǎn)向角度等。具體開放能力如下:
| 接口名 | 描述 |
|---|---|
| getVehicleSignal() | 獲取車輛底盤相關(guān)設(shè)備信號(hào)值。 |
| getVehicleSignalMultiAreas() | 獲取車輛底盤指定信號(hào)的多區(qū)域值。 |
| setVehicleActuator() | 設(shè)置車輛底盤相關(guān)設(shè)備的狀態(tài)值。 |
| subscribeVehicleSignal() | 訂閱指定的車輛底盤信號(hào)。 |
| unsubscribeVChassisSignal() | 取消訂閱指定的車輛底盤信號(hào)。 |
| unsubscribeVChassisSignalAll() | 取消訂閱全部的車輛底盤信號(hào)。 |
- 車輛引擎管理類 VehicleDriveTrainManager,提供了車輛引擎相關(guān)控制方法,例如控制變速箱模式,獲取發(fā)動(dòng)機(jī)轉(zhuǎn)速等,具體開放能力如下:
| 接口名 | 描述 |
|---|---|
| getVehicleSignal() | 獲取車輛引擎相關(guān)設(shè)備信號(hào)值。 |
| getVehicleSignalMultiAreas() | 獲取車輛引擎指定信號(hào)的多區(qū)域值。 |
| setVehicleActuator() | 設(shè)置車輛引擎信號(hào)相關(guān)參數(shù)值。 |
| subscribeVehicleSignal() | 訂閱指定的車輛引擎信號(hào)。 |
| unsubscribeVDriveTrainSignal() | 取消訂閱指定的車輛引擎信號(hào)。 |
| unsubscribeVDriveTrainSignalAll() | 取消訂閱全部車輛引擎信號(hào)。 |
- 通常在汽車使用過程中,駕駛員需要實(shí)時(shí)了解車輛的健康狀態(tài),從而判斷車輛是那個(gè)部位出現(xiàn)故障,因此 HarmonyOS 提供了
OBD(on-board diagnostics)
相關(guān)接口,供三方開發(fā)者開發(fā)車輛健康監(jiān)測相關(guān)應(yīng)用,更好服務(wù)于大眾。
| 接口名 | 描述 |
|---|---|
| getVehicleSignal() | 獲取OBD相關(guān)實(shí)時(shí)信號(hào)值。 |
| getVehicleSignalMultiAreas() | 獲取OBD指定信號(hào)的多區(qū)域值。 |
| setVehicleActuator() | 設(shè)置OBD相關(guān)設(shè)備值。 |
| subscribeVehicleSignal() | 訂閱指定的OBD設(shè)備信號(hào)。 |
| unsubscribeVOBDSignal() | 取消訂閱指定的OBD設(shè)備信號(hào)。 |
| unsubscribeVOBDSignalAll() | 取消訂閱全部的OBD設(shè)備信號(hào)。 |
- 車輛配置屬性管理類 VehicleConfigurationManager,提供了車輛靜態(tài)屬性信息查詢接口,例如車輛燃油類型,車輛外觀尺寸等基本屬性信息,具體開放能力如下:
| 接口名 | 描述 |
|---|---|
| getVehicleSize() | 獲取車輛尺寸,包括:長、寬、高等信息。 |
| getVehicleFuelType() | 獲取車輛燃油類型。 |
| getVehiclereFuelPosition() | 獲取燃油口位置信息。 |
| getVehiclereTransmissionConfiguration() | 獲取變速器類型。 |
| getVehicleWheelDiameter() | 獲取輪胎尺寸。 |
| getVehicleSteeringWheelConfiguration() | 獲取車輛方向盤配置信息。 |
| getVehicleACRISS() | 獲取汽車租賃公司使用的 ACRISS 汽車分類代碼。 |
| getVehicleMcuVersion() | 獲取車輛 MCU 版本號(hào)。 |
| getVehicleModel() | 獲取車輛制造型號(hào)。 |
| getVehicleModelYear() | 獲取車輛生產(chǎn)時(shí)間。 |
| getVehicleBrand() | 獲取車輛品牌信息。 |
| getVehicleVIN() | 獲取車輛識(shí)別號(hào)。 |
| getVehicleWMI() | 獲取世界制造廠識(shí)別代碼。 |
| getDriverZone() | 獲取駕駛位信息。 |
開發(fā)步驟
- 連接指定車機(jī)專有硬件服務(wù)。
// 獲取服務(wù)連接狀態(tài)變化
ServiceConnectionListener listener = new ServiceConnectionListener(){
@Override
public void onServiceConnected(VehicleServiceName serviceName) {
}
@Override
public void onServiceDisconnected(VehicleServiceName serviceName) {
}
};
// 連接指定車機(jī)專有硬件服務(wù)
try {
Vehicle.connect(VehicleServiceName.VEHICLECONTROL_SERVICE, listener);
Thread.sleep(2000);
return true;
} catch (IllegalStateException | InterruptedException e) {
Logger.info("Exception:" + e.toString());
return false;
}- 根據(jù)不同管理入口類,調(diào)用對(duì)應(yīng)接口。
// VehicleCabinManager類, 座艙天窗管理
String propId = VehicleCabinManager.ID_CABIN_SUNROOF_SWITCH;
int zoneId = VehicleZone.ZONE_NONE;
String value = "Inactive";
VehicleActuatorCallback callback = new VehicleActuatorCallback() {
@Override
public void onErrorActuator(String propId, int zoneId, int outResult) {
}
};
boolean result = false;
try {
VehicleCabinManager.setVehicleActuator(propId, zoneId, callback, value);
result = true;
} catch (RemoteException | IllegalArgumentException e) {
result = false;
}
if (!result) {
System.out.println(String.format("Set sunroof error: %d", result));
}
// VehicleBodyManager類, 獲取車身前擋風(fēng)玻璃雨刷器狀態(tài)
zoneId = VehicleZone.ZONE_FRONT;
String signal Value = VehicleBodyManager.getVehicleSignal(String.class, VehicleBodyManager.ID_BODY_WINDSHIELD_WIPING_STATUS, zoneId);
// VehicleChassisManager類, 獲取車輛輪胎寬度
zoneId = VehicleZone.ZONE_ROW1;
Short signalValue = VehicleChassisManager.getVehicleSignal(Short.class, VehicleChassisManager.ID_CHASSIS_AXLE_WHEELWIDTH, zoneId);
// VehicleDriveTrainManager類,設(shè)置車輛變速箱模式
propId = VehicleDriveTrainManager.ID_DRIVETRAIN_TRANSMISSION_PERFORMANCEMODE;
zoneId = VehicleZone.ZONE_NONE;
String transmissionValue = "sport";
VehicleActuatorCallback tmCallback = new VehicleActuatorCallback() {
@Override
public void onErrorActuator(String propId, int zoneId, int outResult) {
}
};
try {
VehicleDriveTrainManager.setVehicleActuator(propId, zoneId, tmCallback, transmissValue);
result = true;
} catch (RemoteException | IllegalArgumentException e) {
result = false;
}
if(!result) {
System.out.println(String.format("Set transmiss performance mode error: %d", result));
}
// VehicleConfigurationManager類,獲取車輛識(shí)別碼
String vin = VehicleConfigurationManager.getVehicleVIN(); 本文名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OS開發(fā)車輛控制應(yīng)用
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/djeppss.html


咨詢
建站咨詢
