Loading vehicle/2.0/IVehicleCallback.hal +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ interface IVehicleCallback { oneway onPropertyEvent(vec<VehiclePropValue> propValues); /* * This method gets called if the client was susbscribed to a property using * This method gets called if the client was subscribed to a property using * SubscribeFlags::SET_CALL flag and IVehicle#set(...) method was called. * * These events must be delivered to subscriber immediately without any Loading vehicle/2.0/default/android.hardware.vehicle@2.0-service.rc +1 −1 Original line number Diff line number Diff line service vehicle-hal-2.0 /system/bin/hw/android.hardware.vehicle@2.0-service class hal user system group system readproc group system vehicle/2.0/default/impl/DefaultConfig.h +92 −12 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #define android_hardware_vehicle_V2_0_impl_DefaultConfig_H_ #include <android/hardware/vehicle/2.0/IVehicle.h> #include <vehicle_hal_manager/VehicleUtils.h> namespace android { namespace hardware { Loading @@ -34,24 +35,103 @@ const VehiclePropConfig kVehicleProperties[] = { .permissionModel = VehiclePermissionModel::OEM_ONLY, }, { .prop = VehicleProperty::HVAC_POWER_ON, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1) }, { .prop = VehicleProperty::HVAC_DEFROSTER, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = VehicleAreaWindow::FRONT_WINDSHIELD | VehicleAreaWindow::REAR_WINDSHIELD }, { .prop = VehicleProperty::HVAC_RECIRC_ON, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1) }, { .prop = VehicleProperty::HVAC_AC_ON, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1) }, { .prop = VehicleProperty::HVAC_AUTO_ON, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1) }, { .prop = VehicleProperty::HVAC_FAN_SPEED, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = static_cast<int32_t>( VehicleAreaZone::ROW_1_LEFT | VehicleAreaZone::ROW_1_RIGHT), .supportedAreas = toInt(VehicleAreaZone::ROW_1), .areaConfigs = init_hidl_vec({ VehicleAreaConfig { .areaId = toInt(VehicleAreaZone::ROW_2_LEFT), .areaId = toInt(VehicleAreaZone::ROW_1), .minInt32Value = 1, .maxInt32Value = 7}, .maxInt32Value = 7 }}) }, { .prop = VehicleProperty::HVAC_FAN_DIRECTION, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1), }, { .prop = VehicleProperty::HVAC_TEMPERATURE_SET, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = VehicleAreaZone::ROW_1_LEFT | VehicleAreaZone::ROW_1_RIGHT, .areaConfigs = init_hidl_vec({ VehicleAreaConfig { .areaId = toInt(VehicleAreaZone::ROW_1_LEFT), .minFloatValue = 16, .maxFloatValue = 32, }, VehicleAreaConfig { .areaId = toInt(VehicleAreaZone::ROW_1_RIGHT), .minInt32Value = 1, .maxInt32Value = 5, } }), .minFloatValue = 16, .maxFloatValue = 32, }}) }, { .prop = VehicleProperty::NIGHT_MODE, .access = VehiclePropertyAccess::READ, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, }, { .prop = VehicleProperty::GEAR_SELECTION, .access = VehiclePropertyAccess::READ, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, }, { Loading vehicle/2.0/default/impl/DefaultVehicleHal.cpp +102 −18 Original line number Diff line number Diff line Loading @@ -30,23 +30,56 @@ VehicleHal::VehiclePropValuePtr DefaultVehicleHal::get( VehiclePropValuePtr v; VehicleProperty property = requestedPropValue.prop; int32_t areaId = requestedPropValue.areaId; auto& pool = *getValuePool(); switch (property) { case VehicleProperty::INFO_MAKE: v = getValuePool()->obtainString("Default Car"); v = pool.obtainString("Default Car"); break; case VehicleProperty::HVAC_FAN_SPEED: int32_t value; *outStatus = getHvacFanSpeed(areaId, &value); v = pool.obtainInt32(mFanSpeed); break; case VehicleProperty::HVAC_POWER_ON: v = pool.obtainBoolean(mHvacPowerOn); break; case VehicleProperty::HVAC_RECIRC_ON: v = pool.obtainBoolean(mHvacRecircOn); break; case VehicleProperty::HVAC_AC_ON: v = pool.obtainBoolean(mHvacAcOn); break; case VehicleProperty::HVAC_AUTO_ON: v = pool.obtainBoolean(mHvacAutoOn); break; case VehicleProperty::HVAC_FAN_DIRECTION: v = pool.obtainInt32(toInt(mFanDirection)); break; case VehicleProperty::HVAC_DEFROSTER: bool defroster; *outStatus = getHvacDefroster(areaId, &defroster); if (StatusCode::OK == *outStatus) { v = pool.obtainBoolean(defroster); } break; case VehicleProperty::HVAC_TEMPERATURE_SET: float value; *outStatus = getHvacTemperature(requestedPropValue.areaId, &value); if (StatusCode::OK == *outStatus) { v = getValuePool()->obtainInt32(value); v = pool.obtainFloat(value); } break; case VehicleProperty::INFO_FUEL_CAPACITY: v = getValuePool()->obtainFloat(0.75f); v = pool.obtainFloat(0.75f); break; case VehicleProperty::DISPLAY_BRIGHTNESS: v = getValuePool()->obtainInt32(brightness); v = pool.obtainInt32(mBrightness); break; case VehicleProperty::NIGHT_MODE: v = pool.obtainBoolean(false); break; case VehicleProperty::GEAR_SELECTION: v = pool.obtainInt32(toInt(VehicleGear::GEAR_PARK)); break; default: *outStatus = StatusCode::INVALID_ARG; Loading @@ -63,16 +96,38 @@ VehicleHal::VehiclePropValuePtr DefaultVehicleHal::get( StatusCode DefaultVehicleHal::set(const VehiclePropValue& propValue) { auto property = propValue.prop; const auto& v = propValue.value; StatusCode status = StatusCode::OK; switch (property) { case VehicleProperty::HVAC_POWER_ON: mHvacPowerOn = v.int32Values[0] == 1; break; case VehicleProperty::HVAC_RECIRC_ON: mHvacRecircOn = v.int32Values[0] == 1; break; case VehicleProperty::HVAC_AC_ON: mHvacAcOn = v.int32Values[0] == 1; break; case VehicleProperty::HVAC_AUTO_ON: mHvacAutoOn = v.int32Values[0] == 1; break; case VehicleProperty::HVAC_DEFROSTER: status = setHvacDefroster(propValue.areaId, v.int32Values[0] == 1); break; case VehicleProperty::HVAC_FAN_DIRECTION: mFanDirection = static_cast<VehicleHvacFanDirection>(v.int32Values[0]); break; case VehicleProperty::HVAC_FAN_SPEED: status = setHvacFanSpeed(propValue.areaId, propValue.value.int32Values[0]); mFanSpeed = v.int32Values[0]; break; case VehicleProperty::HVAC_TEMPERATURE_SET: status = setHvacTemperature(propValue.areaId, v.floatValues[0]); break; case VehicleProperty::DISPLAY_BRIGHTNESS: brightness = propValue.value.int32Values[0]; mBrightness = v.int32Values[0]; break; default: status = StatusCode::INVALID_ARG; Loading @@ -81,23 +136,52 @@ StatusCode DefaultVehicleHal::set(const VehiclePropValue& propValue) { return status; } StatusCode DefaultVehicleHal::getHvacFanSpeed(int32_t areaId, int32_t* outValue) { StatusCode DefaultVehicleHal::getHvacTemperature(int32_t areaId, float* outValue) { if (areaId == toInt(VehicleAreaZone::ROW_1_LEFT)) { *outValue = fanSpeedRow1Left; } else if (areaId == toInt(VehicleAreaZone::ROW_2_RIGHT)) { *outValue = fanSpeedRow1Right; *outValue = mRow1LeftHvacTemperatureSet; } else if (areaId == toInt(VehicleAreaZone::ROW_1_RIGHT)) { *outValue = mRow1RightHvacTemperatureSet; } else { return StatusCode::INVALID_ARG; } return StatusCode::OK; } StatusCode DefaultVehicleHal::setHvacFanSpeed(int32_t areaId, int32_t value) { StatusCode DefaultVehicleHal::setHvacTemperature( int32_t areaId, float value) { if (areaId == toInt(VehicleAreaZone::ROW_1_LEFT)) { fanSpeedRow1Left = value; } else if (areaId == toInt(VehicleAreaZone::ROW_2_RIGHT)) { fanSpeedRow1Right = value; mRow1LeftHvacTemperatureSet = value; } else if (areaId == toInt(VehicleAreaZone::ROW_1_RIGHT)) { mRow1RightHvacTemperatureSet = value; } else { return StatusCode::INVALID_ARG; } return StatusCode::OK; } StatusCode DefaultVehicleHal::getHvacDefroster(int32_t areaId, bool* outValue) { ALOGI("Getting Hvac defroster for area: 0x%x", areaId); if (areaId == toInt(VehicleAreaWindow::FRONT_WINDSHIELD)) { *outValue = mFrontDefroster; } else if (areaId == toInt(VehicleAreaWindow::REAR_WINDSHIELD)) { *outValue = mRearDefroster; } else { ALOGE("Unable to get hvac defroster for area: 0x%x", areaId); return StatusCode::INVALID_ARG; } ALOGI("Getting Hvac defroster for area: 0x%x, OK", areaId); return StatusCode::OK; } StatusCode DefaultVehicleHal::setHvacDefroster(int32_t areaId, bool value) { if (areaId == toInt(VehicleAreaWindow::FRONT_WINDSHIELD)) { mFrontDefroster = value; } else if (areaId == toInt(VehicleAreaWindow::REAR_WINDSHIELD)) { mRearDefroster = value; } else { return StatusCode::INVALID_ARG; } Loading vehicle/2.0/default/impl/DefaultVehicleHal.h +15 −5 Original line number Diff line number Diff line Loading @@ -53,12 +53,22 @@ public: } private: StatusCode getHvacFanSpeed(int32_t areaId, int32_t* outValue); StatusCode setHvacFanSpeed(int32_t areaId, int32_t value); StatusCode getHvacTemperature(int32_t areaId, float* outValue); StatusCode setHvacTemperature(int32_t areaId, float value); StatusCode getHvacDefroster(int32_t areaId, bool* outValue); StatusCode setHvacDefroster(int32_t areaId, bool value); private: int32_t fanSpeedRow1Left = 3; int32_t fanSpeedRow1Right = 5; int32_t brightness = 7; int32_t mFanSpeed = 3; int32_t mBrightness = 7; float mRow1LeftHvacTemperatureSet = 16; float mRow1RightHvacTemperatureSet = 22; bool mFrontDefroster = false; bool mRearDefroster = false; bool mHvacPowerOn = true; bool mHvacRecircOn = true; bool mHvacAcOn = true; bool mHvacAutoOn = true; VehicleHvacFanDirection mFanDirection = VehicleHvacFanDirection::FACE; }; } // impl Loading Loading
vehicle/2.0/IVehicleCallback.hal +1 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ interface IVehicleCallback { oneway onPropertyEvent(vec<VehiclePropValue> propValues); /* * This method gets called if the client was susbscribed to a property using * This method gets called if the client was subscribed to a property using * SubscribeFlags::SET_CALL flag and IVehicle#set(...) method was called. * * These events must be delivered to subscriber immediately without any Loading
vehicle/2.0/default/android.hardware.vehicle@2.0-service.rc +1 −1 Original line number Diff line number Diff line service vehicle-hal-2.0 /system/bin/hw/android.hardware.vehicle@2.0-service class hal user system group system readproc group system
vehicle/2.0/default/impl/DefaultConfig.h +92 −12 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ #define android_hardware_vehicle_V2_0_impl_DefaultConfig_H_ #include <android/hardware/vehicle/2.0/IVehicle.h> #include <vehicle_hal_manager/VehicleUtils.h> namespace android { namespace hardware { Loading @@ -34,24 +35,103 @@ const VehiclePropConfig kVehicleProperties[] = { .permissionModel = VehiclePermissionModel::OEM_ONLY, }, { .prop = VehicleProperty::HVAC_POWER_ON, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1) }, { .prop = VehicleProperty::HVAC_DEFROSTER, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = VehicleAreaWindow::FRONT_WINDSHIELD | VehicleAreaWindow::REAR_WINDSHIELD }, { .prop = VehicleProperty::HVAC_RECIRC_ON, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1) }, { .prop = VehicleProperty::HVAC_AC_ON, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1) }, { .prop = VehicleProperty::HVAC_AUTO_ON, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1) }, { .prop = VehicleProperty::HVAC_FAN_SPEED, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = static_cast<int32_t>( VehicleAreaZone::ROW_1_LEFT | VehicleAreaZone::ROW_1_RIGHT), .supportedAreas = toInt(VehicleAreaZone::ROW_1), .areaConfigs = init_hidl_vec({ VehicleAreaConfig { .areaId = toInt(VehicleAreaZone::ROW_2_LEFT), .areaId = toInt(VehicleAreaZone::ROW_1), .minInt32Value = 1, .maxInt32Value = 7}, .maxInt32Value = 7 }}) }, { .prop = VehicleProperty::HVAC_FAN_DIRECTION, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = toInt(VehicleAreaZone::ROW_1), }, { .prop = VehicleProperty::HVAC_TEMPERATURE_SET, .access = VehiclePropertyAccess::READ_WRITE, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, .supportedAreas = VehicleAreaZone::ROW_1_LEFT | VehicleAreaZone::ROW_1_RIGHT, .areaConfigs = init_hidl_vec({ VehicleAreaConfig { .areaId = toInt(VehicleAreaZone::ROW_1_LEFT), .minFloatValue = 16, .maxFloatValue = 32, }, VehicleAreaConfig { .areaId = toInt(VehicleAreaZone::ROW_1_RIGHT), .minInt32Value = 1, .maxInt32Value = 5, } }), .minFloatValue = 16, .maxFloatValue = 32, }}) }, { .prop = VehicleProperty::NIGHT_MODE, .access = VehiclePropertyAccess::READ, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, }, { .prop = VehicleProperty::GEAR_SELECTION, .access = VehiclePropertyAccess::READ, .changeMode = VehiclePropertyChangeMode::ON_CHANGE, .permissionModel = VehiclePermissionModel::NO_RESTRICTION, }, { Loading
vehicle/2.0/default/impl/DefaultVehicleHal.cpp +102 −18 Original line number Diff line number Diff line Loading @@ -30,23 +30,56 @@ VehicleHal::VehiclePropValuePtr DefaultVehicleHal::get( VehiclePropValuePtr v; VehicleProperty property = requestedPropValue.prop; int32_t areaId = requestedPropValue.areaId; auto& pool = *getValuePool(); switch (property) { case VehicleProperty::INFO_MAKE: v = getValuePool()->obtainString("Default Car"); v = pool.obtainString("Default Car"); break; case VehicleProperty::HVAC_FAN_SPEED: int32_t value; *outStatus = getHvacFanSpeed(areaId, &value); v = pool.obtainInt32(mFanSpeed); break; case VehicleProperty::HVAC_POWER_ON: v = pool.obtainBoolean(mHvacPowerOn); break; case VehicleProperty::HVAC_RECIRC_ON: v = pool.obtainBoolean(mHvacRecircOn); break; case VehicleProperty::HVAC_AC_ON: v = pool.obtainBoolean(mHvacAcOn); break; case VehicleProperty::HVAC_AUTO_ON: v = pool.obtainBoolean(mHvacAutoOn); break; case VehicleProperty::HVAC_FAN_DIRECTION: v = pool.obtainInt32(toInt(mFanDirection)); break; case VehicleProperty::HVAC_DEFROSTER: bool defroster; *outStatus = getHvacDefroster(areaId, &defroster); if (StatusCode::OK == *outStatus) { v = pool.obtainBoolean(defroster); } break; case VehicleProperty::HVAC_TEMPERATURE_SET: float value; *outStatus = getHvacTemperature(requestedPropValue.areaId, &value); if (StatusCode::OK == *outStatus) { v = getValuePool()->obtainInt32(value); v = pool.obtainFloat(value); } break; case VehicleProperty::INFO_FUEL_CAPACITY: v = getValuePool()->obtainFloat(0.75f); v = pool.obtainFloat(0.75f); break; case VehicleProperty::DISPLAY_BRIGHTNESS: v = getValuePool()->obtainInt32(brightness); v = pool.obtainInt32(mBrightness); break; case VehicleProperty::NIGHT_MODE: v = pool.obtainBoolean(false); break; case VehicleProperty::GEAR_SELECTION: v = pool.obtainInt32(toInt(VehicleGear::GEAR_PARK)); break; default: *outStatus = StatusCode::INVALID_ARG; Loading @@ -63,16 +96,38 @@ VehicleHal::VehiclePropValuePtr DefaultVehicleHal::get( StatusCode DefaultVehicleHal::set(const VehiclePropValue& propValue) { auto property = propValue.prop; const auto& v = propValue.value; StatusCode status = StatusCode::OK; switch (property) { case VehicleProperty::HVAC_POWER_ON: mHvacPowerOn = v.int32Values[0] == 1; break; case VehicleProperty::HVAC_RECIRC_ON: mHvacRecircOn = v.int32Values[0] == 1; break; case VehicleProperty::HVAC_AC_ON: mHvacAcOn = v.int32Values[0] == 1; break; case VehicleProperty::HVAC_AUTO_ON: mHvacAutoOn = v.int32Values[0] == 1; break; case VehicleProperty::HVAC_DEFROSTER: status = setHvacDefroster(propValue.areaId, v.int32Values[0] == 1); break; case VehicleProperty::HVAC_FAN_DIRECTION: mFanDirection = static_cast<VehicleHvacFanDirection>(v.int32Values[0]); break; case VehicleProperty::HVAC_FAN_SPEED: status = setHvacFanSpeed(propValue.areaId, propValue.value.int32Values[0]); mFanSpeed = v.int32Values[0]; break; case VehicleProperty::HVAC_TEMPERATURE_SET: status = setHvacTemperature(propValue.areaId, v.floatValues[0]); break; case VehicleProperty::DISPLAY_BRIGHTNESS: brightness = propValue.value.int32Values[0]; mBrightness = v.int32Values[0]; break; default: status = StatusCode::INVALID_ARG; Loading @@ -81,23 +136,52 @@ StatusCode DefaultVehicleHal::set(const VehiclePropValue& propValue) { return status; } StatusCode DefaultVehicleHal::getHvacFanSpeed(int32_t areaId, int32_t* outValue) { StatusCode DefaultVehicleHal::getHvacTemperature(int32_t areaId, float* outValue) { if (areaId == toInt(VehicleAreaZone::ROW_1_LEFT)) { *outValue = fanSpeedRow1Left; } else if (areaId == toInt(VehicleAreaZone::ROW_2_RIGHT)) { *outValue = fanSpeedRow1Right; *outValue = mRow1LeftHvacTemperatureSet; } else if (areaId == toInt(VehicleAreaZone::ROW_1_RIGHT)) { *outValue = mRow1RightHvacTemperatureSet; } else { return StatusCode::INVALID_ARG; } return StatusCode::OK; } StatusCode DefaultVehicleHal::setHvacFanSpeed(int32_t areaId, int32_t value) { StatusCode DefaultVehicleHal::setHvacTemperature( int32_t areaId, float value) { if (areaId == toInt(VehicleAreaZone::ROW_1_LEFT)) { fanSpeedRow1Left = value; } else if (areaId == toInt(VehicleAreaZone::ROW_2_RIGHT)) { fanSpeedRow1Right = value; mRow1LeftHvacTemperatureSet = value; } else if (areaId == toInt(VehicleAreaZone::ROW_1_RIGHT)) { mRow1RightHvacTemperatureSet = value; } else { return StatusCode::INVALID_ARG; } return StatusCode::OK; } StatusCode DefaultVehicleHal::getHvacDefroster(int32_t areaId, bool* outValue) { ALOGI("Getting Hvac defroster for area: 0x%x", areaId); if (areaId == toInt(VehicleAreaWindow::FRONT_WINDSHIELD)) { *outValue = mFrontDefroster; } else if (areaId == toInt(VehicleAreaWindow::REAR_WINDSHIELD)) { *outValue = mRearDefroster; } else { ALOGE("Unable to get hvac defroster for area: 0x%x", areaId); return StatusCode::INVALID_ARG; } ALOGI("Getting Hvac defroster for area: 0x%x, OK", areaId); return StatusCode::OK; } StatusCode DefaultVehicleHal::setHvacDefroster(int32_t areaId, bool value) { if (areaId == toInt(VehicleAreaWindow::FRONT_WINDSHIELD)) { mFrontDefroster = value; } else if (areaId == toInt(VehicleAreaWindow::REAR_WINDSHIELD)) { mRearDefroster = value; } else { return StatusCode::INVALID_ARG; } Loading
vehicle/2.0/default/impl/DefaultVehicleHal.h +15 −5 Original line number Diff line number Diff line Loading @@ -53,12 +53,22 @@ public: } private: StatusCode getHvacFanSpeed(int32_t areaId, int32_t* outValue); StatusCode setHvacFanSpeed(int32_t areaId, int32_t value); StatusCode getHvacTemperature(int32_t areaId, float* outValue); StatusCode setHvacTemperature(int32_t areaId, float value); StatusCode getHvacDefroster(int32_t areaId, bool* outValue); StatusCode setHvacDefroster(int32_t areaId, bool value); private: int32_t fanSpeedRow1Left = 3; int32_t fanSpeedRow1Right = 5; int32_t brightness = 7; int32_t mFanSpeed = 3; int32_t mBrightness = 7; float mRow1LeftHvacTemperatureSet = 16; float mRow1RightHvacTemperatureSet = 22; bool mFrontDefroster = false; bool mRearDefroster = false; bool mHvacPowerOn = true; bool mHvacRecircOn = true; bool mHvacAcOn = true; bool mHvacAutoOn = true; VehicleHvacFanDirection mFanDirection = VehicleHvacFanDirection::FACE; }; } // impl Loading