The ACC recording of 2.32.0 only polled, and the AAD_* properties read their defaults. The head unit's own assistance manager never polls them: it subscribes to each for change events, and a vendor HAL may fill a value only while someone listens. EVHardware gains a read-only listenToProperties and AssistBlock (global vendor properties 0x21x0A1xx, all 108 AAD_* ids); the recorder subscribes to that block for its three minutes and lists the properties heard, those with changing values first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
30 lines
887 B
Kotlin
30 lines
887 B
Kotlin
package com.evsuite.hardware
|
|
|
|
import org.junit.Assert.assertFalse
|
|
import org.junit.Assert.assertTrue
|
|
import org.junit.Test
|
|
|
|
class AssistBlockTest {
|
|
|
|
@Test
|
|
fun `the assistance manager's properties are in the block`() {
|
|
// First and last int, the target speed and the object distance (floats).
|
|
for (id in intArrayOf(0x2140A101, 0x2140A171, 0x2160A15B, 0x2160A12C, 0x2160A114)) {
|
|
assertTrue("0x%08X".format(id), AssistBlock.contains(id))
|
|
}
|
|
}
|
|
|
|
@Test
|
|
fun `other properties are not`() {
|
|
for (id in intArrayOf(
|
|
0x2140A0FF, // the block before
|
|
0x2140A201, // the block after
|
|
0x11400400, // a standard (system) property
|
|
0x2340A101, // not global
|
|
0x0140A101, // no group
|
|
)) {
|
|
assertFalse("0x%08X".format(id), AssistBlock.contains(id))
|
|
}
|
|
}
|
|
}
|