Merge "HVAC properties and CRITICALLY_LOW_TIRE_PRESSURE" into sc-dev

This commit is contained in:
Kai Wang
2021-04-16 21:08:50 +00:00
committed by Android (Google) Code Review
2 changed files with 105 additions and 4 deletions

View File

@@ -461,22 +461,22 @@ const ConfigDeclaration kVehicleProperties[]{
.changeMode = VehiclePropertyChangeMode::CONTINUOUS,
.areaConfigs = {VehicleAreaConfig{
.areaId = WHEEL_FRONT_LEFT,
.minFloatValue = 100.0f,
.minFloatValue = 193.0f,
.maxFloatValue = 300.0f,
},
VehicleAreaConfig{
.areaId = WHEEL_FRONT_RIGHT,
.minFloatValue = 100.0f,
.minFloatValue = 193.0f,
.maxFloatValue = 300.0f,
},
VehicleAreaConfig{
.areaId = WHEEL_REAR_LEFT,
.minFloatValue = 100.0f,
.minFloatValue = 193.0f,
.maxFloatValue = 300.0f,
},
VehicleAreaConfig{
.areaId = WHEEL_REAR_RIGHT,
.minFloatValue = 100.0f,
.minFloatValue = 193.0f,
.maxFloatValue = 300.0f,
}},
.minSampleRate = 1.0f,
@@ -484,6 +484,17 @@ const ConfigDeclaration kVehicleProperties[]{
},
.initialValue = {.floatValues = {200.0f}}}, // units in kPa
{.config =
{
.prop = toInt(VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE),
.access = VehiclePropertyAccess::READ,
.changeMode = VehiclePropertyChangeMode::STATIC,
},
.initialAreaValues = {{WHEEL_FRONT_LEFT, {.floatValues = {137.0f}}},
{WHEEL_FRONT_RIGHT, {.floatValues = {137.0f}}},
{WHEEL_REAR_RIGHT, {.floatValues = {137.0f}}},
{WHEEL_REAR_LEFT, {.floatValues = {137.0f}}}}},
{.config =
{
.prop = toInt(VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS),
@@ -690,6 +701,7 @@ const ConfigDeclaration kVehicleProperties[]{
{.config = {.prop = toInt(VehicleProperty::HVAC_TEMPERATURE_SET),
.access = VehiclePropertyAccess::READ_WRITE,
.changeMode = VehiclePropertyChangeMode::ON_CHANGE,
.configArray = {160, 280, 5, 605, 825, 10},
.areaConfigs = {VehicleAreaConfig{
.areaId = HVAC_LEFT,
.minFloatValue = 16,
@@ -703,6 +715,14 @@ const ConfigDeclaration kVehicleProperties[]{
.initialAreaValues = {{HVAC_LEFT, {.floatValues = {16}}},
{HVAC_RIGHT, {.floatValues = {20}}}}},
{.config =
{
.prop = toInt(VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION),
.access = VehiclePropertyAccess::READ_WRITE,
.changeMode = VehiclePropertyChangeMode::ON_CHANGE,
},
.initialValue = {.floatValues = {66.2f, (float)VehicleUnit::FAHRENHEIT, 19.0f, 66.5f}}},
{.config =
{
.prop = toInt(VehicleProperty::ENV_OUTSIDE_TEMPERATURE),

View File

@@ -640,6 +640,25 @@ enum VehicleProperty : int32_t {
| VehiclePropertyType:FLOAT
| VehicleArea:WHEEL),
/**
* Critically low tire pressure
*
* This property indicates the critically low pressure threshold for each tire.
* It indicates when it is time for tires to be replaced or fixed. The value
* must be less than or equal to minFloatValue in TIRE_PRESSURE.
* Minimum and maximum property values (that is, minFloatValue, maxFloatValue)
* are not applicable to this property.
*
* @change_mode VehiclePropertyChangeMode:STATIC
* @access VehiclePropertyAccess:READ
* @unit VehicleUnit:KILOPASCAL
*/
CRITICALLY_LOW_TIRE_PRESSURE = (
0x030A
| VehiclePropertyGroup:SYSTEM
| VehiclePropertyType:FLOAT
| VehicleArea:WHEEL),
/**
* Currently selected gear
*
@@ -881,6 +900,24 @@ enum VehicleProperty : int32_t {
/**
* HVAC, target temperature set.
*
* The configArray is used to indicate the valid values for HVAC in Fahrenheit and Celsius.
* Android might use it in the HVAC app UI.
* The configArray is set as follows:
* configArray[0] = [the lower bound of the supported temperature in Celsius] * 10.
* configArray[1] = [the upper bound of the supported temperature in Celsius] * 10.
* configArray[2] = [the increment in Celsius] * 10.
* configArray[3] = [the lower bound of the supported temperature in Fahrenheit] * 10.
* configArray[4] = [the upper bound of the supported temperature in Fahrenheit] * 10.
* configArray[5] = [the increment in Fahrenheit] * 10.
* For example, if the vehicle supports temperature values as:
* [16.0, 16.5, 17.0 ,..., 28.0] in Celsius
* [60.5, 61.5, 62.5 ,..., 85.5] in Fahrenheit.
* The configArray should be configArray = {160, 280, 5, 605, 825, 10}.
*
* If the vehicle supports HVAC_TEMPERATURE_VALUE_SUGGESTION, the application can use
* that property to get the suggested value before setting HVAC_TEMPERATURE_SET. Otherwise,
* the application may choose the value in HVAC_TEMPERATURE_SET configArray by itself.
*
* @change_mode VehiclePropertyChangeMode:ON_CHANGE
* @access VehiclePropertyAccess:READ_WRITE
* @unit VehicleUnit:CELSIUS
@@ -1229,6 +1266,50 @@ enum VehicleProperty : int32_t {
| VehiclePropertyType:BOOLEAN
| VehicleArea:WINDOW),
/**
* Suggested values for setting HVAC temperature.
*
* Implement the property to help applications understand the closest supported temperature
* value in Celsius or Fahrenheit.
*
* floatValues[0] = the requested value that an application wants to set a temperature to.
* floatValues[1] = the unit for floatValues[0]. It should be one of
* {VehicleUnit:CELSIUS, VehicleUnit:FAHRENHEIT}.
* floatValues[2] = the value OEMs suggested in CELSIUS. This value is not included
* in the request.
* floatValues[3] = the value OEMs suggested in FAHRENHEIT. This value is not included
* in the request.
*
* An application calls set(VehiclePropValue propValue) with the requested value and unit for
* the value. OEMs need to return the suggested values in floatValues[2] and floatValues[3] by
* onPropertyEvent() callbacks.
*
* For example, when a user uses the voice assistant to set HVAC temperature to 66.2 in
* Fahrenheit.
* First, an application will set this property with the value
* [66.2, (float)VehicleUnit:FAHRENHEIT,0,0].
* If OEMs suggest to set 19.0 in Celsius or 66.5 in Fahrenheit for user's request, then VHAL
* must generate a callback with property value
* [66.2, (float)VehicleUnit:FAHRENHEIT, 19.0, 66.5]. After the voice assistant gets the
* callback, it will inform the user and set HVAC temperature to the suggested value.
*
* Another example, an application receives 21 Celsius as the current temperature value by
* querying HVC_TEMPERATURE_SET. But the application wants to know what value is displayed on
* the car's UI in Fahrenheit.
* For this, the application sets the property to [21, (float)VehicleUnit:CELSIUS, 0, 0]. If
* the suggested value by the OEM for 21 Celsius is 70 Fahrenheit, then VHAL must generate a
* callback with property value [21, (float)VehicleUnit:CELSIUS, 21.0, 70.0].
* In this case, the application can know that the value is 70.0 Fahrenheit in the cars UI.
*
* @change_mode VehiclePropertyChangeMode:ON_CHANGE
* @access VehiclePropertyAccess:READ_WRITE
*/
HVAC_TEMPERATURE_VALUE_SUGGESTION = (
0x0515
| VehiclePropertyGroup:SYSTEM
| VehiclePropertyType:FLOAT_VEC
| VehicleArea:GLOBAL),
/**
* Distance units for display
*