From 0d07c76bbc788fba8c77d8e932330ab22ec6ba27 Mon Sep 17 00:00:00 2001 From: Pavel Maltsev Date: Thu, 3 Nov 2016 16:40:15 -0700 Subject: Migrating Car service to new Vehicle HAL - make car service work directly with Vehicle HAL - getting rid of protobufs and dependencies on VNS - get rid of CarTestManager / CarTestService and refactor tests accordingly - reworked ICarImpl to pass dependencies rather than using singletons for better testing experience Test: existing test should work, although some of the tests (esp. audio) are broken and we will fix them in follow up CLs Bug: b/31971746 Change-Id: I229969af332304ba3b1718f130cdf22038e86fad Tests: tests adjusted to new data structures --- libvehiclenetwork/java/Android.mk | 31 - .../car/vehiclenetwork/IVehicleNetwork.aidl | 49 - .../car/vehiclenetwork/IVehicleNetworkHalMock.aidl | 31 - .../vehiclenetwork/IVehicleNetworkListener.aidl | 32 - .../android/car/vehiclenetwork/VehicleNetwork.java | 799 ------------ .../car/vehiclenetwork/VehicleNetworkConsts.java | 1365 -------------------- .../vehiclenetwork/VehicleNetworkProtoUtil.java | 68 - .../car/vehiclenetwork/VehiclePropConfigUtil.java | 92 -- .../VehiclePropConfigsParcelable.aidl | 19 - .../VehiclePropConfigsParcelable.java | 64 - .../vehiclenetwork/VehiclePropValueParcelable.aidl | 19 - .../vehiclenetwork/VehiclePropValueParcelable.java | 65 - .../car/vehiclenetwork/VehiclePropValueUtil.java | 272 ---- .../VehiclePropValuesParcelable.aidl | 19 - .../VehiclePropValuesParcelable.java | 71 - 15 files changed, 2996 deletions(-) delete mode 100644 libvehiclenetwork/java/Android.mk delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkHalMock.aidl delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkConsts.java delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigUtil.java delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.aidl delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.java delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.aidl delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.java delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueUtil.java delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.aidl delete mode 100644 libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.java (limited to 'libvehiclenetwork') diff --git a/libvehiclenetwork/java/Android.mk b/libvehiclenetwork/java/Android.mk deleted file mode 100644 index 95e9089afe..0000000000 --- a/libvehiclenetwork/java/Android.mk +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2015 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# - -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := libvehiclenetwork-java -LOCAL_MODULE_TAGS := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-Iaidl-files-under, src) - -LOCAL_STATIC_JAVA_LIBRARIES := \ - libvehiclenetworkproto-java \ - libprotobuf-java-lite - - -include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl deleted file mode 100644 index cd16b4d9af..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.car.vehiclenetwork; - -import com.android.car.vehiclenetwork.IVehicleNetworkHalMock; -import com.android.car.vehiclenetwork.IVehicleNetworkListener; -import com.android.car.vehiclenetwork.VehiclePropConfigsParcelable; -import com.android.car.vehiclenetwork.VehiclePropValueParcelable; -import com.android.car.vehiclenetwork.VehiclePropValuesParcelable; - -/** - * Binder API to access vehicle network service. - * @hide - */ -interface IVehicleNetwork { - VehiclePropConfigsParcelable listProperties(int property) = 0; - /** For error case, exception will be thrown. */ - void setProperty(in VehiclePropValueParcelable value) = 1; - VehiclePropValueParcelable getProperty(in VehiclePropValueParcelable value) = 2; - /** For error case, exception will be thrown. */ - void subscribe(in IVehicleNetworkListener listener, int property, float sampleRate, - int zones, int flags) = 3; - void unsubscribe(in IVehicleNetworkListener listener, int property) = 4; - /** For testing only. inject events. */ - void injectEvent(in VehiclePropValueParcelable value) = 5; - /** For testing only. Start in mocking mode. */ - void startMocking(in IVehicleNetworkHalMock mock) = 6; - /** Finish mocking mode. */ - void stopMocking(in IVehicleNetworkHalMock mock) = 7; - void injectHalError(int errorCode, int property, int operation) = 8; - void startErrorListening(in IVehicleNetworkListener listener) = 9; - void stopErrorListening(in IVehicleNetworkListener listener) = 10; - void startHalRestartMonitoring(in IVehicleNetworkListener listener) = 11; - void stopHalRestartMonitoring(in IVehicleNetworkListener listener) = 12; -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkHalMock.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkHalMock.aidl deleted file mode 100644 index 18e295d02c..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkHalMock.aidl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.car.vehiclenetwork; - -import com.android.car.vehiclenetwork.VehiclePropConfigsParcelable; -import com.android.car.vehiclenetwork.VehiclePropValueParcelable; - -/** - * Listener for vehicle HAL mock. This is used for internal testing only. - * @hide - */ -interface IVehicleNetworkHalMock { - VehiclePropConfigsParcelable onListProperties() = 0; - void onPropertySet(in VehiclePropValueParcelable value) = 1; - VehiclePropValueParcelable onPropertyGet(in VehiclePropValueParcelable value) = 2; - void onPropertySubscribe(int property, float sampleRate, int zones) = 3; - void onPropertyUnsubscribe(int property) = 4; -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl deleted file mode 100644 index 6403e0387d..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.car.vehiclenetwork; - -import com.android.car.vehiclenetwork.VehiclePropValuesParcelable; -import com.android.car.vehiclenetwork.VehiclePropValueParcelable; - -/** - * Listener for vehicle network service. Intentionally both way as this is supposed to be - * used between system components. Making this one way brings ordering issue. - * @hide - */ -interface IVehicleNetworkListener { - void onVehicleNetworkEvents(in VehiclePropValuesParcelable values) = 0; - void onHalError(int errorCode, int property, int operation) = 1; - void onHalRestart(boolean inMocking) = 2; - void onPropertySet(in VehiclePropValueParcelable value) = 3; -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java deleted file mode 100644 index 7c8ff10cde..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java +++ /dev/null @@ -1,799 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.car.vehiclenetwork; - -import static com.android.car.vehiclenetwork.VehiclePropValueUtil.getVectorLength; -import static com.android.car.vehiclenetwork.VehiclePropValueUtil.isCustomProperty; -import static com.android.car.vehiclenetwork.VehiclePropValueUtil.toFloatArray; -import static com.android.car.vehiclenetwork.VehiclePropValueUtil.toIntArray; - -import android.annotation.IntDef; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; -import android.os.RemoteException; -import android.os.ServiceManager; -import android.os.ServiceSpecificException; -import android.util.Log; - -import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleValueType; -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfigs; -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue; -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValues; -import com.android.internal.annotations.GuardedBy; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.ref.WeakReference; - -/** - * System API to access Vehicle network. This is only for system services and applications should - * not use this. All APIs will fail with security error if normal app tries this. - */ -public class VehicleNetwork { - /** - * Listener for VNS events. - */ - public interface VehicleNetworkListener { - /** - * Notify HAL events. This requires subscribing the property - */ - void onVehicleNetworkEvents(VehiclePropValues values); - void onHalError(int errorCode, int property, int operation); - void onHalRestart(boolean inMocking); - void onPropertySet(VehiclePropValue value); - } - - public interface VehicleNetworkHalMock { - VehiclePropConfigs onListProperties(); - void onPropertySet(VehiclePropValue value); - VehiclePropValue onPropertyGet(VehiclePropValue value); - void onPropertySubscribe(int property, float sampleRate, int zones); - void onPropertyUnsubscribe(int property); - } - - /** - * Flags to be used in #subscribe(int, float, int, int). - */ - @Retention(RetentionPolicy.SOURCE) - @IntDef({ - SubscribeFlags.HAL_EVENT, - SubscribeFlags.SET_CALL, - SubscribeFlags.DEFAULT, - }) - public @interface SubscribeFlags { - int HAL_EVENT = 0x1; - int SET_CALL = 0x2; - int DEFAULT = HAL_EVENT; - } - - private static final String TAG = VehicleNetwork.class.getSimpleName(); - - private final IVehicleNetwork mService; - private final VehicleNetworkListener mListener; - private final IVehicleNetworkListenerImpl mVehicleNetworkListener; - private final EventHandler mEventHandler; - - @GuardedBy("this") - private VehicleNetworkHalMock mHalMock; - private IVehicleNetworkHalMock mHalMockImpl; - - private static final int VNS_CONNECT_MAX_RETRY = 10; - private static final long VNS_RETRY_WAIT_TIME_MS = 1000; - private static final int NO_ZONE = -1; - - /** - * Factory method to create VehicleNetwork - * - * @param listener listener for listening events - * @param looper Looper to dispatch listener events - */ - public static VehicleNetwork createVehicleNetwork(VehicleNetworkListener listener, - Looper looper) { - int retryCount = 0; - IVehicleNetwork service = null; - while (true) { - service = IVehicleNetwork.Stub.asInterface(ServiceManager.getService( - IVehicleNetwork.class.getCanonicalName())); - if (service != null) { - break; - } - retryCount++; - if (retryCount > VNS_CONNECT_MAX_RETRY) { - break; - } - try { - Thread.sleep(VNS_RETRY_WAIT_TIME_MS); - } catch (InterruptedException e) { - //ignore - } - } - if (service == null) { - throw new RuntimeException("Vehicle network service not available:" + - IVehicleNetwork.class.getCanonicalName()); - } - return new VehicleNetwork(service, listener, looper); - } - - private VehicleNetwork(IVehicleNetwork service, VehicleNetworkListener listener, - Looper looper) { - mService = service; - mListener = listener; - mEventHandler = new EventHandler(looper); - mVehicleNetworkListener = new IVehicleNetworkListenerImpl(this); - } - - /** - * List all properties from vehicle HAL - * - * @return all properties - */ - public VehiclePropConfigs listProperties() { - return listProperties(0 /* all */); - } - - /** - * Return configuration information of single property - * - * @param property vehicle property number defined in {@link VehicleNetworkConsts}. 0 has has - * special meaning of list all properties. - * @return null if given property does not exist. - */ - public VehiclePropConfigs listProperties(int property) { - try { - VehiclePropConfigsParcelable parcelable = mService.listProperties(property); - if (parcelable != null) { - return parcelable.configs; - } - } catch (RemoteException e) { - handleRemoteException(e); - } - return null; - } - - /** - * Set property which will lead into writing the value to vehicle HAL. - * - * @throws IllegalArgumentException If value set has wrong value like wrong valueType, wrong - * data, and etc. - */ - public void setProperty(VehiclePropValue value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValueParcelable parcelable = new VehiclePropValueParcelable(value); - try { - mService.setProperty(parcelable); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - /** - * Set integer type property - * - * @throws IllegalArgumentException For type mismatch (=the property is not int type) - */ - public void setIntProperty(int property, int value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createIntValue(property, value, 0); - setProperty(v); - } - - /** - * Set int vector type property. Length of passed values should match with vector length. - */ - public void setIntVectorProperty(int property, int[] values) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createIntVectorValue(property, values, 0); - setProperty(v); - } - - /** - * Set long type property. - */ - public void setLongProperty(int property, long value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createLongValue(property, value, 0); - setProperty(v); - } - - /** - * Set float type property. - */ - public void setFloatProperty(int property, float value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createFloatValue(property, value, 0); - setProperty(v); - } - - /** - * Set float vector type property. Length of values should match with vector length. - */ - public void setFloatVectorProperty(int property, float[] values) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createFloatVectorValue(property, values, 0); - setProperty(v); - } - - /** - * Set boolean type property - * - * @throws IllegalArgumentException For type mismatch (=the property is not boolean type) - */ - public void setBooleanProperty(int property, boolean value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createBooleanValue(property, value, 0); - setProperty(v); - } - - public void setStringProperty(int property, String value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createStringValue(property, value, 0); - setProperty(v); - } - - /** - * Set zoned boolean type property - * - * @throws IllegalArgumentException For type mismatch (=the property is not boolean type) - */ - public void setZonedBooleanProperty(int property, int zone, boolean value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createZonedBooleanValue(property, zone, value, 0); - setProperty(v); - } - - /** - * Set zoned float type property - * - * @throws IllegalArgumentException For type mismatch (=the property is not float type) - */ - public void setZonedFloatProperty(int property, int zone, float value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createZonedFloatValue(property, zone, value, 0); - setProperty(v); - } - - /** - * Set zoned integer type property - * - * @throws IllegalArgumentException For type mismatch (=the property is not int type) - */ - public void setZonedIntProperty(int property, int zone, int value) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil.createZonedIntValue(property, zone, value, 0); - setProperty(v); - } - - /** - * Set zoned int vector type property. Length of passed values should match with vector length. - */ - public void setZonedIntVectorProperty(int property, int zone, int[] values) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil - .createZonedIntVectorValue(property, zone, values, 0); - setProperty(v); - } - - /** - * Set zoned float vector type property. Length of passed values should match with vector - * length. - */ - public void setZonedFloatVectorProperty(int property, int zone, float[] values) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = VehiclePropValueUtil - .createZonedFloatVectorValue(property, zone, values, 0); - setProperty(v); - } - - /** - * Get property. This can be used for a property which does not require any other data. - */ - public VehiclePropValue getProperty(int property) throws IllegalArgumentException, - ServiceSpecificException { - int valueType = VehicleNetworkConsts.getVehicleValueType(property); - if (valueType == 0) { - throw new IllegalArgumentException("Data type is unknown for property: " + property); - } - VehiclePropValue value = VehiclePropValueUtil.createBuilder(property, valueType, 0).build(); - return getProperty(value); - } - - /** - * Generic get method for any type of property. Some property may require setting data portion - * as get may return different result depending on the data set. - */ - public VehiclePropValue getProperty(VehiclePropValue value) throws IllegalArgumentException, - ServiceSpecificException { - VehiclePropValueParcelable parcelable = new VehiclePropValueParcelable(value); - try { - VehiclePropValueParcelable resParcelable = mService.getProperty(parcelable); - if (resParcelable != null) { - return resParcelable.value; - } - } catch (RemoteException e) { - handleRemoteException(e); - } - return null; - } - - /** - * Get int type property. - */ - public int getIntProperty(int property) throws IllegalArgumentException, - ServiceSpecificException { - VehiclePropValue v = getProperty( - property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_INT32); - if (v.getInt32ValuesCount() != 1) { - throw new IllegalStateException(); - } - return v.getInt32Values(0); - } - - /** - * Get zoned int type property. - */ - public int getZonedIntProperty(int property, int zone) throws IllegalArgumentException, - ServiceSpecificException { - VehiclePropValue v = getProperty( - property, zone, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32); - if (v.getInt32ValuesCount() != 1) { - throw new IllegalStateException(); - } - return v.getInt32Values(0); - } - - /** - * Get int vector type property. Length of values should match vector length. - */ - public int[] getIntVectorProperty(int property) throws IllegalArgumentException, - ServiceSpecificException { - VehiclePropValue v = getProperty( - property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_INT32); - assertVectorLength(v.getInt32ValuesCount(), property, v.getValueType()); - return toIntArray(v.getInt32ValuesList()); - } - - /** - * Get zoned int vector type property. Length of values should match vector length. - */ - public int[] getZonedIntVectorProperty(int property, int zone) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = getProperty( - property, zone, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32); - assertVectorLength(v.getInt32ValuesCount(), property, v.getValueType()); - return toIntArray(v.getInt32ValuesList()); - } - - /** - * Get float type property. - */ - public float getFloatProperty(int property) throws IllegalArgumentException, - ServiceSpecificException { - VehiclePropValue v = getProperty( - property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT); - if (v.getFloatValuesCount() != 1) { - throw new IllegalStateException(); - } - return v.getFloatValues(0); - } - - /** - * Get float vector type property. Length of values should match vector's length. - */ - public float[] getFloatVectorProperty(int property) throws IllegalArgumentException, - ServiceSpecificException { - VehiclePropValue v = getProperty( - property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT); - assertVectorLength(v.getFloatValuesCount(), property, v.getValueType()); - return toFloatArray(v.getFloatValuesList()); - } - - /** - * Get zoned float vector type property. Length of values should match vector's length. - */ - public float[] getZonedFloatVectorProperty(int property, int zone) - throws IllegalArgumentException, ServiceSpecificException { - VehiclePropValue v = getProperty(property, zone, - VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT); - assertVectorLength(v.getFloatValuesCount(), property, v.getValueType()); - return toFloatArray(v.getFloatValuesList()); - } - - /** - * Get long type property. - */ - public long getLongProperty(int property) throws IllegalArgumentException, - ServiceSpecificException { - VehiclePropValue v = getProperty( - property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_INT64); - return v.getInt64Value(); - } - - /** - * Get string type property. - */ - public String getStringProperty(int property) throws IllegalArgumentException, - ServiceSpecificException { - VehiclePropValue v = getProperty( - property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_STRING); - return v.getStringValue(); - } - - /** - * Subscribe given property with given sample rate. - */ - public void subscribe(int property, float sampleRate) throws IllegalArgumentException { - subscribe(property, sampleRate, 0); - } - - /** - * Subscribe given property with given sample rate and zones. - */ - public void subscribe(int property, float sampleRate, int zones) - throws IllegalArgumentException { - try { - mService.subscribe(mVehicleNetworkListener, property, sampleRate, zones, - SubscribeFlags.DEFAULT); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - /** - * Subscribe given property with given sample rate, zones and flags. - */ - @SuppressWarnings("ResourceType") - public void subscribe(int property, float sampleRate, int zones, @SubscribeFlags int flags) - throws IllegalArgumentException { - try { - mService.subscribe(mVehicleNetworkListener, property, sampleRate, zones, flags); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - /** - * Stop subscribing the property. - */ - public void unsubscribe(int property) { - try { - mService.unsubscribe(mVehicleNetworkListener, property); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - /** - * Inject given value to all clients subscribing the property. This is for testing. - */ - public synchronized void injectEvent(VehiclePropValue value) { - try { - mService.injectEvent(new VehiclePropValueParcelable(value)); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - /** - * Start mocking of vehicle HAL. For testing only. - */ - public synchronized void startMocking(VehicleNetworkHalMock mock) { - mHalMock = mock; - mHalMockImpl = new IVehicleNetworkHalMockImpl(this); - try { - mService.startMocking(mHalMockImpl); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - /** - * Stop mocking of vehicle HAL. For testing only. - */ - public synchronized void stopMocking() { - if (mHalMockImpl == null) { - return; - } - try { - mService.stopMocking(mHalMockImpl); - } catch (RemoteException e) { - handleRemoteException(e); - } finally { - mHalMock = null; - mHalMockImpl = null; - } - } - - /** - * Start mocking of vehicle HAL. For testing only. - */ - public synchronized void startMocking(IVehicleNetworkHalMock mock) { - mHalMock = null; - mHalMockImpl = mock; - try { - mService.startMocking(mHalMockImpl); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - /** - * Stop mocking of vehicle HAL. For testing only. - */ - public synchronized void stopMocking(IVehicleNetworkHalMock mock) { - if (mock.asBinder() != mHalMockImpl.asBinder()) { - return; - } - try { - mService.stopMocking(mHalMockImpl); - } catch (RemoteException e) { - handleRemoteException(e); - } finally { - mHalMock = null; - mHalMockImpl = null; - } - } - - public synchronized void injectHalError(int errorCode, int property, int operation) { - try { - mService.injectHalError(errorCode, property, operation); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - public synchronized void startErrorListening() { - try { - mService.startErrorListening(mVehicleNetworkListener); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - public synchronized void stopErrorListening() { - try { - mService.stopErrorListening(mVehicleNetworkListener); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - public synchronized void startHalRestartMonitoring() { - try { - mService.startHalRestartMonitoring(mVehicleNetworkListener); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - public synchronized void stopHalRestartMonitoring() { - try { - mService.stopHalRestartMonitoring(mVehicleNetworkListener); - } catch (RemoteException e) { - handleRemoteException(e); - } - } - - private synchronized VehicleNetworkHalMock getHalMock() { - return mHalMock; - } - - private void handleRemoteException(RemoteException e) { - throw new RuntimeException("Vehicle network service not working ", e); - } - - private void handleVehicleNetworkEvents(VehiclePropValues values) { - mListener.onVehicleNetworkEvents(values); - } - - private void handleHalError(int errorCode, int property, int operation) { - mListener.onHalError(errorCode, property, operation); - } - - private void handleHalRestart(boolean inMocking) { - mListener.onHalRestart(inMocking); - } - - private void handleOnPropertySet(VehiclePropValue value) { - mListener.onPropertySet(value); - } - - private class EventHandler extends Handler { - - private static final int MSG_EVENTS = 0; - private static final int MSG_HAL_ERROR = 1; - private static final int MSG_HAL_RESTART = 2; - private static final int MSG_ON_PROPERTY_SET = 3; - - private EventHandler(Looper looper) { - super(looper); - } - - private void notifyEvents(VehiclePropValues values) { - Message msg = obtainMessage(MSG_EVENTS, values); - sendMessage(msg); - } - - private void notifyHalError(int errorCode, int property, int operation) { - Message msg = obtainMessage(MSG_HAL_ERROR, errorCode, property, operation); - sendMessage(msg); - } - - private void notifyHalRestart(boolean inMocking) { - Message msg = obtainMessage(MSG_HAL_RESTART, inMocking ? 1 : 0, 0); - sendMessage(msg); - } - - private void notifyPropertySet(VehiclePropValue value) { - Message msg = obtainMessage(MSG_ON_PROPERTY_SET, value); - sendMessage(msg); - } - - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - case MSG_EVENTS: - handleVehicleNetworkEvents((VehiclePropValues) msg.obj); - break; - case MSG_HAL_ERROR: - handleHalError(msg.arg1, msg.arg2, (Integer) msg.obj); - break; - case MSG_HAL_RESTART: - handleHalRestart(msg.arg1 == 1); - break; - case MSG_ON_PROPERTY_SET: - handleOnPropertySet((VehiclePropValue) msg.obj); - default: - Log.w(TAG, "Unknown message:" + msg.what, new RuntimeException()); - break; - } - } - } - - private static class IVehicleNetworkListenerImpl extends IVehicleNetworkListener.Stub { - - private final WeakReference mVehicleNetwork; - - private IVehicleNetworkListenerImpl(VehicleNetwork vehicleNetwork) { - mVehicleNetwork = new WeakReference<>(vehicleNetwork); - } - - @Override - public void onVehicleNetworkEvents(VehiclePropValuesParcelable values) { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork != null) { - vehicleNetwork.mEventHandler.notifyEvents(values.values); - } - } - - @Override - public void onPropertySet(VehiclePropValueParcelable value) { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork != null) { - vehicleNetwork.mEventHandler.notifyPropertySet(value.value); - } - } - - @Override - public void onHalError(int errorCode, int property, int operation) { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork != null) { - vehicleNetwork.mEventHandler.notifyHalError(errorCode, property, operation); - } - } - - @Override - public void onHalRestart(boolean inMocking) { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork != null) { - vehicleNetwork.mEventHandler.notifyHalRestart(inMocking); - } - } - } - - private static class IVehicleNetworkHalMockImpl extends IVehicleNetworkHalMock.Stub { - private final WeakReference mVehicleNetwork; - - private IVehicleNetworkHalMockImpl(VehicleNetwork vehicleNewotk) { - mVehicleNetwork = new WeakReference<>(vehicleNewotk); - } - - @Override - public VehiclePropConfigsParcelable onListProperties() { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork == null) { - return null; - } - VehiclePropConfigs configs = vehicleNetwork.getHalMock().onListProperties(); - return new VehiclePropConfigsParcelable(configs); - } - - @Override - public void onPropertySet(VehiclePropValueParcelable value) { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork == null) { - return; - } - vehicleNetwork.getHalMock().onPropertySet(value.value); - } - - @Override - public VehiclePropValueParcelable onPropertyGet(VehiclePropValueParcelable value) { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork == null) { - return null; - } - VehiclePropValue resValue = vehicleNetwork.getHalMock().onPropertyGet(value.value); - return new VehiclePropValueParcelable(resValue); - } - - @Override - public void onPropertySubscribe(int property, float sampleRate, int zones) { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork == null) { - return; - } - vehicleNetwork.getHalMock().onPropertySubscribe(property, sampleRate, zones); - } - - @Override - public void onPropertyUnsubscribe(int property) { - VehicleNetwork vehicleNetwork = mVehicleNetwork.get(); - if (vehicleNetwork == null) { - return; - } - vehicleNetwork.getHalMock().onPropertyUnsubscribe(property); - } - } - - private VehiclePropValue getProperty(int property, int zone, int customPropetyDataType) { - boolean isCustom = isCustomProperty(property); - int valueType = isCustom - ? customPropetyDataType - : VehicleNetworkConsts.getVehicleValueType(property); - - VehiclePropValue.Builder valuePrototypeBuilder = - VehiclePropValueUtil.createBuilder(property, valueType, 0); - - if (zone != NO_ZONE) { - valuePrototypeBuilder.setZone(zone); - } - - VehiclePropValue v = getProperty(valuePrototypeBuilder.build()); - if (v == null) { - // if property is invalid, IllegalArgumentException should have been thrown - // from getProperty. - throw new IllegalStateException(); - } - - if (!isCustom && v.getValueType() != valueType) { - throw new IllegalArgumentException( - "Unexpected type for property 0x" + Integer.toHexString(property) + - " got:0x" + Integer.toHexString(v.getValueType()) - + ", expecting:0x" + Integer.toHexString(valueType)); - } - return v; - } - - private void assertVectorLength(int actual, int property, int valueType) { - int expectedLen = getVectorLength(valueType); - if (expectedLen != actual) { - throw new IllegalStateException("Invalid array size for property: " + property - + ". Expected: " + expectedLen - + ", actual: " + actual); - } - } -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkConsts.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkConsts.java deleted file mode 100644 index 047b3ab419..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkConsts.java +++ /dev/null @@ -1,1365 +0,0 @@ - -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Autogenerated from vehicle.h using -// libvehiclenetwork/tool/vehiclehal_code_gen.py. -// Do not modify manually. - -package com.android.car.vehiclenetwork; - -public class VehicleNetworkConsts { - -public static final int VEHICLE_PROPERTY_INVALID = 0x0; -public static final int VEHICLE_PROPERTY_INFO_VIN = 0x00000100; -public static final int VEHICLE_PROPERTY_INFO_MAKE = 0x00000101; -public static final int VEHICLE_PROPERTY_INFO_MODEL = 0x00000102; -public static final int VEHICLE_PROPERTY_INFO_MODEL_YEAR = 0x00000103; -public static final int VEHICLE_PROPERTY_INFO_FUEL_CAPACITY = 0x00000104; -public static final int VEHICLE_PROPERTY_PERF_ODOMETER = 0x00000204; -public static final int VEHICLE_PROPERTY_PERF_VEHICLE_SPEED = 0x00000207; -public static final int VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP = 0x00000301; -public static final int VEHICLE_PROPERTY_ENGINE_OIL_TEMP = 0x00000304; -public static final int VEHICLE_PROPERTY_ENGINE_RPM = 0x00000305; -public static final int VEHICLE_PROPERTY_GEAR_SELECTION = 0x00000400; -public static final int VEHICLE_PROPERTY_CURRENT_GEAR = 0x00000401; -public static final int VEHICLE_PROPERTY_PARKING_BRAKE_ON = 0x00000402; -public static final int VEHICLE_PROPERTY_DRIVING_STATUS = 0x00000404; -public static final int VEHICLE_PROPERTY_FUEL_LEVEL_LOW = 0x00000405; -public static final int VEHICLE_PROPERTY_NIGHT_MODE = 0x00000407; -public static final int VEHICLE_PROPERTY_HVAC_FAN_SPEED = 0x00000500; -public static final int VEHICLE_PROPERTY_HVAC_FAN_DIRECTION = 0x00000501; -public static final int VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT = 0x00000502; -public static final int VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET = 0x00000503; -public static final int VEHICLE_PROPERTY_HVAC_DEFROSTER = 0x00000504; -public static final int VEHICLE_PROPERTY_HVAC_AC_ON = 0x00000505; -public static final int VEHICLE_PROPERTY_HVAC_MAX_AC_ON = 0x00000506; -public static final int VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON = 0x00000507; -public static final int VEHICLE_PROPERTY_HVAC_RECIRC_ON = 0x00000508; -public static final int VEHICLE_PROPERTY_HVAC_DUAL_ON = 0x00000509; -public static final int VEHICLE_PROPERTY_HVAC_AUTO_ON = 0x0000050A; -public static final int VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE = 0x0000050B; -public static final int VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT = 0x0000050C; -public static final int VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP = 0x0000050D; -public static final int VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS = 0x0000050E; -public static final int VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM = 0x0000050F; -public static final int VEHICLE_PROPERTY_HVAC_POWER_ON = 0x00000510; -public static final int VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE = 0x00000511; -public static final int VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE = 0x00000703; -public static final int VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE = 0x00000704; -public static final int VEHICLE_PROPERTY_RADIO_PRESET = 0x00000801; -public static final int VEHICLE_PROPERTY_AUDIO_FOCUS = 0x00000900; -public static final int VEHICLE_PROPERTY_AUDIO_VOLUME = 0x00000901; -public static final int VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT = 0x00000902; -public static final int VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY = 0x00000903; -public static final int VEHICLE_PROPERTY_AUDIO_HW_VARIANT = 0x00000904; -public static final int VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT = 0x00000905; -public static final int VEHICLE_PROPERTY_AP_POWER_STATE = 0x00000A00; -public static final int VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS = 0x00000A01; -public static final int VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON = 0x00000A02; -public static final int VEHICLE_PROPERTY_HW_KEY_INPUT = 0x00000A10; -public static final int VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO = 0x00000A20; -public static final int VEHICLE_PROPERTY_UNIX_TIME = 0x00000A30; -public static final int VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS = 0x00000A31; -public static final int VEHICLE_PROPERTY_DOOR_POS = 0x00000B00; -public static final int VEHICLE_PROPERTY_DOOR_MOVE = 0x00000B01; -public static final int VEHICLE_PROPERTY_DOOR_LOCK = 0x00000B02; -public static final int VEHICLE_PROPERTY_MIRROR_Z_POS = 0x00000B40; -public static final int VEHICLE_PROPERTY_MIRROR_Z_MOVE = 0x00000B41; -public static final int VEHICLE_PROPERTY_MIRROR_Y_POS = 0x00000B42; -public static final int VEHICLE_PROPERTY_MIRROR_Y_MOVE = 0x00000B43; -public static final int VEHICLE_PROPERTY_MIRROR_LOCK = 0x00000B44; -public static final int VEHICLE_PROPERTY_MIRROR_FOLD = 0x00000B45; -public static final int VEHICLE_PROPERTY_SEAT_MEMORY_SELECT = 0x00000B80; -public static final int VEHICLE_PROPERTY_SEAT_MEMORY_SET = 0x00000B81; -public static final int VEHICLE_PROPERTY_SEAT_BELT_BUCKLED = 0x00000B82; -public static final int VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS = 0x00000B83; -public static final int VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE = 0x00000B84; -public static final int VEHICLE_PROPERTY_SEAT_FORE_AFT_POS = 0x00000B85; -public static final int VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE = 0x00000B86; -public static final int VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS = 0x00000B87; -public static final int VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE = 0x00000B88; -public static final int VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS = 0x00000B89; -public static final int VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE = 0x00000B8A; -public static final int VEHICLE_PROPERTY_SEAT_HEIGHT_POS = 0x00000B8B; -public static final int VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE = 0x00000B8C; -public static final int VEHICLE_PROPERTY_SEAT_DEPTH_POS = 0x00000B8D; -public static final int VEHICLE_PROPERTY_SEAT_DEPTH_MOVE = 0x00000B8E; -public static final int VEHICLE_PROPERTY_SEAT_TILT_POS = 0x00000B8F; -public static final int VEHICLE_PROPERTY_SEAT_TILT_MOVE = 0x00000B90; -public static final int VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS = 0x00000B91; -public static final int VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE = 0x00000B92; -public static final int VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS = 0x00000B93; -public static final int VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 0x00000B94; -public static final int VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS = 0x00000B95; -public static final int VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE = 0x00000B96; -public static final int VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS = 0x00000B97; -public static final int VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE = 0x00000B98; -public static final int VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS = 0x00000B99; -public static final int VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE = 0x00000B9A; -public static final int VEHICLE_PROPERTY_WINDOW_POS = 0x00000BC0; -public static final int VEHICLE_PROPERTY_WINDOW_MOVE = 0x00000BC1; -public static final int VEHICLE_PROPERTY_WINDOW_VENT_POS = 0x00000BC2; -public static final int VEHICLE_PROPERTY_WINDOW_VENT_MOVE = 0x00000BC3; -public static final int VEHICLE_PROPERTY_WINDOW_LOCK = 0x00000BC4; -public static final int VEHICLE_PROPERTY_CUSTOM_START = 0x70000000; -public static final int VEHICLE_PROPERTY_CUSTOM_END = 0x73ffffff; -public static final int VEHICLE_PROPERTY_INTERNAL_START = 0x74000000; -public static final int VEHICLE_PROPERTY_INTERNAL_END = 0x74ffffff; -public static final int VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE = 0x74000000; -public static int getVehicleValueType(int property) { -switch (property) { -case VEHICLE_PROPERTY_INFO_VIN: return VehicleValueType.VEHICLE_VALUE_TYPE_STRING; -case VEHICLE_PROPERTY_INFO_MAKE: return VehicleValueType.VEHICLE_VALUE_TYPE_STRING; -case VEHICLE_PROPERTY_INFO_MODEL: return VehicleValueType.VEHICLE_VALUE_TYPE_STRING; -case VEHICLE_PROPERTY_INFO_MODEL_YEAR: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_INFO_FUEL_CAPACITY: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT; -case VEHICLE_PROPERTY_PERF_ODOMETER: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT; -case VEHICLE_PROPERTY_PERF_VEHICLE_SPEED: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT; -case VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT; -case VEHICLE_PROPERTY_ENGINE_OIL_TEMP: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT; -case VEHICLE_PROPERTY_ENGINE_RPM: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT; -case VEHICLE_PROPERTY_GEAR_SELECTION: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_CURRENT_GEAR: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_PARKING_BRAKE_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN; -case VEHICLE_PROPERTY_DRIVING_STATUS: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_FUEL_LEVEL_LOW: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN; -case VEHICLE_PROPERTY_NIGHT_MODE: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT; -case VEHICLE_PROPERTY_HVAC_DEFROSTER: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_AC_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_DUAL_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_AUTO_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_HVAC_POWER_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT; -case VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT; -case VEHICLE_PROPERTY_RADIO_PRESET: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4; -case VEHICLE_PROPERTY_AUDIO_FOCUS: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4; -case VEHICLE_PROPERTY_AUDIO_VOLUME: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC3; -case VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2; -case VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2; -case VEHICLE_PROPERTY_AUDIO_HW_VARIANT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4; -case VEHICLE_PROPERTY_AP_POWER_STATE: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2; -case VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_HW_KEY_INPUT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4; -case VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4; -case VEHICLE_PROPERTY_UNIX_TIME: return VehicleValueType.VEHICLE_VALUE_TYPE_INT64; -case VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32; -case VEHICLE_PROPERTY_DOOR_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_DOOR_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_DOOR_LOCK: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_MIRROR_Z_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_MIRROR_Y_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_MIRROR_LOCK: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN; -case VEHICLE_PROPERTY_MIRROR_FOLD: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN; -case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_TILT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_WINDOW_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_WINDOW_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_WINDOW_VENT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_WINDOW_VENT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32; -case VEHICLE_PROPERTY_WINDOW_LOCK: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN; -case VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2; -default: return VehicleValueType.VEHICLE_VALUE_TYPE_SHOUD_NOT_USE; -} -} - -public static String getVehiclePropertyName(int property) { -switch (property) { -case VEHICLE_PROPERTY_INVALID: return "VEHICLE_PROPERTY_INVALID"; -case VEHICLE_PROPERTY_INFO_VIN: return "VEHICLE_PROPERTY_INFO_VIN"; -case VEHICLE_PROPERTY_INFO_MAKE: return "VEHICLE_PROPERTY_INFO_MAKE"; -case VEHICLE_PROPERTY_INFO_MODEL: return "VEHICLE_PROPERTY_INFO_MODEL"; -case VEHICLE_PROPERTY_INFO_MODEL_YEAR: return "VEHICLE_PROPERTY_INFO_MODEL_YEAR"; -case VEHICLE_PROPERTY_INFO_FUEL_CAPACITY: return "VEHICLE_PROPERTY_INFO_FUEL_CAPACITY"; -case VEHICLE_PROPERTY_PERF_ODOMETER: return "VEHICLE_PROPERTY_PERF_ODOMETER"; -case VEHICLE_PROPERTY_PERF_VEHICLE_SPEED: return "VEHICLE_PROPERTY_PERF_VEHICLE_SPEED"; -case VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP: return "VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP"; -case VEHICLE_PROPERTY_ENGINE_OIL_TEMP: return "VEHICLE_PROPERTY_ENGINE_OIL_TEMP"; -case VEHICLE_PROPERTY_ENGINE_RPM: return "VEHICLE_PROPERTY_ENGINE_RPM"; -case VEHICLE_PROPERTY_GEAR_SELECTION: return "VEHICLE_PROPERTY_GEAR_SELECTION"; -case VEHICLE_PROPERTY_CURRENT_GEAR: return "VEHICLE_PROPERTY_CURRENT_GEAR"; -case VEHICLE_PROPERTY_PARKING_BRAKE_ON: return "VEHICLE_PROPERTY_PARKING_BRAKE_ON"; -case VEHICLE_PROPERTY_DRIVING_STATUS: return "VEHICLE_PROPERTY_DRIVING_STATUS"; -case VEHICLE_PROPERTY_FUEL_LEVEL_LOW: return "VEHICLE_PROPERTY_FUEL_LEVEL_LOW"; -case VEHICLE_PROPERTY_NIGHT_MODE: return "VEHICLE_PROPERTY_NIGHT_MODE"; -case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return "VEHICLE_PROPERTY_HVAC_FAN_SPEED"; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return "VEHICLE_PROPERTY_HVAC_FAN_DIRECTION"; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return "VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT"; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return "VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET"; -case VEHICLE_PROPERTY_HVAC_DEFROSTER: return "VEHICLE_PROPERTY_HVAC_DEFROSTER"; -case VEHICLE_PROPERTY_HVAC_AC_ON: return "VEHICLE_PROPERTY_HVAC_AC_ON"; -case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return "VEHICLE_PROPERTY_HVAC_MAX_AC_ON"; -case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return "VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON"; -case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return "VEHICLE_PROPERTY_HVAC_RECIRC_ON"; -case VEHICLE_PROPERTY_HVAC_DUAL_ON: return "VEHICLE_PROPERTY_HVAC_DUAL_ON"; -case VEHICLE_PROPERTY_HVAC_AUTO_ON: return "VEHICLE_PROPERTY_HVAC_AUTO_ON"; -case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return "VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE"; -case VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT: return "VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT"; -case VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP: return "VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP"; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS: return "VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS"; -case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return "VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM"; -case VEHICLE_PROPERTY_HVAC_POWER_ON: return "VEHICLE_PROPERTY_HVAC_POWER_ON"; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return "VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE"; -case VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE: return "VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE"; -case VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE: return "VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE"; -case VEHICLE_PROPERTY_RADIO_PRESET: return "VEHICLE_PROPERTY_RADIO_PRESET"; -case VEHICLE_PROPERTY_AUDIO_FOCUS: return "VEHICLE_PROPERTY_AUDIO_FOCUS"; -case VEHICLE_PROPERTY_AUDIO_VOLUME: return "VEHICLE_PROPERTY_AUDIO_VOLUME"; -case VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT: return "VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT"; -case VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY: return "VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY"; -case VEHICLE_PROPERTY_AUDIO_HW_VARIANT: return "VEHICLE_PROPERTY_AUDIO_HW_VARIANT"; -case VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT: return "VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT"; -case VEHICLE_PROPERTY_AP_POWER_STATE: return "VEHICLE_PROPERTY_AP_POWER_STATE"; -case VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS: return "VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS"; -case VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON: return "VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON"; -case VEHICLE_PROPERTY_HW_KEY_INPUT: return "VEHICLE_PROPERTY_HW_KEY_INPUT"; -case VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO: return "VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO"; -case VEHICLE_PROPERTY_UNIX_TIME: return "VEHICLE_PROPERTY_UNIX_TIME"; -case VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS: return "VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS"; -case VEHICLE_PROPERTY_DOOR_POS: return "VEHICLE_PROPERTY_DOOR_POS"; -case VEHICLE_PROPERTY_DOOR_MOVE: return "VEHICLE_PROPERTY_DOOR_MOVE"; -case VEHICLE_PROPERTY_DOOR_LOCK: return "VEHICLE_PROPERTY_DOOR_LOCK"; -case VEHICLE_PROPERTY_MIRROR_Z_POS: return "VEHICLE_PROPERTY_MIRROR_Z_POS"; -case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return "VEHICLE_PROPERTY_MIRROR_Z_MOVE"; -case VEHICLE_PROPERTY_MIRROR_Y_POS: return "VEHICLE_PROPERTY_MIRROR_Y_POS"; -case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return "VEHICLE_PROPERTY_MIRROR_Y_MOVE"; -case VEHICLE_PROPERTY_MIRROR_LOCK: return "VEHICLE_PROPERTY_MIRROR_LOCK"; -case VEHICLE_PROPERTY_MIRROR_FOLD: return "VEHICLE_PROPERTY_MIRROR_FOLD"; -case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return "VEHICLE_PROPERTY_SEAT_MEMORY_SELECT"; -case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return "VEHICLE_PROPERTY_SEAT_MEMORY_SET"; -case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return "VEHICLE_PROPERTY_SEAT_BELT_BUCKLED"; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return "VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS"; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return "VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE"; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return "VEHICLE_PROPERTY_SEAT_FORE_AFT_POS"; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return "VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE"; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return "VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS"; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return "VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE"; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return "VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS"; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return "VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE"; -case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return "VEHICLE_PROPERTY_SEAT_HEIGHT_POS"; -case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return "VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE"; -case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return "VEHICLE_PROPERTY_SEAT_DEPTH_POS"; -case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return "VEHICLE_PROPERTY_SEAT_DEPTH_MOVE"; -case VEHICLE_PROPERTY_SEAT_TILT_POS: return "VEHICLE_PROPERTY_SEAT_TILT_POS"; -case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return "VEHICLE_PROPERTY_SEAT_TILT_MOVE"; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return "VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS"; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return "VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE"; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return "VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS"; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return "VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE"; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return "VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS"; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return "VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE"; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return "VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS"; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return "VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE"; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return "VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS"; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return "VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE"; -case VEHICLE_PROPERTY_WINDOW_POS: return "VEHICLE_PROPERTY_WINDOW_POS"; -case VEHICLE_PROPERTY_WINDOW_MOVE: return "VEHICLE_PROPERTY_WINDOW_MOVE"; -case VEHICLE_PROPERTY_WINDOW_VENT_POS: return "VEHICLE_PROPERTY_WINDOW_VENT_POS"; -case VEHICLE_PROPERTY_WINDOW_VENT_MOVE: return "VEHICLE_PROPERTY_WINDOW_VENT_MOVE"; -case VEHICLE_PROPERTY_WINDOW_LOCK: return "VEHICLE_PROPERTY_WINDOW_LOCK"; -case VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE: return "VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE"; -default: return "UNKNOWN_PROPERTY"; -} -} - -public static int[] getVehicleChangeMode(int property) { -switch (property) { -case VEHICLE_PROPERTY_INFO_VIN: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC }; -case VEHICLE_PROPERTY_INFO_MAKE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC }; -case VEHICLE_PROPERTY_INFO_MODEL: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC }; -case VEHICLE_PROPERTY_INFO_MODEL_YEAR: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC }; -case VEHICLE_PROPERTY_INFO_FUEL_CAPACITY: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC }; -case VEHICLE_PROPERTY_PERF_ODOMETER: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS }; -case VEHICLE_PROPERTY_PERF_VEHICLE_SPEED: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS }; -case VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS }; -case VEHICLE_PROPERTY_ENGINE_OIL_TEMP: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS }; -case VEHICLE_PROPERTY_ENGINE_RPM: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS }; -case VEHICLE_PROPERTY_GEAR_SELECTION: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_CURRENT_GEAR: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_PARKING_BRAKE_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_DRIVING_STATUS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_FUEL_LEVEL_LOW: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_NIGHT_MODE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_DEFROSTER: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_AC_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_DUAL_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_AUTO_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_POWER_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC }; -case VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS }; -case VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS }; -case VEHICLE_PROPERTY_RADIO_PRESET: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_AUDIO_FOCUS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_AUDIO_VOLUME: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_AUDIO_HW_VARIANT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC }; -case VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_AP_POWER_STATE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC }; -case VEHICLE_PROPERTY_HW_KEY_INPUT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_UNIX_TIME: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_SET }; -case VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_SET }; -case VEHICLE_PROPERTY_DOOR_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_DOOR_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_DOOR_LOCK: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_MIRROR_Z_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_MIRROR_Y_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_MIRROR_LOCK: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_MIRROR_FOLD: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_TILT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_WINDOW_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_WINDOW_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_WINDOW_VENT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_WINDOW_VENT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_WINDOW_LOCK: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -case VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE }; -default: return null; -} -} - -public static int[] getVehicleAccess(int property) { -switch (property) { -case VEHICLE_PROPERTY_INFO_VIN: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_INFO_MAKE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_INFO_MODEL: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_INFO_MODEL_YEAR: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_INFO_FUEL_CAPACITY: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_PERF_ODOMETER: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_PERF_VEHICLE_SPEED: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_ENGINE_OIL_TEMP: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_ENGINE_RPM: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_GEAR_SELECTION: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_CURRENT_GEAR: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_PARKING_BRAKE_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_DRIVING_STATUS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_FUEL_LEVEL_LOW: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_NIGHT_MODE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_DEFROSTER: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_AC_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_DUAL_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_AUTO_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_HVAC_POWER_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_RADIO_PRESET: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_AUDIO_FOCUS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_AUDIO_VOLUME: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_AUDIO_HW_VARIANT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_AP_POWER_STATE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ , VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_HW_KEY_INPUT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ }; -case VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_UNIX_TIME: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_DOOR_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_DOOR_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_DOOR_LOCK: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_MIRROR_Z_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_MIRROR_Y_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_MIRROR_LOCK: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_MIRROR_FOLD: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_TILT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_WINDOW_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_WINDOW_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_WINDOW_VENT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_WINDOW_VENT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE }; -case VEHICLE_PROPERTY_WINDOW_LOCK: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -case VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE }; -default: return null; -} -} - -public static int getVehicleZoneType(int property) { -switch (property) { -case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_DEFROSTER: return VehicleZoneType.VEHICLE_ZONE_TYPE_WINDOW ; -case VEHICLE_PROPERTY_HVAC_AC_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_DUAL_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_AUTO_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_POWER_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ; -case VEHICLE_PROPERTY_DOOR_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_DOOR ; -case VEHICLE_PROPERTY_DOOR_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_DOOR ; -case VEHICLE_PROPERTY_DOOR_LOCK: return VehicleZoneType.VEHICLE_ZONE_TYPE_DOOR ; -case VEHICLE_PROPERTY_MIRROR_Z_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_MIRROR ; -case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_MIRROR ; -case VEHICLE_PROPERTY_MIRROR_Y_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_MIRROR ; -case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_MIRROR ; -case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_TILT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ; -default: return VehicleZoneType.VEHICLE_ZONE_TYPE_NONE; -} -} - - - - -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_RADIO_AM_FM = "RADIO_AM_FM"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_RADIO_AM_FM_HD = "RADIO_AM_FM_HD"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_RADIO_DAB = "RADIO_DAB"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_RADIO_SATELLITE = "RADIO_SATELLITE"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_CD_DVD = "CD_DVD"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_AUX_IN0 = "AUX_IN0"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_AUX_IN1 = "AUX_IN1"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_EXT_NAV_GUIDANCE = "EXT_NAV_GUIDANCE"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_EXT_VOICE_COMMAND = "EXT_VOICE_COMMAND"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_EXT_VOICE_CALL = "EXT_VOICE_CALL"; -public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_EXT_SAFETY_ALERT = "EXT_SAFETY_ALERT"; - - - -public static class VehicleHvacFanDirection { -public static final int VEHICLE_HVAC_FAN_DIRECTION_FACE = 0x1; -public static final int VEHICLE_HVAC_FAN_DIRECTION_FLOOR = 0x2; -public static final int VEHICLE_HVAC_FAN_DIRECTION_FACE_AND_FLOOR = 0x3; -public static final int VEHICLE_HVAC_FAN_DIRECTION_DEFROST = 0x4; -public static final int VEHICLE_HVAC_FAN_DIRECTION_DEFROST_AND_FLOOR = 0x5; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_HVAC_FAN_DIRECTION_FACE: return "VEHICLE_HVAC_FAN_DIRECTION_FACE"; -case VEHICLE_HVAC_FAN_DIRECTION_FLOOR: return "VEHICLE_HVAC_FAN_DIRECTION_FLOOR"; -case VEHICLE_HVAC_FAN_DIRECTION_FACE_AND_FLOOR: return "VEHICLE_HVAC_FAN_DIRECTION_FACE_AND_FLOOR"; -case VEHICLE_HVAC_FAN_DIRECTION_DEFROST: return "VEHICLE_HVAC_FAN_DIRECTION_DEFROST"; -case VEHICLE_HVAC_FAN_DIRECTION_DEFROST_AND_FLOOR: return "VEHICLE_HVAC_FAN_DIRECTION_DEFROST_AND_FLOOR"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleRadioConsts { -public static final int VEHICLE_RADIO_PRESET_MIN_VALUE = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_RADIO_PRESET_MIN_VALUE: return "VEHICLE_RADIO_PRESET_MIN_VALUE"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioFocusRequest { -public static final int VEHICLE_AUDIO_FOCUS_REQUEST_GAIN = 0x1; -public static final int VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT = 0x2; -public static final int VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_MAY_DUCK = 0x3; -public static final int VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_NO_DUCK = 0x4; -public static final int VEHICLE_AUDIO_FOCUS_REQUEST_RELEASE = 0x5; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_FOCUS_REQUEST_GAIN: return "VEHICLE_AUDIO_FOCUS_REQUEST_GAIN"; -case VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT: return "VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT"; -case VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_MAY_DUCK: return "VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_MAY_DUCK"; -case VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_NO_DUCK: return "VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_NO_DUCK"; -case VEHICLE_AUDIO_FOCUS_REQUEST_RELEASE: return "VEHICLE_AUDIO_FOCUS_REQUEST_RELEASE"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioFocusState { -public static final int VEHICLE_AUDIO_FOCUS_STATE_GAIN = 0x1; -public static final int VEHICLE_AUDIO_FOCUS_STATE_GAIN_TRANSIENT = 0x2; -public static final int VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_CAN_DUCK = 0x3; -public static final int VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT = 0x4; -public static final int VEHICLE_AUDIO_FOCUS_STATE_LOSS = 0x5; -public static final int VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_EXLCUSIVE = 0x6; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_FOCUS_STATE_GAIN: return "VEHICLE_AUDIO_FOCUS_STATE_GAIN"; -case VEHICLE_AUDIO_FOCUS_STATE_GAIN_TRANSIENT: return "VEHICLE_AUDIO_FOCUS_STATE_GAIN_TRANSIENT"; -case VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_CAN_DUCK: return "VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_CAN_DUCK"; -case VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT: return "VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT"; -case VEHICLE_AUDIO_FOCUS_STATE_LOSS: return "VEHICLE_AUDIO_FOCUS_STATE_LOSS"; -case VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_EXLCUSIVE: return "VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_EXLCUSIVE"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioStreamFlag { -public static final int VEHICLE_AUDIO_STREAM_STREAM0_FLAG = (0x1<<0); -public static final int VEHICLE_AUDIO_STREAM_STREAM1_FLAG = (0x1<<1); -public static final int VEHICLE_AUDIO_STREAM_STREAM2_FLAG = (0x1<<2); -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_STREAM_STREAM0_FLAG: return "VEHICLE_AUDIO_STREAM_STREAM0_FLAG"; -case VEHICLE_AUDIO_STREAM_STREAM1_FLAG: return "VEHICLE_AUDIO_STREAM_STREAM1_FLAG"; -case VEHICLE_AUDIO_STREAM_STREAM2_FLAG: return "VEHICLE_AUDIO_STREAM_STREAM2_FLAG"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioStream { -public static final int VEHICLE_AUDIO_STREAM0 = 0; -public static final int VEHICLE_AUDIO_STREAM1 = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_STREAM0: return "VEHICLE_AUDIO_STREAM0"; -case VEHICLE_AUDIO_STREAM1: return "VEHICLE_AUDIO_STREAM1"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioExtFocusFlag { -public static final int VEHICLE_AUDIO_EXT_FOCUS_NONE_FLAG = 0x0; -public static final int VEHICLE_AUDIO_EXT_FOCUS_CAR_PERMANENT_FLAG = 0x1; -public static final int VEHICLE_AUDIO_EXT_FOCUS_CAR_TRANSIENT_FLAG = 0x2; -public static final int VEHICLE_AUDIO_EXT_FOCUS_CAR_PLAY_ONLY_FLAG = 0x4; -public static final int VEHICLE_AUDIO_EXT_FOCUS_CAR_MUTE_MEDIA_FLAG = 0x8; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_EXT_FOCUS_NONE_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_NONE_FLAG"; -case VEHICLE_AUDIO_EXT_FOCUS_CAR_PERMANENT_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_CAR_PERMANENT_FLAG"; -case VEHICLE_AUDIO_EXT_FOCUS_CAR_TRANSIENT_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_CAR_TRANSIENT_FLAG"; -case VEHICLE_AUDIO_EXT_FOCUS_CAR_PLAY_ONLY_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_CAR_PLAY_ONLY_FLAG"; -case VEHICLE_AUDIO_EXT_FOCUS_CAR_MUTE_MEDIA_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_CAR_MUTE_MEDIA_FLAG"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioFocusIndex { -public static final int VEHICLE_AUDIO_FOCUS_INDEX_FOCUS = 0; -public static final int VEHICLE_AUDIO_FOCUS_INDEX_STREAMS = 1; -public static final int VEHICLE_AUDIO_FOCUS_INDEX_EXTERNAL_FOCUS_STATE = 2; -public static final int VEHICLE_AUDIO_FOCUS_INDEX_AUDIO_CONTEXTS = 3; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_FOCUS_INDEX_FOCUS: return "VEHICLE_AUDIO_FOCUS_INDEX_FOCUS"; -case VEHICLE_AUDIO_FOCUS_INDEX_STREAMS: return "VEHICLE_AUDIO_FOCUS_INDEX_STREAMS"; -case VEHICLE_AUDIO_FOCUS_INDEX_EXTERNAL_FOCUS_STATE: return "VEHICLE_AUDIO_FOCUS_INDEX_EXTERNAL_FOCUS_STATE"; -case VEHICLE_AUDIO_FOCUS_INDEX_AUDIO_CONTEXTS: return "VEHICLE_AUDIO_FOCUS_INDEX_AUDIO_CONTEXTS"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioContextFlag { -public static final int VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG = 0x1; -public static final int VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG = 0x2; -public static final int VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG = 0x4; -public static final int VEHICLE_AUDIO_CONTEXT_CALL_FLAG = 0x8; -public static final int VEHICLE_AUDIO_CONTEXT_ALARM_FLAG = 0x10; -public static final int VEHICLE_AUDIO_CONTEXT_NOTIFICATION_FLAG = 0x20; -public static final int VEHICLE_AUDIO_CONTEXT_UNKNOWN_FLAG = 0x40; -public static final int VEHICLE_AUDIO_CONTEXT_SAFETY_ALERT_FLAG = 0x80; -public static final int VEHICLE_AUDIO_CONTEXT_CD_ROM_FLAG = 0x100; -public static final int VEHICLE_AUDIO_CONTEXT_AUX_AUDIO_FLAG = 0x200; -public static final int VEHICLE_AUDIO_CONTEXT_SYSTEM_SOUND_FLAG = 0x400; -public static final int VEHICLE_AUDIO_CONTEXT_RADIO_FLAG = 0x800; -public static final int VEHICLE_AUDIO_CONTEXT_EXT_SOURCE_FLAG = 0x1000; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG: return "VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG"; -case VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG: return "VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG"; -case VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG: return "VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG"; -case VEHICLE_AUDIO_CONTEXT_CALL_FLAG: return "VEHICLE_AUDIO_CONTEXT_CALL_FLAG"; -case VEHICLE_AUDIO_CONTEXT_ALARM_FLAG: return "VEHICLE_AUDIO_CONTEXT_ALARM_FLAG"; -case VEHICLE_AUDIO_CONTEXT_NOTIFICATION_FLAG: return "VEHICLE_AUDIO_CONTEXT_NOTIFICATION_FLAG"; -case VEHICLE_AUDIO_CONTEXT_UNKNOWN_FLAG: return "VEHICLE_AUDIO_CONTEXT_UNKNOWN_FLAG"; -case VEHICLE_AUDIO_CONTEXT_SAFETY_ALERT_FLAG: return "VEHICLE_AUDIO_CONTEXT_SAFETY_ALERT_FLAG"; -case VEHICLE_AUDIO_CONTEXT_CD_ROM_FLAG: return "VEHICLE_AUDIO_CONTEXT_CD_ROM_FLAG"; -case VEHICLE_AUDIO_CONTEXT_AUX_AUDIO_FLAG: return "VEHICLE_AUDIO_CONTEXT_AUX_AUDIO_FLAG"; -case VEHICLE_AUDIO_CONTEXT_SYSTEM_SOUND_FLAG: return "VEHICLE_AUDIO_CONTEXT_SYSTEM_SOUND_FLAG"; -case VEHICLE_AUDIO_CONTEXT_RADIO_FLAG: return "VEHICLE_AUDIO_CONTEXT_RADIO_FLAG"; -case VEHICLE_AUDIO_CONTEXT_EXT_SOURCE_FLAG: return "VEHICLE_AUDIO_CONTEXT_EXT_SOURCE_FLAG"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioVolumeCapabilityFlag { -public static final int VEHICLE_AUDIO_VOLUME_CAPABILITY_PERSISTENT_STORAGE = 0x1; -public static final int VEHICLE_AUDIO_VOLUME_CAPABILITY_MASTER_VOLUME_ONLY = 0x2; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_VOLUME_CAPABILITY_PERSISTENT_STORAGE: return "VEHICLE_AUDIO_VOLUME_CAPABILITY_PERSISTENT_STORAGE"; -case VEHICLE_AUDIO_VOLUME_CAPABILITY_MASTER_VOLUME_ONLY: return "VEHICLE_AUDIO_VOLUME_CAPABILITY_MASTER_VOLUME_ONLY"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioVolumeState { -public static final int VEHICLE_AUDIO_VOLUME_STATE_OK = 0; -public static final int VEHICLE_AUDIO_VOLUME_STATE_LIMIT_REACHED = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_VOLUME_STATE_OK: return "VEHICLE_AUDIO_VOLUME_STATE_OK"; -case VEHICLE_AUDIO_VOLUME_STATE_LIMIT_REACHED: return "VEHICLE_AUDIO_VOLUME_STATE_LIMIT_REACHED"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioVolumeIndex { -public static final int VEHICLE_AUDIO_VOLUME_INDEX_STREAM = 0; -public static final int VEHICLE_AUDIO_VOLUME_INDEX_VOLUME = 1; -public static final int VEHICLE_AUDIO_VOLUME_INDEX_STATE = 2; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_VOLUME_INDEX_STREAM: return "VEHICLE_AUDIO_VOLUME_INDEX_STREAM"; -case VEHICLE_AUDIO_VOLUME_INDEX_VOLUME: return "VEHICLE_AUDIO_VOLUME_INDEX_VOLUME"; -case VEHICLE_AUDIO_VOLUME_INDEX_STATE: return "VEHICLE_AUDIO_VOLUME_INDEX_STATE"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioVolumeLimitIndex { -public static final int VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_STREAM = 0; -public static final int VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_MAX_VOLUME = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_STREAM: return "VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_STREAM"; -case VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_MAX_VOLUME: return "VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_MAX_VOLUME"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioRoutingPolicyIndex { -public static final int VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM = 0; -public static final int VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM: return "VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM"; -case VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS: return "VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioHwVariantConfigFlag { -public static final int VEHICLE_AUDIO_HW_VARIANT_FLAG_INTERNAL_RADIO_FLAG = 0x1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_HW_VARIANT_FLAG_INTERNAL_RADIO_FLAG: return "VEHICLE_AUDIO_HW_VARIANT_FLAG_INTERNAL_RADIO_FLAG"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleApPowerStateConfigFlag { -public static final int VEHICLE_AP_POWER_STATE_CONFIG_ENABLE_DEEP_SLEEP_FLAG = 0x1; -public static final int VEHICLE_AP_POWER_STATE_CONFIG_SUPPORT_TIMER_POWER_ON_FLAG = 0x2; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AP_POWER_STATE_CONFIG_ENABLE_DEEP_SLEEP_FLAG: return "VEHICLE_AP_POWER_STATE_CONFIG_ENABLE_DEEP_SLEEP_FLAG"; -case VEHICLE_AP_POWER_STATE_CONFIG_SUPPORT_TIMER_POWER_ON_FLAG: return "VEHICLE_AP_POWER_STATE_CONFIG_SUPPORT_TIMER_POWER_ON_FLAG"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleApPowerState { -public static final int VEHICLE_AP_POWER_STATE_OFF = 0; -public static final int VEHICLE_AP_POWER_STATE_DEEP_SLEEP = 1; -public static final int VEHICLE_AP_POWER_STATE_ON_DISP_OFF = 2; -public static final int VEHICLE_AP_POWER_STATE_ON_FULL = 3; -public static final int VEHICLE_AP_POWER_STATE_SHUTDOWN_PREPARE = 4; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AP_POWER_STATE_OFF: return "VEHICLE_AP_POWER_STATE_OFF"; -case VEHICLE_AP_POWER_STATE_DEEP_SLEEP: return "VEHICLE_AP_POWER_STATE_DEEP_SLEEP"; -case VEHICLE_AP_POWER_STATE_ON_DISP_OFF: return "VEHICLE_AP_POWER_STATE_ON_DISP_OFF"; -case VEHICLE_AP_POWER_STATE_ON_FULL: return "VEHICLE_AP_POWER_STATE_ON_FULL"; -case VEHICLE_AP_POWER_STATE_SHUTDOWN_PREPARE: return "VEHICLE_AP_POWER_STATE_SHUTDOWN_PREPARE"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleApPowerStateShutdownParam { -public static final int VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_IMMEDIATELY = 1; -public static final int VEHICLE_AP_POWER_SHUTDOWN_PARAM_CAN_SLEEP = 2; -public static final int VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_ONLY = 3; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_IMMEDIATELY: return "VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_IMMEDIATELY"; -case VEHICLE_AP_POWER_SHUTDOWN_PARAM_CAN_SLEEP: return "VEHICLE_AP_POWER_SHUTDOWN_PARAM_CAN_SLEEP"; -case VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_ONLY: return "VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_ONLY"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleApPowerSetState { -public static final int VEHICLE_AP_POWER_SET_BOOT_COMPLETE = 0x1; -public static final int VEHICLE_AP_POWER_SET_DEEP_SLEEP_ENTRY = 0x2; -public static final int VEHICLE_AP_POWER_SET_DEEP_SLEEP_EXIT = 0x3; -public static final int VEHICLE_AP_POWER_SET_SHUTDOWN_POSTPONE = 0x4; -public static final int VEHICLE_AP_POWER_SET_SHUTDOWN_START = 0x5; -public static final int VEHICLE_AP_POWER_SET_DISPLAY_OFF = 0x6; -public static final int VEHICLE_AP_POWER_SET_DISPLAY_ON = 0x7; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AP_POWER_SET_BOOT_COMPLETE: return "VEHICLE_AP_POWER_SET_BOOT_COMPLETE"; -case VEHICLE_AP_POWER_SET_DEEP_SLEEP_ENTRY: return "VEHICLE_AP_POWER_SET_DEEP_SLEEP_ENTRY"; -case VEHICLE_AP_POWER_SET_DEEP_SLEEP_EXIT: return "VEHICLE_AP_POWER_SET_DEEP_SLEEP_EXIT"; -case VEHICLE_AP_POWER_SET_SHUTDOWN_POSTPONE: return "VEHICLE_AP_POWER_SET_SHUTDOWN_POSTPONE"; -case VEHICLE_AP_POWER_SET_SHUTDOWN_START: return "VEHICLE_AP_POWER_SET_SHUTDOWN_START"; -case VEHICLE_AP_POWER_SET_DISPLAY_OFF: return "VEHICLE_AP_POWER_SET_DISPLAY_OFF"; -case VEHICLE_AP_POWER_SET_DISPLAY_ON: return "VEHICLE_AP_POWER_SET_DISPLAY_ON"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleApPowerStateIndex { -public static final int VEHICLE_AP_POWER_STATE_INDEX_STATE = 0; -public static final int VEHICLE_AP_POWER_STATE_INDEX_ADDITIONAL = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AP_POWER_STATE_INDEX_STATE: return "VEHICLE_AP_POWER_STATE_INDEX_STATE"; -case VEHICLE_AP_POWER_STATE_INDEX_ADDITIONAL: return "VEHICLE_AP_POWER_STATE_INDEX_ADDITIONAL"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleApPowerBootupReason { -public static final int VEHICLE_AP_POWER_BOOTUP_REASON_USER_POWER_ON = 0; -public static final int VEHICLE_AP_POWER_BOOTUP_REASON_USER_UNLOCK = 1; -public static final int VEHICLE_AP_POWER_BOOTUP_REASON_TIMER = 2; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AP_POWER_BOOTUP_REASON_USER_POWER_ON: return "VEHICLE_AP_POWER_BOOTUP_REASON_USER_POWER_ON"; -case VEHICLE_AP_POWER_BOOTUP_REASON_USER_UNLOCK: return "VEHICLE_AP_POWER_BOOTUP_REASON_USER_UNLOCK"; -case VEHICLE_AP_POWER_BOOTUP_REASON_TIMER: return "VEHICLE_AP_POWER_BOOTUP_REASON_TIMER"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleHwKeyInputAction { -public static final int VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0; -public static final int VEHICLE_HW_KEY_INPUT_ACTION_UP = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_HW_KEY_INPUT_ACTION_DOWN: return "VEHICLE_HW_KEY_INPUT_ACTION_DOWN"; -case VEHICLE_HW_KEY_INPUT_ACTION_UP: return "VEHICLE_HW_KEY_INPUT_ACTION_UP"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleDisplay { -public static final int VEHICLE_DISPLAY_MAIN = 0; -public static final int VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_DISPLAY_MAIN: return "VEHICLE_DISPLAY_MAIN"; -case VEHICLE_DISPLAY_INSTRUMENT_CLUSTER: return "VEHICLE_DISPLAY_INSTRUMENT_CLUSTER"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleInstumentClusterType { -public static final int VEHICLE_INSTRUMENT_CLUSTER_TYPE_NONE = 0; -public static final int VEHICLE_INSTRUMENT_CLUSTER_TYPE_HAL_INTERFACE = 1; -public static final int VEHICLE_INSTRUMENT_CLUSTER_TYPE_EXTERNAL_DISPLAY = 2; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_INSTRUMENT_CLUSTER_TYPE_NONE: return "VEHICLE_INSTRUMENT_CLUSTER_TYPE_NONE"; -case VEHICLE_INSTRUMENT_CLUSTER_TYPE_HAL_INTERFACE: return "VEHICLE_INSTRUMENT_CLUSTER_TYPE_HAL_INTERFACE"; -case VEHICLE_INSTRUMENT_CLUSTER_TYPE_EXTERNAL_DISPLAY: return "VEHICLE_INSTRUMENT_CLUSTER_TYPE_EXTERNAL_DISPLAY"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleValueType { -public static final int VEHICLE_VALUE_TYPE_SHOUD_NOT_USE = 0x00; -public static final int VEHICLE_VALUE_TYPE_STRING = 0x01; -public static final int VEHICLE_VALUE_TYPE_BYTES = 0x02; -public static final int VEHICLE_VALUE_TYPE_BOOLEAN = 0x03; -public static final int VEHICLE_VALUE_TYPE_ZONED_BOOLEAN = 0x04; -public static final int VEHICLE_VALUE_TYPE_INT64 = 0x05; -public static final int VEHICLE_VALUE_TYPE_FLOAT = 0x10; -public static final int VEHICLE_VALUE_TYPE_FLOAT_VEC2 = 0x11; -public static final int VEHICLE_VALUE_TYPE_FLOAT_VEC3 = 0x12; -public static final int VEHICLE_VALUE_TYPE_FLOAT_VEC4 = 0x13; -public static final int VEHICLE_VALUE_TYPE_INT32 = 0x20; -public static final int VEHICLE_VALUE_TYPE_INT32_VEC2 = 0x21; -public static final int VEHICLE_VALUE_TYPE_INT32_VEC3 = 0x22; -public static final int VEHICLE_VALUE_TYPE_INT32_VEC4 = 0x23; -public static final int VEHICLE_VALUE_TYPE_ZONED_FLOAT = 0x30; -public static final int VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2 = 0x31; -public static final int VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3 = 0x32; -public static final int VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4 = 0x33; -public static final int VEHICLE_VALUE_TYPE_ZONED_INT32 = 0x40; -public static final int VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2 = 0x41; -public static final int VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3 = 0x42; -public static final int VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4 = 0x43; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_VALUE_TYPE_SHOUD_NOT_USE: return "VEHICLE_VALUE_TYPE_SHOUD_NOT_USE"; -case VEHICLE_VALUE_TYPE_STRING: return "VEHICLE_VALUE_TYPE_STRING"; -case VEHICLE_VALUE_TYPE_BYTES: return "VEHICLE_VALUE_TYPE_BYTES"; -case VEHICLE_VALUE_TYPE_BOOLEAN: return "VEHICLE_VALUE_TYPE_BOOLEAN"; -case VEHICLE_VALUE_TYPE_ZONED_BOOLEAN: return "VEHICLE_VALUE_TYPE_ZONED_BOOLEAN"; -case VEHICLE_VALUE_TYPE_INT64: return "VEHICLE_VALUE_TYPE_INT64"; -case VEHICLE_VALUE_TYPE_FLOAT: return "VEHICLE_VALUE_TYPE_FLOAT"; -case VEHICLE_VALUE_TYPE_FLOAT_VEC2: return "VEHICLE_VALUE_TYPE_FLOAT_VEC2"; -case VEHICLE_VALUE_TYPE_FLOAT_VEC3: return "VEHICLE_VALUE_TYPE_FLOAT_VEC3"; -case VEHICLE_VALUE_TYPE_FLOAT_VEC4: return "VEHICLE_VALUE_TYPE_FLOAT_VEC4"; -case VEHICLE_VALUE_TYPE_INT32: return "VEHICLE_VALUE_TYPE_INT32"; -case VEHICLE_VALUE_TYPE_INT32_VEC2: return "VEHICLE_VALUE_TYPE_INT32_VEC2"; -case VEHICLE_VALUE_TYPE_INT32_VEC3: return "VEHICLE_VALUE_TYPE_INT32_VEC3"; -case VEHICLE_VALUE_TYPE_INT32_VEC4: return "VEHICLE_VALUE_TYPE_INT32_VEC4"; -case VEHICLE_VALUE_TYPE_ZONED_FLOAT: return "VEHICLE_VALUE_TYPE_ZONED_FLOAT"; -case VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2: return "VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2"; -case VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3: return "VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3"; -case VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4: return "VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4"; -case VEHICLE_VALUE_TYPE_ZONED_INT32: return "VEHICLE_VALUE_TYPE_ZONED_INT32"; -case VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2: return "VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2"; -case VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3: return "VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3"; -case VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4: return "VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleUnitType { -public static final int VEHICLE_UNIT_TYPE_SHOULD_NOT_USE = 0x00000000; -public static final int VEHICLE_UNIT_TYPE_METER_PER_SEC = 0x00000001; -public static final int VEHICLE_UNIT_TYPE_RPM = 0x00000002; -public static final int VEHICLE_UNIT_TYPE_HZ = 0x00000003; -public static final int VEHICLE_UNIT_TYPE_PERCENTILE = 0x00000010; -public static final int VEHICLE_UNIT_TYPE_MILLIMETER = 0x00000020; -public static final int VEHICLE_UNIT_TYPE_METER = 0x00000021; -public static final int VEHICLE_UNIT_TYPE_KILOMETER = 0x00000023; -public static final int VEHICLE_UNIT_TYPE_CELSIUS = 0x00000030; -public static final int VEHICLE_UNIT_TYPE_FAHRENHEIT = 0x00000031; -public static final int VEHICLE_UNIT_TYPE_KELVIN = 0x00000032; -public static final int VEHICLE_UNIT_TYPE_MILLILITER = 0x00000040; -public static final int VEHICLE_UNIT_TYPE_NANO_SECS = 0x00000050; -public static final int VEHICLE_UNIT_TYPE_SECS = 0x00000053; -public static final int VEHICLE_UNIT_TYPE_YEAR = 0x00000059; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_UNIT_TYPE_SHOULD_NOT_USE: return "VEHICLE_UNIT_TYPE_SHOULD_NOT_USE"; -case VEHICLE_UNIT_TYPE_METER_PER_SEC: return "VEHICLE_UNIT_TYPE_METER_PER_SEC"; -case VEHICLE_UNIT_TYPE_RPM: return "VEHICLE_UNIT_TYPE_RPM"; -case VEHICLE_UNIT_TYPE_HZ: return "VEHICLE_UNIT_TYPE_HZ"; -case VEHICLE_UNIT_TYPE_PERCENTILE: return "VEHICLE_UNIT_TYPE_PERCENTILE"; -case VEHICLE_UNIT_TYPE_MILLIMETER: return "VEHICLE_UNIT_TYPE_MILLIMETER"; -case VEHICLE_UNIT_TYPE_METER: return "VEHICLE_UNIT_TYPE_METER"; -case VEHICLE_UNIT_TYPE_KILOMETER: return "VEHICLE_UNIT_TYPE_KILOMETER"; -case VEHICLE_UNIT_TYPE_CELSIUS: return "VEHICLE_UNIT_TYPE_CELSIUS"; -case VEHICLE_UNIT_TYPE_FAHRENHEIT: return "VEHICLE_UNIT_TYPE_FAHRENHEIT"; -case VEHICLE_UNIT_TYPE_KELVIN: return "VEHICLE_UNIT_TYPE_KELVIN"; -case VEHICLE_UNIT_TYPE_MILLILITER: return "VEHICLE_UNIT_TYPE_MILLILITER"; -case VEHICLE_UNIT_TYPE_NANO_SECS: return "VEHICLE_UNIT_TYPE_NANO_SECS"; -case VEHICLE_UNIT_TYPE_SECS: return "VEHICLE_UNIT_TYPE_SECS"; -case VEHICLE_UNIT_TYPE_YEAR: return "VEHICLE_UNIT_TYPE_YEAR"; -default: return "UNKNOWN"; -} -} -} - -public static class VehiclePropChangeMode { -public static final int VEHICLE_PROP_CHANGE_MODE_STATIC = 0x00; -public static final int VEHICLE_PROP_CHANGE_MODE_ON_CHANGE = 0x01; -public static final int VEHICLE_PROP_CHANGE_MODE_CONTINUOUS = 0x02; -public static final int VEHICLE_PROP_CHANGE_MODE_POLL = 0x03; -public static final int VEHICLE_PROP_CHANGE_MODE_ON_SET = 0x04; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_PROP_CHANGE_MODE_STATIC: return "VEHICLE_PROP_CHANGE_MODE_STATIC"; -case VEHICLE_PROP_CHANGE_MODE_ON_CHANGE: return "VEHICLE_PROP_CHANGE_MODE_ON_CHANGE"; -case VEHICLE_PROP_CHANGE_MODE_CONTINUOUS: return "VEHICLE_PROP_CHANGE_MODE_CONTINUOUS"; -case VEHICLE_PROP_CHANGE_MODE_POLL: return "VEHICLE_PROP_CHANGE_MODE_POLL"; -case VEHICLE_PROP_CHANGE_MODE_ON_SET: return "VEHICLE_PROP_CHANGE_MODE_ON_SET"; -default: return "UNKNOWN"; -} -} -} - -public static class VehiclePropAccess { -public static final int VEHICLE_PROP_ACCESS_READ = 0x01; -public static final int VEHICLE_PROP_ACCESS_WRITE = 0x02; -public static final int VEHICLE_PROP_ACCESS_READ_WRITE = 0x03; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_PROP_ACCESS_READ: return "VEHICLE_PROP_ACCESS_READ"; -case VEHICLE_PROP_ACCESS_WRITE: return "VEHICLE_PROP_ACCESS_WRITE"; -case VEHICLE_PROP_ACCESS_READ_WRITE: return "VEHICLE_PROP_ACCESS_READ_WRITE"; -default: return "UNKNOWN"; -} -} -} - -public static class VehiclePermissionModel { -public static final int VEHICLE_PERMISSION_NO_RESTRICTION = 0; -public static final int VEHICLE_PERMISSION_OEM_ONLY = 0x1; -public static final int VEHICLE_PERMISSION_SYSTEM_APP_ONLY = 0x2; -public static final int VEHICLE_PERMISSION_OEM_OR_SYSTEM_APP = 0x3; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_PERMISSION_NO_RESTRICTION: return "VEHICLE_PERMISSION_NO_RESTRICTION"; -case VEHICLE_PERMISSION_OEM_ONLY: return "VEHICLE_PERMISSION_OEM_ONLY"; -case VEHICLE_PERMISSION_SYSTEM_APP_ONLY: return "VEHICLE_PERMISSION_SYSTEM_APP_ONLY"; -case VEHICLE_PERMISSION_OEM_OR_SYSTEM_APP: return "VEHICLE_PERMISSION_OEM_OR_SYSTEM_APP"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleDrivingStatus { -public static final int VEHICLE_DRIVING_STATUS_UNRESTRICTED = 0x00; -public static final int VEHICLE_DRIVING_STATUS_NO_VIDEO = 0x01; -public static final int VEHICLE_DRIVING_STATUS_NO_KEYBOARD_INPUT = 0x02; -public static final int VEHICLE_DRIVING_STATUS_NO_VOICE_INPUT = 0x04; -public static final int VEHICLE_DRIVING_STATUS_NO_CONFIG = 0x08; -public static final int VEHICLE_DRIVING_STATUS_LIMIT_MESSAGE_LEN = 0x10; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_DRIVING_STATUS_UNRESTRICTED: return "VEHICLE_DRIVING_STATUS_UNRESTRICTED"; -case VEHICLE_DRIVING_STATUS_NO_VIDEO: return "VEHICLE_DRIVING_STATUS_NO_VIDEO"; -case VEHICLE_DRIVING_STATUS_NO_KEYBOARD_INPUT: return "VEHICLE_DRIVING_STATUS_NO_KEYBOARD_INPUT"; -case VEHICLE_DRIVING_STATUS_NO_VOICE_INPUT: return "VEHICLE_DRIVING_STATUS_NO_VOICE_INPUT"; -case VEHICLE_DRIVING_STATUS_NO_CONFIG: return "VEHICLE_DRIVING_STATUS_NO_CONFIG"; -case VEHICLE_DRIVING_STATUS_LIMIT_MESSAGE_LEN: return "VEHICLE_DRIVING_STATUS_LIMIT_MESSAGE_LEN"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleGear { -public static final int VEHICLE_GEAR_NEUTRAL = 0x0001; -public static final int VEHICLE_GEAR_REVERSE = 0x0002; -public static final int VEHICLE_GEAR_PARK = 0x0004; -public static final int VEHICLE_GEAR_DRIVE = 0x0008; -public static final int VEHICLE_GEAR_LOW = 0x0010; -public static final int VEHICLE_GEAR_1 = 0x0010; -public static final int VEHICLE_GEAR_2 = 0x0020; -public static final int VEHICLE_GEAR_3 = 0x0040; -public static final int VEHICLE_GEAR_4 = 0x0080; -public static final int VEHICLE_GEAR_5 = 0x0100; -public static final int VEHICLE_GEAR_6 = 0x0200; -public static final int VEHICLE_GEAR_7 = 0x0400; -public static final int VEHICLE_GEAR_8 = 0x0800; -public static final int VEHICLE_GEAR_9 = 0x1000; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_GEAR_NEUTRAL: return "VEHICLE_GEAR_NEUTRAL"; -case VEHICLE_GEAR_REVERSE: return "VEHICLE_GEAR_REVERSE"; -case VEHICLE_GEAR_PARK: return "VEHICLE_GEAR_PARK"; -case VEHICLE_GEAR_DRIVE: return "VEHICLE_GEAR_DRIVE"; -case VEHICLE_GEAR_LOW: return "VEHICLE_GEAR_LOW"; -case VEHICLE_GEAR_2: return "VEHICLE_GEAR_2"; -case VEHICLE_GEAR_3: return "VEHICLE_GEAR_3"; -case VEHICLE_GEAR_4: return "VEHICLE_GEAR_4"; -case VEHICLE_GEAR_5: return "VEHICLE_GEAR_5"; -case VEHICLE_GEAR_6: return "VEHICLE_GEAR_6"; -case VEHICLE_GEAR_7: return "VEHICLE_GEAR_7"; -case VEHICLE_GEAR_8: return "VEHICLE_GEAR_8"; -case VEHICLE_GEAR_9: return "VEHICLE_GEAR_9"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleZone { -public static final int VEHICLE_ZONE_ROW_1_LEFT = 0x00000001; -public static final int VEHICLE_ZONE_ROW_1_CENTER = 0x00000002; -public static final int VEHICLE_ZONE_ROW_1_RIGHT = 0x00000004; -public static final int VEHICLE_ZONE_ROW_1_ALL = 0x00000008; -public static final int VEHICLE_ZONE_ROW_2_LEFT = 0x00000010; -public static final int VEHICLE_ZONE_ROW_2_CENTER = 0x00000020; -public static final int VEHICLE_ZONE_ROW_2_RIGHT = 0x00000040; -public static final int VEHICLE_ZONE_ROW_2_ALL = 0x00000080; -public static final int VEHICLE_ZONE_ROW_3_LEFT = 0x00000100; -public static final int VEHICLE_ZONE_ROW_3_CENTER = 0x00000200; -public static final int VEHICLE_ZONE_ROW_3_RIGHT = 0x00000400; -public static final int VEHICLE_ZONE_ROW_3_ALL = 0x00000800; -public static final int VEHICLE_ZONE_ROW_4_LEFT = 0x00001000; -public static final int VEHICLE_ZONE_ROW_4_CENTER = 0x00002000; -public static final int VEHICLE_ZONE_ROW_4_RIGHT = 0x00004000; -public static final int VEHICLE_ZONE_ROW_4_ALL = 0x00008000; -public static final int VEHICLE_ZONE_ALL = 0x80000000; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_ZONE_ROW_1_LEFT: return "VEHICLE_ZONE_ROW_1_LEFT"; -case VEHICLE_ZONE_ROW_1_CENTER: return "VEHICLE_ZONE_ROW_1_CENTER"; -case VEHICLE_ZONE_ROW_1_RIGHT: return "VEHICLE_ZONE_ROW_1_RIGHT"; -case VEHICLE_ZONE_ROW_1_ALL: return "VEHICLE_ZONE_ROW_1_ALL"; -case VEHICLE_ZONE_ROW_2_LEFT: return "VEHICLE_ZONE_ROW_2_LEFT"; -case VEHICLE_ZONE_ROW_2_CENTER: return "VEHICLE_ZONE_ROW_2_CENTER"; -case VEHICLE_ZONE_ROW_2_RIGHT: return "VEHICLE_ZONE_ROW_2_RIGHT"; -case VEHICLE_ZONE_ROW_2_ALL: return "VEHICLE_ZONE_ROW_2_ALL"; -case VEHICLE_ZONE_ROW_3_LEFT: return "VEHICLE_ZONE_ROW_3_LEFT"; -case VEHICLE_ZONE_ROW_3_CENTER: return "VEHICLE_ZONE_ROW_3_CENTER"; -case VEHICLE_ZONE_ROW_3_RIGHT: return "VEHICLE_ZONE_ROW_3_RIGHT"; -case VEHICLE_ZONE_ROW_3_ALL: return "VEHICLE_ZONE_ROW_3_ALL"; -case VEHICLE_ZONE_ROW_4_LEFT: return "VEHICLE_ZONE_ROW_4_LEFT"; -case VEHICLE_ZONE_ROW_4_CENTER: return "VEHICLE_ZONE_ROW_4_CENTER"; -case VEHICLE_ZONE_ROW_4_RIGHT: return "VEHICLE_ZONE_ROW_4_RIGHT"; -case VEHICLE_ZONE_ROW_4_ALL: return "VEHICLE_ZONE_ROW_4_ALL"; -case VEHICLE_ZONE_ALL: return "VEHICLE_ZONE_ALL"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleSeat { -public static final int VEHICLE_SEAT_ROW_1_LEFT = 0x0001; -public static final int VEHICLE_SEAT_ROW_1_CENTER = 0x0002; -public static final int VEHICLE_SEAT_ROW_1_RIGHT = 0x0004; -public static final int VEHICLE_SEAT_ROW_2_LEFT = 0x0010; -public static final int VEHICLE_SEAT_ROW_2_CENTER = 0x0020; -public static final int VEHICLE_SEAT_ROW_2_RIGHT = 0x0040; -public static final int VEHICLE_SEAT_ROW_3_LEFT = 0x0100; -public static final int VEHICLE_SEAT_ROW_3_CENTER = 0x0200; -public static final int VEHICLE_SEAT_ROW_3_RIGHT = 0x0400; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_SEAT_ROW_1_LEFT: return "VEHICLE_SEAT_ROW_1_LEFT"; -case VEHICLE_SEAT_ROW_1_CENTER: return "VEHICLE_SEAT_ROW_1_CENTER"; -case VEHICLE_SEAT_ROW_1_RIGHT: return "VEHICLE_SEAT_ROW_1_RIGHT"; -case VEHICLE_SEAT_ROW_2_LEFT: return "VEHICLE_SEAT_ROW_2_LEFT"; -case VEHICLE_SEAT_ROW_2_CENTER: return "VEHICLE_SEAT_ROW_2_CENTER"; -case VEHICLE_SEAT_ROW_2_RIGHT: return "VEHICLE_SEAT_ROW_2_RIGHT"; -case VEHICLE_SEAT_ROW_3_LEFT: return "VEHICLE_SEAT_ROW_3_LEFT"; -case VEHICLE_SEAT_ROW_3_CENTER: return "VEHICLE_SEAT_ROW_3_CENTER"; -case VEHICLE_SEAT_ROW_3_RIGHT: return "VEHICLE_SEAT_ROW_3_RIGHT"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleWindow { -public static final int VEHICLE_WINDOW_FRONT_WINDSHIELD = 0x0001; -public static final int VEHICLE_WINDOW_REAR_WINDSHIELD = 0x0002; -public static final int VEHICLE_WINDOW_ROOF_TOP = 0x0004; -public static final int VEHICLE_WINDOW_ROW_1_LEFT = 0x0010; -public static final int VEHICLE_WINDOW_ROW_1_RIGHT = 0x0020; -public static final int VEHICLE_WINDOW_ROW_2_LEFT = 0x0100; -public static final int VEHICLE_WINDOW_ROW_2_RIGHT = 0x0200; -public static final int VEHICLE_WINDOW_ROW_3_LEFT = 0x1000; -public static final int VEHICLE_WINDOW_ROW_3_RIGHT = 0x2000; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_WINDOW_FRONT_WINDSHIELD: return "VEHICLE_WINDOW_FRONT_WINDSHIELD"; -case VEHICLE_WINDOW_REAR_WINDSHIELD: return "VEHICLE_WINDOW_REAR_WINDSHIELD"; -case VEHICLE_WINDOW_ROOF_TOP: return "VEHICLE_WINDOW_ROOF_TOP"; -case VEHICLE_WINDOW_ROW_1_LEFT: return "VEHICLE_WINDOW_ROW_1_LEFT"; -case VEHICLE_WINDOW_ROW_1_RIGHT: return "VEHICLE_WINDOW_ROW_1_RIGHT"; -case VEHICLE_WINDOW_ROW_2_LEFT: return "VEHICLE_WINDOW_ROW_2_LEFT"; -case VEHICLE_WINDOW_ROW_2_RIGHT: return "VEHICLE_WINDOW_ROW_2_RIGHT"; -case VEHICLE_WINDOW_ROW_3_LEFT: return "VEHICLE_WINDOW_ROW_3_LEFT"; -case VEHICLE_WINDOW_ROW_3_RIGHT: return "VEHICLE_WINDOW_ROW_3_RIGHT"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleDoor { -public static final int VEHICLE_DOOR_ROW_1_LEFT = 0x00000001; -public static final int VEHICLE_DOOR_ROW_1_RIGHT = 0x00000004; -public static final int VEHICLE_DOOR_ROW_2_LEFT = 0x00000010; -public static final int VEHICLE_DOOR_ROW_2_RIGHT = 0x00000040; -public static final int VEHICLE_DOOR_ROW_3_LEFT = 0x00000100; -public static final int VEHICLE_DOOR_ROW_3_RIGHT = 0x00000400; -public static final int VEHICLE_DOOR_HOOD = 0x10000000; -public static final int VEHICLE_DOOR_REAR = 0x20000000; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_DOOR_ROW_1_LEFT: return "VEHICLE_DOOR_ROW_1_LEFT"; -case VEHICLE_DOOR_ROW_1_RIGHT: return "VEHICLE_DOOR_ROW_1_RIGHT"; -case VEHICLE_DOOR_ROW_2_LEFT: return "VEHICLE_DOOR_ROW_2_LEFT"; -case VEHICLE_DOOR_ROW_2_RIGHT: return "VEHICLE_DOOR_ROW_2_RIGHT"; -case VEHICLE_DOOR_ROW_3_LEFT: return "VEHICLE_DOOR_ROW_3_LEFT"; -case VEHICLE_DOOR_ROW_3_RIGHT: return "VEHICLE_DOOR_ROW_3_RIGHT"; -case VEHICLE_DOOR_HOOD: return "VEHICLE_DOOR_HOOD"; -case VEHICLE_DOOR_REAR: return "VEHICLE_DOOR_REAR"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleMirror { -public static final int VEHICLE_MIRROR_DRIVER_LEFT = 0x00000001; -public static final int VEHICLE_MIRROR_DRIVER_RIGHT = 0x00000002; -public static final int VEHICLE_MIRROR_DRIVER_CENTER = 0x00000004; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_MIRROR_DRIVER_LEFT: return "VEHICLE_MIRROR_DRIVER_LEFT"; -case VEHICLE_MIRROR_DRIVER_RIGHT: return "VEHICLE_MIRROR_DRIVER_RIGHT"; -case VEHICLE_MIRROR_DRIVER_CENTER: return "VEHICLE_MIRROR_DRIVER_CENTER"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleTurnSignal { -public static final int VEHICLE_SIGNAL_NONE = 0x00; -public static final int VEHICLE_SIGNAL_RIGHT = 0x01; -public static final int VEHICLE_SIGNAL_LEFT = 0x02; -public static final int VEHICLE_SIGNAL_EMERGENCY = 0x04; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_SIGNAL_NONE: return "VEHICLE_SIGNAL_NONE"; -case VEHICLE_SIGNAL_RIGHT: return "VEHICLE_SIGNAL_RIGHT"; -case VEHICLE_SIGNAL_LEFT: return "VEHICLE_SIGNAL_LEFT"; -case VEHICLE_SIGNAL_EMERGENCY: return "VEHICLE_SIGNAL_EMERGENCY"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleZoneType { -public static final int VEHICLE_ZONE_TYPE_NONE = 0x00; -public static final int VEHICLE_ZONE_TYPE_ZONE = 0x01; -public static final int VEHICLE_ZONE_TYPE_SEAT = 0x02; -public static final int VEHICLE_ZONE_TYPE_DOOR = 0x04; -public static final int VEHICLE_ZONE_TYPE_WINDOW = 0x10; -public static final int VEHICLE_ZONE_TYPE_MIRROR = 0x20; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_ZONE_TYPE_NONE: return "VEHICLE_ZONE_TYPE_NONE"; -case VEHICLE_ZONE_TYPE_ZONE: return "VEHICLE_ZONE_TYPE_ZONE"; -case VEHICLE_ZONE_TYPE_SEAT: return "VEHICLE_ZONE_TYPE_SEAT"; -case VEHICLE_ZONE_TYPE_DOOR: return "VEHICLE_ZONE_TYPE_DOOR"; -case VEHICLE_ZONE_TYPE_WINDOW: return "VEHICLE_ZONE_TYPE_WINDOW"; -case VEHICLE_ZONE_TYPE_MIRROR: return "VEHICLE_ZONE_TYPE_MIRROR"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleBoolean { -public static final int VEHICLE_FALSE = 0x00; -public static final int VEHICLE_TRUE = 0x01; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_FALSE: return "VEHICLE_FALSE"; -case VEHICLE_TRUE: return "VEHICLE_TRUE"; -default: return "UNKNOWN"; -} -} -} - -public static class VehiclePropertyOperation { -public static final int VEHICLE_OPERATION_GENERIC = 0; -public static final int VEHICLE_OPERATION_SET = 1; -public static final int VEHICLE_OPERATION_GET = 2; -public static final int VEHICLE_OPERATION_SUBSCRIBE = 3; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_OPERATION_GENERIC: return "VEHICLE_OPERATION_GENERIC"; -case VEHICLE_OPERATION_SET: return "VEHICLE_OPERATION_SET"; -case VEHICLE_OPERATION_GET: return "VEHICLE_OPERATION_GET"; -case VEHICLE_OPERATION_SUBSCRIBE: return "VEHICLE_OPERATION_SUBSCRIBE"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioStreamState { -public static final int VEHICLE_AUDIO_STREAM_STATE_STOPPED = 0; -public static final int VEHICLE_AUDIO_STREAM_STATE_STARTED = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_STREAM_STATE_STOPPED: return "VEHICLE_AUDIO_STREAM_STATE_STOPPED"; -case VEHICLE_AUDIO_STREAM_STATE_STARTED: return "VEHICLE_AUDIO_STREAM_STATE_STARTED"; -default: return "UNKNOWN"; -} -} -} - -public static class VehicleAudioStreamStateIndex { -public static final int VEHICLE_AUDIO_STREAM_STATE_INDEX_STATE = 0; -public static final int VEHICLE_AUDIO_STREAM_STATE_INDEX_STREAM = 1; -public static String enumToString(int v) { -switch(v) { -case VEHICLE_AUDIO_STREAM_STATE_INDEX_STATE: return "VEHICLE_AUDIO_STREAM_STATE_INDEX_STATE"; -case VEHICLE_AUDIO_STREAM_STATE_INDEX_STREAM: return "VEHICLE_AUDIO_STREAM_STATE_INDEX_STREAM"; -default: return "UNKNOWN"; -} -} -} - - -} - diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java deleted file mode 100644 index e8eedc1550..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.car.vehiclenetwork; - -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfig; -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue; - -import java.util.Arrays; - -public class VehicleNetworkProtoUtil { - public static String VehiclePropValueToString(VehiclePropValue value) { - StringBuilder sb = new StringBuilder(); - sb.append("prop:0x"); - sb.append(Integer.toHexString(value.getProp())); - sb.append(" type:0x"); - sb.append(Integer.toHexString(value.getValueType())); - sb.append(" floatValues:" + Arrays.toString(value.getFloatValuesList().toArray())); - sb.append(" integerValues:" + Arrays.toString(value.getInt32ValuesList().toArray())); - return sb.toString(); - } - - public static String VehiclePropConfigToString(VehiclePropConfig config) { - StringBuilder sb = new StringBuilder(); - sb.append("prop:0x"); - sb.append(Integer.toHexString(config.getProp())); - sb.append(" access:0x"); - sb.append(Integer.toHexString(config.getAccess())); - sb.append(" change_mode:0x"); - sb.append(Integer.toHexString(config.getChangeMode())); - sb.append(" value_type:0x"); - sb.append(Integer.toHexString(config.getValueType())); - sb.append(" permission_model:0x"); - sb.append(Integer.toHexString(config.getPermissionModel())); - return sb.toString(); - } - - public static boolean VehiclePropConfigEquals(VehiclePropConfig l, VehiclePropConfig r) { - if (l.getProp() != r.getProp()) { - return false; - } - if (l.getAccess() != r.getAccess()) { - return false; - } - if (l.getChangeMode() != r.getChangeMode()) { - return false; - } - if (l.getValueType() != r.getValueType()) { - return false; - } - if (l.getPermissionModel() != r.getPermissionModel()) { - return false; - } - return true; - } -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigUtil.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigUtil.java deleted file mode 100644 index 2482f39dbb..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigUtil.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.car.vehiclenetwork; - -import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePermissionModel; -import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePropAccess; -import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePropChangeMode; -import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleValueType; -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfig; - -import java.util.ArrayList; -import java.util.List; - -/** - * Utility class to help creating VehiclePropConfig. - */ -public class VehiclePropConfigUtil { - - public static VehiclePropConfig createStaticStringProperty(int property) { - return getBuilder(property, - VehiclePropAccess.VEHICLE_PROP_ACCESS_READ, - VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC, - VehicleValueType.VEHICLE_VALUE_TYPE_STRING, - VehiclePermissionModel.VEHICLE_PERMISSION_NO_RESTRICTION, - 0, 0f, 0f) - .build(); - } - - public static VehiclePropConfig createZonedProperty( - int property, int propAccess, int changeType, int valueType, int zones, - int configFlags) { - return VehiclePropConfig.newBuilder(). - setProp(property). - setAccess(propAccess). - setChangeMode(changeType). - setValueType(valueType). - setPermissionModel(VehiclePermissionModel.VEHICLE_PERMISSION_NO_RESTRICTION). - setZones(zones). - addConfigArray(configFlags). - setSampleRateMax(0). - setSampleRateMin(0). - build(); - } - - public static VehiclePropConfig createProperty( - int property, int propAccess, int changeType, int valueType, int configFlags) { - return getBuilder(property, - propAccess, - changeType, - valueType, - VehiclePermissionModel.VEHICLE_PERMISSION_NO_RESTRICTION, - configFlags, 0f, 0f) - .build(); - } - - public static VehiclePropConfig.Builder getBuilder(int property, int access, int changeMode, - int type, int permissionModel, int configFlags, float sampleRateMax, - float sampleRateMin) { - List emptyList = new ArrayList(); - return getBuilder(property, access, changeMode, type, permissionModel, configFlags, - sampleRateMax, sampleRateMin, emptyList, emptyList); - } - - public static VehiclePropConfig.Builder getBuilder(int property, int access, int changeMode, - int type, int permissionModel, int configFlags, float sampleRateMax, - float sampleRateMin, List int32Maxs, List int32Mins) { - return VehiclePropConfig.newBuilder(). - setProp(property). - setAccess(access). - setChangeMode(changeMode). - setValueType(type). - setPermissionModel(permissionModel). - addConfigArray(configFlags). - setSampleRateMax(sampleRateMax). - setSampleRateMin(sampleRateMin) - .addAllInt32Maxs(int32Maxs) - .addAllInt32Mins(int32Mins); - } -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.aidl deleted file mode 100644 index 48219f0fd4..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.aidl +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.car.vehiclenetwork; - -parcelable VehiclePropConfigsParcelable; diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.java deleted file mode 100644 index 29b20b6bb4..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.car.vehiclenetwork; - -import android.os.Parcel; -import android.os.Parcelable; - -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfigs; -import com.google.protobuf.InvalidProtocolBufferException; - -public class VehiclePropConfigsParcelable implements Parcelable { - - public final VehiclePropConfigs configs; - - public VehiclePropConfigsParcelable(VehiclePropConfigs configs) { - this.configs = configs; - } - - public VehiclePropConfigsParcelable(Parcel in) { - byte[] blob = in.readBlob(); - try { - configs = VehiclePropConfigs.parseFrom(blob); - } catch (InvalidProtocolBufferException e) { - throw new IllegalArgumentException(e); - } - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - // this is never used for java side as service is implemented in native side. - dest.writeBlob(configs.toByteArray()); - } - - public static final Creator CREATOR = - new Creator() { - @Override - public VehiclePropConfigsParcelable createFromParcel(Parcel in) { - return new VehiclePropConfigsParcelable(in); - } - - @Override - public VehiclePropConfigsParcelable[] newArray(int size) { - return new VehiclePropConfigsParcelable[size]; - } - }; -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.aidl deleted file mode 100644 index 6f0fd38b77..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.aidl +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.car.vehiclenetwork; - -parcelable VehiclePropValueParcelable; diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.java deleted file mode 100644 index 00b3045015..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.car.vehiclenetwork; - -import android.os.Parcel; -import android.os.Parcelable; -import android.os.Parcelable.Creator; - -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue; -import com.google.protobuf.InvalidProtocolBufferException; - -public class VehiclePropValueParcelable implements Parcelable { - - public final VehiclePropValue value; - - public VehiclePropValueParcelable(VehiclePropValue value) { - this.value = value; - } - - public VehiclePropValueParcelable(Parcel in) { - byte[] blob = in.readBlob(); - try { - value = VehiclePropValue.parseFrom(blob); - } catch (InvalidProtocolBufferException e) { - throw new IllegalArgumentException(e); - } - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - // this is never used for java side as service is implemented in native side. - dest.writeBlob(value.toByteArray()); - } - - public static final Creator CREATOR = - new Creator() { - @Override - public VehiclePropValueParcelable createFromParcel(Parcel in) { - return new VehiclePropValueParcelable(in); - } - - @Override - public VehiclePropValueParcelable[] newArray(int size) { - return new VehiclePropValueParcelable[size]; - } - }; -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueUtil.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueUtil.java deleted file mode 100644 index 5e47546300..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueUtil.java +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.car.vehiclenetwork; - -import static java.lang.Integer.toHexString; - -import com.google.protobuf.ByteString; - -import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleValueType; -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue; - -import java.util.Arrays; -import java.util.List; - -/** - * Utility class to help creating VehiclePropValue. - */ -public final class VehiclePropValueUtil { - - /** To prevent creating of utility class */ - private VehiclePropValueUtil() {} - - public static VehiclePropValue createIntValue(int property, int value, long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_INT32, timestamp). - addInt32Values(value). - build(); - } - - public static VehiclePropValue createIntVectorValue(int property, int[] values, - long timestamp) { - VehiclePropValue.Builder builder = createBuilder(property, - getVectorValueType(VehicleValueType.VEHICLE_VALUE_TYPE_INT32, values.length), - timestamp); - for (int v : values) { - builder.addInt32Values(v); - } - return builder.build(); - } - - public static VehiclePropValue createFloatValue(int property, float value, long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT, timestamp). - addFloatValues(value). - build(); - } - - public static VehiclePropValue createFloatVectorValue(int property, float[] values, - long timestamp) { - VehiclePropValue.Builder builder = createBuilder(property, - getVectorValueType(VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT, values.length), - timestamp); - for (float v : values) { - builder.addFloatValues(v); - } - return builder.build(); - } - - public static VehiclePropValue createLongValue(int property, long value, long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_INT64, timestamp). - setInt64Value(value). - build(); - } - - public static VehiclePropValue createStringValue(int property, String value, long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_STRING, timestamp). - setStringValue(value). - build(); - } - - public static VehiclePropValue createBooleanValue(int property, boolean value, long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN, timestamp). - addInt32Values(value ? 1 : 0). - build(); - } - - public static VehiclePropValue createBytesValue(int property, byte[] value, long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_BYTES, timestamp). - setBytesValue(ByteString.copyFrom(value)). - build(); - } - - public static VehiclePropValue createZonedIntValue(int property, int zone, int value, - long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32, timestamp). - setZone(zone). - addInt32Values(value). - build(); - } - - public static VehiclePropValue createZonedIntVectorValue(int property, int zone, int[] values, - long timestamp) { - int valueType = getVectorValueType( - VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32, values.length); - VehiclePropValue.Builder builder = createBuilder(property, valueType, timestamp). - setZone(zone); - for (int value : values) { - builder.addInt32Values(value); - } - return builder.build(); - } - - public static VehiclePropValue createZonedFloatVectorValue(int property, int zone, - float[] values, long timestamp) { - int valueType = getVectorValueType( - VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT, values.length); - VehiclePropValue.Builder builder = createBuilder(property, valueType, timestamp). - setZone(zone); - for (float value : values) { - builder.addFloatValues(value); - } - return builder.build(); - } - - - public static VehiclePropValue createZonedBooleanValue(int property, int zone, boolean value, - long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN,timestamp). - setZone(zone). - addInt32Values(value ? 1 : 0). - build(); - } - - public static VehiclePropValue createZonedFloatValue(int property, int zone, float value, - long timestamp) { - return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT,timestamp). - setZone(zone). - addFloatValues(value). - build(); - } - - public static VehiclePropValue createDummyValue(int property, int valueType) { - switch (valueType) { - case VehicleValueType.VEHICLE_VALUE_TYPE_STRING: { - return createStringValue(property, "dummy", 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_BYTES: { - return createBytesValue(property, new byte[1], 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN: { - return createBooleanValue(property, false, 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32: { - return createZonedIntValue(property, 0, 0, 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT: { - return createZonedFloatValue(property, 0, 0, 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN: { - return createZonedBooleanValue(property, 0, false, 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_INT64: { - return createLongValue(property, 0, 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT: { - return createFloatValue(property, 0, 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC2: - case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC3: - case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC4: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4:{ - return createFloatVectorValue(property, new float[getVectorLength(valueType)], 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_INT32: { - return createIntValue(property, 0, 0); - } - case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2: - case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC3: - case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4: { - return createIntVectorValue(property, new int[getVectorLength(valueType)], 0); - } - - } - return null; - } - - public static VehiclePropValue.Builder createBuilder(int property, int valueType, - long timestamp) { - return VehiclePropValue.newBuilder(). - setProp(property). - setValueType(valueType). - setTimestamp(timestamp); - } - - public static int getVectorLength(int vehicleValueType) { - switch (vehicleValueType) { - case VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN: - case VehicleValueType.VEHICLE_VALUE_TYPE_INT32: - case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT: - return 1; - case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC2: - case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2: - return 2; - case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC3: - case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC3: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3: - return 3; - case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4: - case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC4: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4: - case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4: - return 4; - default: - throw new IllegalArgumentException("Unknown value type: " + vehicleValueType); - } - } - - public static boolean isCustomProperty(int property) { - return property >= VehicleNetworkConsts.VEHICLE_PROPERTY_CUSTOM_START && - property <= VehicleNetworkConsts.VEHICLE_PROPERTY_CUSTOM_END; - } - - /** Converts {@link VehiclePropValue} to string just for debug purpose. */ - public static String toString(VehiclePropValue value) { - if (value == null) { - return String.valueOf(null); - } - return value.getClass().getSimpleName() + " { prop: 0x" + toHexString(value.getProp()) + - ", valueType: 0x" + toHexString(value.getValueType()) + - ", timestamp: " + value.getTimestamp() + - ", int32Values: " + Arrays.toString(toIntArray(value.getInt32ValuesList())) + - ", int64Value: " + value.getInt64Value() + - ", floatValues: " + Arrays.toString(toFloatArray(value.getFloatValuesList())) + - ", stringValue: " + value.getStringValue() + - ", byteValue: " + Arrays.toString(value.getBytesValue().toByteArray()) + - ", zone: {" + value.getZone() + "} }"; - } - - public static int[] toIntArray(List collection) { - int[] array = new int[collection.size()]; - int i = 0; - for (int value : collection) { - array[i++] = value; - } - return array; - } - - public static float[] toFloatArray(List collection) { - float[] array = new float[collection.size()]; - int i = 0; - for (float value : collection) { - array[i++] = value; - } - return array; - } - - public static int getVectorValueType(int vehicleValueType, int length) { - return vehicleValueType + length - 1; - } -} diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.aidl deleted file mode 100644 index a5dd94091b..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.aidl +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.car.vehiclenetwork; - -parcelable VehiclePropValuesParcelable; diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.java deleted file mode 100644 index fbbed1eb8f..0000000000 --- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.car.vehiclenetwork; - -import android.os.Parcel; -import android.os.Parcelable; -import android.os.Parcelable.Creator; - -import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValues; -import com.google.protobuf.InvalidProtocolBufferException; - -/** - * Have separate Parcelable for {@link VehiclePropValues} to use only one Blob. - * Handling this as array of single entry can lead into having multiple Blob, - * which can increase binder transfer size a lot (as each data can be below blob start size), - * or can add lots of Blob, which brings lots of performance issue. - */ -public class VehiclePropValuesParcelable implements Parcelable { - - public final VehiclePropValues values; - - public VehiclePropValuesParcelable(VehiclePropValues values) { - this.values = values; - } - - public VehiclePropValuesParcelable(Parcel in) { - byte[] blob = in.readBlob(); - try { - values = VehiclePropValues.parseFrom(blob); - } catch (InvalidProtocolBufferException e) { - throw new IllegalArgumentException(e); - } - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - // this is never used for java side as service is implemented in native side. - dest.writeBlob(values.toByteArray()); - } - - public static final Creator CREATOR = - new Creator() { - @Override - public VehiclePropValuesParcelable createFromParcel(Parcel in) { - return new VehiclePropValuesParcelable(in); - } - - @Override - public VehiclePropValuesParcelable[] newArray(int size) { - return new VehiclePropValuesParcelable[size]; - } - }; -} -- cgit v1.2.3