App 2.27.3: read the cruise control target speed, log it raw

The head unit names a vendor float AAD_EPTCCTRGTSPD (0x2160A15B),
the cruise control target speed by its name. EVHardware reads it raw;
the Logs tab lists each change with time, speed and gear, to establish
the unit and the off value on the car. Emulator only (absent there).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
This commit is contained in:
2026-10-24 21:58:12 +02:00
co-authored by Claude Opus 5.5
parent 1c85fd2d9f
commit 965a20cfb2
10 changed files with 128 additions and 4 deletions
@@ -1731,6 +1731,7 @@ public class MainActivity extends AppCompatActivity {
vehTireFr.setText(unit.format(s.getTirePressures().getFrontRightKpa()));
vehTireRl.setText(unit.format(s.getTirePressures().getRearLeftKpa()));
vehTireRr.setText(unit.format(s.getTirePressures().getRearRightKpa()));
CruiseLog.note(this, s.getCruiseTargetSpeedRaw(), s.getSpeedKmh(), s.getGearRaw());
showGauges(s);
showCockpit(s);
showDrawnStyles(s);
@@ -2056,6 +2057,13 @@ public class MainActivity extends AppCompatActivity {
// Update steps first: after a failed install, they are what the driver came here for.
java.util.List<String> updates = UpdateLog.lines(this);
StringBuilder sb = new StringBuilder();
// The cruise control target speed as the car reports it, to match it on the car.
java.util.List<String> cruise = CruiseLog.lines(this);
if (!cruise.isEmpty()) {
sb.append(getString(R.string.cruise_log_title, CruiseLog.current()));
for (String line : cruise) sb.append('\n').append(line);
sb.append("\n\n");
}
if (!updates.isEmpty()) {
sb.append(getString(R.string.update_log_title));
for (String line : updates) sb.append('\n').append(line);