Skip to content
Vehicle properties
ADAS & driver assistance

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:

FieldMaskValueMeans
Group0xf00000000x10000000SYSTEM
Area0x0f0000000x08000000VENDOR
Type0x00ff00000x00410000INT32_VEC
Ordinal0x0000ffff0x00000c240xc24

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.