PER_DISPLAY_BRIGHTNESS
What it is
Property to represent brightness of the displays which are controlled separately.
Some cars have one or more displays whose brightness is controlled separately and this property is to inform the brightness of each passenger display. In cars where all displays' brightness is controlled together, they must use DISPLAY_BRIGHTNESS.
Only one of DISPLAY_BRIGHTNESS and PER_DISPLAY_BRIGHTNESS should be implemented. If both are available, PER_DISPLAY_BRIGHTNESS is used by AAOS.
If this is supported, PER_DISPLAY_MAX_BRIGHTNESS must be supported to represent the max display brightness for each display. Otherwise, the max display brightness is by default 1. The VehicleAreaConfig.maxInt32Value must not be used to represent max display brightness, because maxInt32Value is defined to be the max value for all the elements inside the integer value, which includes display port and brightness. So it is not meaningful.
The display port uniquely identifies a physical connector on the device for display output, ranging from 0 to 255.
Writing this property must cause an on property change event that contains the same [display port, brightness] tuple even if the new display brightness is the same as the current value.
To get the display brightness for a specific display port, the GetValueRequest must contain a VehiclePropValue, which contains one int32Value: displayPort. Getting this property without specifying the the display port is undefined behavior.
int32Values[0] : display port int32Values[1] : brightness
How the ID is built
A property ID is a 32-bit value packing four fields. Reading 0x11410a04 apart:
| Field | Mask | Value | Means |
|---|---|---|---|
| Group | 0xf0000000 | 0x10000000 | SYSTEM |
| Area | 0x0f000000 | 0x01000000 | GLOBAL |
| Type | 0x00ff0000 | 0x00410000 | INT32_VEC |
| Ordinal | 0x0000ffff | 0x00000a04 | 0xa04 |
Reading it from an app
CarPropertyManager mgr = (CarPropertyManager)
car.getCarManager(Car.PROPERTY_SERVICE);
CarPropertyValue<Integer> value =
mgr.getProperty(VehiclePropertyIds.PER_DISPLAY_BRIGHTNESS, 0);This property can be read and written, though an OEM may implement it as read-only. It fires a callback whenever the value changes.

