16648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik/* 26648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * Copyright (C) 2015 The Android Open Source Project 36648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * 46648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * Licensed under the Apache License, Version 2.0 (the "License"); 56648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * you may not use this file except in compliance with the License. 66648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * You may obtain a copy of the License at 76648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * 86648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * http://www.apache.org/licenses/LICENSE-2.0 96648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * 106648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * Unless required by applicable law or agreed to in writing, software 116648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * distributed under the License is distributed on an "AS IS" BASIS, 126648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * See the License for the specific language governing permissions and 146648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik * limitations under the License. 156648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik */ 166648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paikpackage com.android.car.hal; 176648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik 18af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Parkimport android.car.hardware.hvac.CarHvacManager; 1999e1a7555a9521c33203b68c5ab5bd1c039ee712Pavel Maltsevimport android.hardware.automotive.vehicle.V2_0.VehicleProperty; 206648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik 21461ecc6c9bd22f782e8c64a6693bd8ec6d61593eSteve Paikpublic class HvacHalService extends PropertyHalServiceBase { 221b1247b5648975dd41ee73c25425825abb256234Vitalii Tomkiv private static final boolean DBG = false; 23461ecc6c9bd22f782e8c64a6693bd8ec6d61593eSteve Paik private static final String TAG = "HvacHalService"; 246648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik 251e5a88bcaea73af4a140616b4e9ed5fcfa60d990Pavel Maltsev private final ManagerToHalPropIdMap mMgrHalPropIdMap = ManagerToHalPropIdMap.create( 26595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_MIRROR_DEFROSTER_ON, VehicleProperty.HVAC_SIDE_MIRROR_HEAT, 27634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 28595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_STEERING_WHEEL_TEMP, VehicleProperty.HVAC_STEERING_WHEEL_TEMP, 29634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 30595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_OUTSIDE_AIR_TEMP, VehicleProperty.ENV_OUTSIDE_TEMPERATURE, 31634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 32595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_TEMPERATURE_UNITS, VehicleProperty.HVAC_TEMPERATURE_UNITS, 33634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 34595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_TEMP_SETPOINT, VehicleProperty.HVAC_TEMPERATURE_SET, 35634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 36595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_TEMP_ACTUAL, VehicleProperty.HVAC_TEMPERATURE_CURRENT, 37634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 38595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_FAN_SPEED_SETPOINT, VehicleProperty.HVAC_FAN_SPEED, 39634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 40595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_FAN_SPEED_RPM, VehicleProperty.HVAC_ACTUAL_FAN_SPEED_RPM, 41634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 42595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_FAN_POSITION_AVAILABLE, 43595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik VehicleProperty.HVAC_FAN_DIRECTION_AVAILABLE, 44634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 45595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_FAN_POSITION, VehicleProperty.HVAC_FAN_DIRECTION, 46634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 47595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_SEAT_TEMP, VehicleProperty.HVAC_SEAT_TEMPERATURE, 48634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 49595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_AC_ON, VehicleProperty.HVAC_AC_ON, 50634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 51595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_AUTOMATIC_MODE_ON, VehicleProperty.HVAC_AUTO_ON, 52634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 53595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_AIR_RECIRCULATION_ON,VehicleProperty.HVAC_RECIRC_ON, 54634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 55595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_MAX_AC_ON, VehicleProperty.HVAC_MAX_AC_ON, 56634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 57595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_DUAL_ZONE_ON, VehicleProperty.HVAC_DUAL_ON, 58634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 59595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_MAX_DEFROST_ON, VehicleProperty.HVAC_MAX_DEFROST_ON, 60634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 61595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_HVAC_POWER_ON, VehicleProperty.HVAC_POWER_ON, 62634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 63595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_ZONED_HVAC_AUTO_RECIRC_ON, VehicleProperty.HVAC_AUTO_RECIRC_ON, 64595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik 65595fc670d86ee96d4451e2eac20220379ded3f3cSteve Paik CarHvacManager.ID_WINDOW_DEFROSTER_ON, VehicleProperty.HVAC_DEFROSTER 661e5a88bcaea73af4a140616b4e9ed5fcfa60d990Pavel Maltsev ); 67634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 686648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik public HvacHalService(VehicleHal vehicleHal) { 69461ecc6c9bd22f782e8c64a6693bd8ec6d61593eSteve Paik super(vehicleHal, TAG, DBG); 706648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik } 716648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik 726648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik // Convert the HVAC public API property ID to HAL property ID 73461ecc6c9bd22f782e8c64a6693bd8ec6d61593eSteve Paik @Override 74461ecc6c9bd22f782e8c64a6693bd8ec6d61593eSteve Paik protected int managerToHalPropId(int hvacPropId) { 75634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev return mMgrHalPropIdMap.getHalPropId(hvacPropId); 766648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik } 776648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik 786648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik // Convert he HAL specific property ID to HVAC public API 79461ecc6c9bd22f782e8c64a6693bd8ec6d61593eSteve Paik @Override 80461ecc6c9bd22f782e8c64a6693bd8ec6d61593eSteve Paik protected int halToManagerPropId(int halPropId) { 81634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev return mMgrHalPropIdMap.getManagerPropId(halPropId); 826648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik } 836648198ce8f3129886038d9c80b63b96b8a0ee3eSteve Paik} 84