ULTRASONICS_SENSOR_SUPPORTED_RANGES
What it is
Static data for the supported ranges of each ultrasonic sensor in millimeters.
For ultrasonic sensors that only support readings within a specific range. For example, if an ultrasonic sensor detects an object at 700mm, but can only report that an object has been detected between 500mm and 1000mm.
Each individual sensor is identified by its VehicleAreaConfig#areaId and returns the sensor's supported ranges formatted as [range_min_1, range_max_1, range_min_2, range_max_2, ...] where:
int32Values[0] = range_min_1, the minimum of one supported range by the specified sensor
in millimeters, inclusive.
int32Values[1] = range_max_1, the maximum of one supported range by the specified sensor
in millimeters, inclusive.
int32Values[2] = range_min_2, the minimum of another supported range by the specified
sensor in millimeters, inclusive.
int32Values[3] = range_max_2, the maximum of another supported range by the specified
sensor in millimeters, inclusive.Example: - Ultrasonic sensor supports the following ranges: - 150mm to 499mm - 500mm to 999mm - 1000mm to 1500mm - The associated supported ranges should be formatted as: - int32Values[0] = 150 - int32Values[1] = 499 - int32Values[2] = 500 - int32Values[3] = 999 - int32Values[4] = 1000 - int32Values[5] = 1500
If this property is not defined, all the values within the ULTRASONICS_SENSOR_DETECTION_RANGE for the specified sensor are assumed to be supported.
If the data is aggregated by another ECU, then OEMs have the option of reporting the same reading across all included sensors or reporting a virtual representation of all the included sensors as if they were one sensor.
How the ID is built
A property ID is a 32-bit value packing four fields. Reading 0x18410c24 apart:
| Field | Mask | Value | Means |
|---|---|---|---|
| Group | 0xf0000000 | 0x10000000 | SYSTEM |
| Area | 0x0f000000 | 0x08000000 | VENDOR |
| Type | 0x00ff0000 | 0x00410000 | INT32_VEC |
| Ordinal | 0x0000ffff | 0x00000c24 | 0xc24 |
Reading it from an app
CarPropertyManager mgr = (CarPropertyManager)
car.getCarManager(Car.PROPERTY_SERVICE);
CarPropertyValue<Integer> value =
mgr.getProperty(VehiclePropertyIds.ULTRASONICS_SENSOR_SUPPORTED_RANGES, areaId);This property is read-only — writes are rejected. It is static for the life of the vehicle, so read it once and cache it.

