OBD2_FREEZE_FRAME
What it is
OBD2 Freeze Frame Sensor Data
Reports a snapshot of the value of the OBD2 sensors available at the time that a fault occurred and was detected.
A configArray must be provided with the same meaning as defined for OBD2_LIVE_FRAME.
The values of this property are to be interpreted in a similar fashion as those for OBD2_LIVE_FRAME, with the exception that the stringValue field may contain a non-empty diagnostic troubleshooting code (DTC).
A IVehicle#get request of this property must provide a value for int64Values[0]. This will be interpreted as the timestamp of the freeze frame to retrieve. A list of timestamps can be obtained by a IVehicle#get of OBD2_FREEZE_FRAME_INFO.
Should no freeze frame be available at the given timestamp, a response of NOT_AVAILABLE must be returned by the implementation. Because vehicles may have limited storage for freeze frames, it is possible for a frame request to respond with NOT_AVAILABLE even if the associated timestamp has been recently obtained via OBD2_FREEZE_FRAME_INFO.
How the ID is built
A property ID is a 32-bit value packing four fields. Reading 0x11e00d01 apart:
| Field | Mask | Value | Means |
|---|---|---|---|
| Group | 0xf0000000 | 0x10000000 | SYSTEM |
| Area | 0x0f000000 | 0x01000000 | GLOBAL |
| Type | 0x00ff0000 | 0x00e00000 | MIXED |
| Ordinal | 0x0000ffff | 0x00000d01 | 0xd01 |
Reading it from an app
CarPropertyManager mgr = (CarPropertyManager)
car.getCarManager(Car.PROPERTY_SERVICE);
CarPropertyValue<Object> value =
mgr.getProperty(VehiclePropertyIds.OBD2_FREEZE_FRAME, 0);This property is read-only — writes are rejected. It fires a callback whenever the value changes.

