vehicle hal refactoring from hal review
- call release_memory_from_get for freeing memory allocated
from get call
- add retry for NOT_READY error which can happen at initial
stage
- simplify zoned properties with missing multiple mins/maxs for
zoned properties
- update HVAC API to return min/max values per each zone
- change HVACV API to return all zones available
(renamed to getZones())
- fix missing write permision to property 0 which
is used to gatekeep hal mocking
bug: 27597338, 27596281
Change-Id: I353acc0398f62c4933491e43592ea598d17d2422
diff --git a/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java b/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
index 7b3c5e6..78b0ece 100644
--- a/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
+++ b/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
@@ -31,7 +31,6 @@
import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfigs;
import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue;
import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValues;
-import com.android.car.vehiclenetwork.VehicleNetworkProto.ZonedValue;
import com.android.car.vehiclenetwork.VehiclePropConfigUtil;
import com.android.car.vehiclenetwork.VehiclePropValueUtil;
@@ -111,21 +110,25 @@
new DefaultVehiclePropertyHandler(VehiclePropValueUtil.createIntVectorValue(
CUSTOM_PROPERTY_INT32_VEC2, new int[2], 0)));
mVehicleHalMock.registerProperty(
- VehiclePropConfigUtil.createProperty(
+ VehiclePropConfigUtil.createZonedProperty(
CUSTOM_PROPERTY_ZONED_INT32_VEC3,
VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE,
VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE,
- VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3, 0x0),
+ VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3,
+ VehicleZone.VEHICLE_ZONE_ROW_1_LEFT,
+ 0x0),
new DefaultVehiclePropertyHandler(VehiclePropValueUtil.createZonedIntVectorValue(
CUSTOM_PROPERTY_ZONED_INT32_VEC3,
VehicleZone.VEHICLE_ZONE_ROW_1_LEFT,
new int[3], 0)));
mVehicleHalMock.registerProperty(
- VehiclePropConfigUtil.createProperty(
+ VehiclePropConfigUtil.createZonedProperty(
CUSTOM_PROPERTY_ZONED_FLOAT_VEC2,
VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE,
VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE,
- VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2, 0x0),
+ VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2,
+ VehicleZone.VEHICLE_ZONE_ROW_1_LEFT,
+ 0x0),
new DefaultVehiclePropertyHandler(VehiclePropValueUtil.createZonedFloatVectorValue(
CUSTOM_PROPERTY_ZONED_FLOAT_VEC2,
VehicleZone.VEHICLE_ZONE_ROW_1_LEFT,
@@ -139,11 +142,13 @@
new DefaultVehiclePropertyHandler(VehiclePropValueUtil.createFloatVectorValue(
CUSTOM_PROPERTY_FLOAT_VEC2, new float[2], 0)));
mVehicleHalMock.registerProperty(
- VehiclePropConfigUtil.createProperty(
+ VehiclePropConfigUtil.createZonedProperty(
CUSTOM_PROPERTY_ZONED_FLOAT_VEC3,
VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE,
VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE,
- VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3, 0x0),
+ VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3,
+ VehicleZone.VEHICLE_ZONE_ROW_1_LEFT,
+ 0x0),
new DefaultVehiclePropertyHandler(VehiclePropValueUtil.createZonedFloatVectorValue(
CUSTOM_PROPERTY_ZONED_FLOAT_VEC3,
VehicleZone.VEHICLE_ZONE_ROW_1_LEFT,
@@ -328,7 +333,7 @@
final int ZONE = VehicleZone.VEHICLE_ZONE_ROW_1_LEFT;
final int[] VALUES = new int[] {10, 20, 30};
mVehicleNetwork.startMocking(mVehicleHalMock);
- mVehicleNetwork.subscribe(PROPERTY, ZONE);
+ mVehicleNetwork.subscribe(PROPERTY, 0, ZONE);
VehiclePropValue value = VehiclePropValueUtil.createZonedIntVectorValue(
PROPERTY, ZONE, VALUES, 0);
mVehicleNetwork.injectEvent(value);
@@ -366,6 +371,7 @@
@Override
public void onVehicleNetworkEvents(VehiclePropValues values) {
+ Log.i(TAG, "onVehicleNetworkEvents");
mValuesReceived = values;
mEventWait.release();
}
@@ -501,7 +507,7 @@
@Override
public synchronized VehiclePropValue onPropertyGet(VehiclePropValue property) {
- int zone = getZoneOrDefault(property.getZonedValue());
+ int zone = property.getZone();
VehiclePropValue value = mZoneValueMap.get(zone);
if (value == null) {
Log.w(TAG, "Property not found: " + property.getProp() + ", zone: " + zone);
@@ -511,7 +517,8 @@
@Override
public void onPropertySubscribe(int property, float sampleRate, int zones) {
- // TODO Auto-generated method stub
+ Log.i(TAG, "Property subscribed:0x" + Integer.toHexString(property) +
+ " zones:0x" + Integer.toHexString(zones));
}
@Override
@@ -520,12 +527,7 @@
}
private void setValue(VehiclePropValue value) {
- mZoneValueMap.put(getZoneOrDefault(value.getZonedValue()), VehiclePropValue.newBuilder(value).build());
- }
-
- private int getZoneOrDefault(ZonedValue value) {
- return value != null ? value.getZoneOrWindow() : 0;
-
+ mZoneValueMap.put(value.getZone(), VehiclePropValue.newBuilder(value).build());
}
}
}