App 2.40.3: the signal recorder listens to the assistance properties
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
This commit is contained in:
@@ -63,4 +63,22 @@ public class SignalRecordingTest {
|
||||
assertTrue(r.lines().get(4).endsWith("key 287 down"));
|
||||
assertEquals(1, r.notes().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void heardPropertiesWithChangingValuesComeFirst() {
|
||||
SignalRecording r = new SignalRecording();
|
||||
for (int i = 0; i < 5; i++) r.event(i * 1000, "CPM 0x2140A10A/0", "1"); // repeats one value
|
||||
r.event(1000, "CPM 0x2160A15B/0", "0.0");
|
||||
r.event(2000, "CPM 0x2160A15B/0", "101.0");
|
||||
r.event(3000, "CPM 0x2160A15B/0", "101.0");
|
||||
r.event(4000, "CPM 0x2160A15B/0", "90.0");
|
||||
List<String> heard = r.heard();
|
||||
assertEquals(2, heard.size());
|
||||
assertEquals("CPM 0x2160A15B/0 4 events 0.0 → 101.0 → 90.0", heard.get(0));
|
||||
assertEquals("CPM 0x2140A10A/0 5 events 1", heard.get(1));
|
||||
assertEquals(9, r.events());
|
||||
// The timeline holds only the changes: 0.0, 101.0, 90.0 and the first 1.
|
||||
long lines = r.lines().stream().filter(l -> l.contains("heard ")).count();
|
||||
assertEquals(4, lines);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user