Vehicle HAL reference impl Part II
Implemented:
- IVehicle::get <-- changed signature
- IVehicle::set
- status_t replaced with StatusCode
- changed error handling to handle errors on SET
Test: unit tests provided
Bug: b/31971746
Change-Id: I9ea3feab7539adf588f1278fb905c0a458fa1627
diff --git a/vehicle/2.0/default/impl/DefaultVehicleHal.cpp b/vehicle/2.0/default/impl/DefaultVehicleHal.cpp
index 6ca0f9f..24d438d 100644
--- a/vehicle/2.0/default/impl/DefaultVehicleHal.cpp
+++ b/vehicle/2.0/default/impl/DefaultVehicleHal.cpp
@@ -23,12 +23,13 @@
namespace impl {
-VehicleHal::VehiclePropValuePtr DefaultVehicleHal::get(VehicleProperty property,
- int32_t areaId,
- status_t* outStatus) {
- *outStatus = OK;
+VehicleHal::VehiclePropValuePtr DefaultVehicleHal::get(
+ const VehiclePropValue& requestedPropValue, StatusCode* outStatus) {
+ *outStatus = StatusCode::OK;
VehiclePropValuePtr v;
+ VehicleProperty property = requestedPropValue.prop;
+ int32_t areaId = requestedPropValue.areaId;
switch (property) {
case VehicleProperty::INFO_MAKE:
@@ -36,7 +37,8 @@
break;
case VehicleProperty::HVAC_FAN_SPEED:
int32_t value;
- if ((*outStatus = getHvacFanSpeed(areaId, &value)) == OK) {
+ *outStatus = getHvacFanSpeed(areaId, &value);
+ if (StatusCode::OK == *outStatus) {
v = getValuePool()->obtainInt32(value);
}
break;
@@ -47,10 +49,10 @@
v = getValuePool()->obtainInt32(brightness);
break;
default:
- *outStatus = BAD_VALUE;
+ *outStatus = StatusCode::INVALID_ARG;
}
- if (*outStatus == OK && v.get() != nullptr) {
+ if (StatusCode::OK == *outStatus && v.get() != nullptr) {
v->prop = property;
v->areaId = areaId;
v->timestamp = elapsedRealtimeNano();
@@ -59,10 +61,10 @@
return v;
}
-status_t DefaultVehicleHal::set(const VehiclePropValue& propValue) {
+StatusCode DefaultVehicleHal::set(const VehiclePropValue& propValue) {
auto property = propValue.prop;
- status_t status = OK;
+ StatusCode status = StatusCode::OK;
switch (property) {
case VehicleProperty::HVAC_FAN_SPEED:
@@ -73,33 +75,33 @@
brightness = propValue.value.int32Values[0];
break;
default:
- status = BAD_VALUE;
+ status = StatusCode::INVALID_ARG;
}
return status;
}
-status_t DefaultVehicleHal::getHvacFanSpeed(int32_t areaId,
+StatusCode DefaultVehicleHal::getHvacFanSpeed(int32_t areaId,
int32_t* outValue) {
- if (areaId == val(VehicleAreaZone::ROW_1_LEFT)) {
+ if (areaId == toInt(VehicleAreaZone::ROW_1_LEFT)) {
*outValue = fanSpeedRow1Left;
- } else if (areaId == val(VehicleAreaZone::ROW_2_RIGHT)) {
+ } else if (areaId == toInt(VehicleAreaZone::ROW_2_RIGHT)) {
*outValue = fanSpeedRow1Right;
} else {
- return BAD_VALUE;
+ return StatusCode::INVALID_ARG;
}
- return OK;
+ return StatusCode::OK;
}
-status_t DefaultVehicleHal::setHvacFanSpeed(int32_t areaId, int32_t value) {
- if (areaId == val(VehicleAreaZone::ROW_1_LEFT)) {
+StatusCode DefaultVehicleHal::setHvacFanSpeed(int32_t areaId, int32_t value) {
+ if (areaId == toInt(VehicleAreaZone::ROW_1_LEFT)) {
fanSpeedRow1Left = value;
- } else if (areaId == val(VehicleAreaZone::ROW_2_RIGHT)) {
+ } else if (areaId == toInt(VehicleAreaZone::ROW_2_RIGHT)) {
fanSpeedRow1Right = value;
} else {
- return BAD_VALUE;
+ return StatusCode::INVALID_ARG;
}
- return OK;
+ return StatusCode::OK;
}
} // impl