143c04a7c87404d078db60e09d2da0061d72357c2Steve Paik/* 243c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * Copyright (C) 2016 The Android Open Source Project 343c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * 443c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * Licensed under the Apache License, Version 2.0 (the "License"); 543c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * you may not use this file except in compliance with the License. 643c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * You may obtain a copy of the License at 743c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * 843c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * http://www.apache.org/licenses/LICENSE-2.0 943c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * 1043c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * Unless required by applicable law or agreed to in writing, software 1143c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * distributed under the License is distributed on an "AS IS" BASIS, 1243c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1343c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * See the License for the specific language governing permissions and 1443c04a7c87404d078db60e09d2da0061d72357c2Steve Paik * limitations under the License. 1543c04a7c87404d078db60e09d2da0061d72357c2Steve Paik */ 1643c04a7c87404d078db60e09d2da0061d72357c2Steve Paikpackage com.android.car.hal; 1743c04a7c87404d078db60e09d2da0061d72357c2Steve Paik 18af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Parkimport android.car.hardware.cabin.CarCabinManager; 19cfe93105f637c2822da113308f113ed418d0b319Pavel Maltsevimport android.hardware.automotive.vehicle.V2_0.VehicleProperty; 2043c04a7c87404d078db60e09d2da0061d72357c2Steve Paik 2143c04a7c87404d078db60e09d2da0061d72357c2Steve Paikpublic class CabinHalService extends PropertyHalServiceBase { 221b1247b5648975dd41ee73c25425825abb256234Vitalii Tomkiv private static final boolean DBG = false; 2343c04a7c87404d078db60e09d2da0061d72357c2Steve Paik private static final String TAG = "CAR.CABIN.HAL"; 2443c04a7c87404d078db60e09d2da0061d72357c2Steve Paik 251e5a88bcaea73af4a140616b4e9ed5fcfa60d990Pavel Maltsev private final ManagerToHalPropIdMap mMgrHalPropIdMap = ManagerToHalPropIdMap.create( 26af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_DOOR_POS, 270d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.DOOR_POS, 28634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 29af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_DOOR_MOVE, 300d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.DOOR_MOVE, 31634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 32af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_DOOR_LOCK, 330d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.DOOR_LOCK, 34634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 35af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_MIRROR_Z_POS, 360d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.MIRROR_Z_POS, 37634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 38af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_MIRROR_Z_MOVE, 390d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.MIRROR_Z_MOVE, 40634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 41af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_MIRROR_Y_POS, 420d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.MIRROR_Y_POS, 43634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 44af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_MIRROR_Y_MOVE, 450d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.MIRROR_Y_MOVE, 46634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 47af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_MIRROR_LOCK, 480d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.MIRROR_LOCK, 49634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 50af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_MIRROR_FOLD, 510d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.MIRROR_FOLD, 52634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 53af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_MEMORY_SELECT, 540d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_MEMORY_SELECT, 55634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 56af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_MEMORY_SET, 570d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_MEMORY_SET, 58634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 59af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_BELT_BUCKLED, 600d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_BELT_BUCKLED, 61634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 62af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_BELT_HEIGHT_POS, 630d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_BELT_HEIGHT_POS, 64634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 65af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_BELT_HEIGHT_MOVE, 660d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_BELT_HEIGHT_MOVE, 67634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 68af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_FORE_AFT_POS, 690d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_FORE_AFT_POS, 70634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 71af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_FORE_AFT_MOVE, 720d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_FORE_AFT_MOVE, 73634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 74af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_BACKREST_ANGLE_1_POS, 750d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_BACKREST_ANGLE_1_POS, 76634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 77af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_BACKREST_ANGLE_1_MOVE, 780d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_BACKREST_ANGLE_1_MOVE, 79634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 80af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_BACKREST_ANGLE_2_POS, 810d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_BACKREST_ANGLE_2_POS, 82634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 83af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_BACKREST_ANGLE_2_MOVE, 840d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_BACKREST_ANGLE_2_MOVE, 85634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 86af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_HEIGHT_POS, 870d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_HEIGHT_POS, 88634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 89af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_HEIGHT_MOVE, 900d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_HEIGHT_MOVE, 91634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 92af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_DEPTH_POS, 930d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_DEPTH_POS, 94634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 95af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_DEPTH_MOVE, 960d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_DEPTH_MOVE, 97634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 98af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_TILT_POS, 990d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_TILT_POS, 100634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 101af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_TILT_MOVE, 1020d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_TILT_MOVE, 103634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 104af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_LUMBAR_FORE_AFT_POS, 1050d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_LUMBAR_FORE_AFT_POS, 106634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 107af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_LUMBAR_FORE_AFT_MOVE, 1080d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_LUMBAR_FORE_AFT_MOVE, 109634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 110af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_LUMBAR_SIDE_SUPPORT_POS, 1110d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_LUMBAR_SIDE_SUPPORT_POS, 112634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 113af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_LUMBAR_SIDE_SUPPORT_MOVE, 1140d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_LUMBAR_SIDE_SUPPORT_MOVE, 115634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 116af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_HEADREST_HEIGHT_POS, 1170d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_HEADREST_HEIGHT_POS, 118634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 119af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_HEADREST_HEIGHT_MOVE, 1200d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_HEADREST_HEIGHT_MOVE, 121634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 122af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_HEADREST_ANGLE_POS, 1230d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_HEADREST_ANGLE_POS, 124634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 125af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_HEADREST_ANGLE_MOVE, 1260d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_HEADREST_ANGLE_MOVE, 127634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 128af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_HEADREST_FORE_AFT_POS, 1290d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_HEADREST_FORE_AFT_POS, 130634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 131af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_SEAT_HEADREST_FORE_AFT_MOVE, 1320d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.SEAT_HEADREST_FORE_AFT_MOVE, 133634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 134af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_WINDOW_POS, 1350d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.WINDOW_POS, 136634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 137af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_WINDOW_MOVE, 1380d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.WINDOW_MOVE, 139634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 140af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_WINDOW_VENT_POS, 1410d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.WINDOW_VENT_POS, 142634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 143af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_WINDOW_VENT_MOVE, 1440d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.WINDOW_VENT_MOVE, 145634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 146af2cc99a2e8eea38a75b20b952ea5c0e7ebb4b1bKeun-young Park CarCabinManager.ID_WINDOW_LOCK, 1470d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev VehicleProperty.WINDOW_LOCK 1481e5a88bcaea73af4a140616b4e9ed5fcfa60d990Pavel Maltsev ); 149634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev 15043c04a7c87404d078db60e09d2da0061d72357c2Steve Paik public CabinHalService(VehicleHal vehicleHal) { 15143c04a7c87404d078db60e09d2da0061d72357c2Steve Paik super(vehicleHal, TAG, DBG); 15243c04a7c87404d078db60e09d2da0061d72357c2Steve Paik } 15343c04a7c87404d078db60e09d2da0061d72357c2Steve Paik 15443c04a7c87404d078db60e09d2da0061d72357c2Steve Paik // Convert the Cabin public API property ID to HAL property ID 15543c04a7c87404d078db60e09d2da0061d72357c2Steve Paik @Override 15643c04a7c87404d078db60e09d2da0061d72357c2Steve Paik protected int managerToHalPropId(int propId) { 157634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev return mMgrHalPropIdMap.getHalPropId(propId); 15843c04a7c87404d078db60e09d2da0061d72357c2Steve Paik } 15943c04a7c87404d078db60e09d2da0061d72357c2Steve Paik 16043c04a7c87404d078db60e09d2da0061d72357c2Steve Paik // Convert he HAL specific property ID to Cabin public API 16143c04a7c87404d078db60e09d2da0061d72357c2Steve Paik @Override 16243c04a7c87404d078db60e09d2da0061d72357c2Steve Paik protected int halToManagerPropId(int halPropId) { 163634e1ff49c62c32c8227ec5092743de3caca790cPavel Maltsev return mMgrHalPropIdMap.getManagerPropId(halPropId); 16443c04a7c87404d078db60e09d2da0061d72357c2Steve Paik } 16543c04a7c87404d078db60e09d2da0061d72357c2Steve Paik} 166