Don't send brightness to car service inside Emulator am: b35f7d88c4 am: e3f392c113

Change-Id: I57795384a6939166a67f4e7640b410d4700ed3d7
This commit is contained in:
Huihong Luo 2020-03-31 20:47:25 +00:00 committed by Automerger Merge Worker
commit 7597289ecc
2 changed files with 24 additions and 1 deletions

View file

@ -15,8 +15,9 @@
*/
#define LOG_TAG "DefaultVehicleHal_v2_0"
#include <android/log.h>
#include <android-base/macros.h>
#include <android/log.h>
#include <sys/system_properties.h>
#include "EmulatedVehicleHal.h"
#include "JsonFakeValueGenerator.h"
@ -188,6 +189,14 @@ StatusCode EmulatedVehicleHal::set(const VehiclePropValue& propValue) {
return StatusCode::NOT_AVAILABLE;
}
if (mInEmulator && propValue.prop == toInt(VehicleProperty::DISPLAY_BRIGHTNESS)) {
// Emulator does not support remote brightness control, b/139959479
// do not send it down so that it does not bring unnecessary property change event
// return other error code, such NOT_AVAILABLE, causes Emulator to be freezing
// TODO: return StatusCode::NOT_AVAILABLE once the above issue is fixed
return StatusCode::OK;
}
/**
* After checking all conditions, such as the property is available, a real vhal will
* sent the events to Car ECU to take actions.
@ -213,6 +222,17 @@ static bool isDiagnosticProperty(VehiclePropConfig propConfig) {
return false;
}
// determine if it's running inside Android Emulator
static bool isInEmulator() {
char propValue[PROP_VALUE_MAX];
bool isEmulator = (__system_property_get("ro.kernel.qemu", propValue) != 0);
if (!isEmulator) {
isEmulator = (__system_property_get("ro.hardware", propValue) != 0) &&
(!strcmp(propValue, "ranchu") || !strcmp(propValue, "goldfish"));
}
return isEmulator;
}
// Parse supported properties list and generate vector of property values to hold current values.
void EmulatedVehicleHal::onCreate() {
static constexpr bool shouldUpdateStatus = true;
@ -263,6 +283,8 @@ void EmulatedVehicleHal::onCreate() {
}
initObd2LiveFrame(*mPropStore->getConfigOrDie(OBD2_LIVE_FRAME));
initObd2FreezeFrame(*mPropStore->getConfigOrDie(OBD2_FREEZE_FRAME));
mInEmulator = isInEmulator();
ALOGD("mInEmulator=%s", mInEmulator ? "true" : "false");
}
std::vector<VehiclePropConfig> EmulatedVehicleHal::listProperties() {

View file

@ -86,6 +86,7 @@ private:
std::unordered_set<int32_t> mHvacPowerProps;
RecurrentTimer mRecurrentTimer;
VehicleHalClient* mVehicleClient;
bool mInEmulator;
};
} // impl