Skip to content

docs: add Future — LIN Bus Simulator planning section to ROADMAP - #8

Merged
SoundMatt merged 1 commit into
mainfrom
roadmap/lin-bus-simulator
Jul 28, 2026
Merged

docs: add Future — LIN Bus Simulator planning section to ROADMAP#8
SoundMatt merged 1 commit into
mainfrom
roadmap/lin-bus-simulator

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

  • Adds a "Future — LIN Bus Simulator" section to ROADMAP.md, planning-only (no implementation).
  • Grounds the plan in the crate's actual current state (verified directly, not from a stale audit note): virtual_bus (684 LOC), mock (273 LOC), master (291 LOC — MasterNode already does real schedule-table execution), slave (175 LOC — thin registration wrapper only), ldf (697 LOC — Db::schedule() already emits the same ScheduleEntry type MasterNode consumes), safety (434 LOC E2E). Confirms zero unsafe in src/ and the tokio/async-trait-based async model.
  • Motivates why LIN needs this: no OS-native virtual bus (unlike CAN's vcan) and no third-party LIN stack in this ecosystem to test against (unlike DDS's CycloneDDS peer).
  • Scopes a phased plan: Phase 1 minimal in-process sim module (multi-slave, schedule-driven, built on existing VirtualBus/MasterNode/LDF plumbing), Phase 2 fault injection (wrong checksum, silence, wrong PID, delayed response), Phase 3 multi-slave scheduling conflicts + LIN 2.x event-triggered/sporadic slot modeling, Phase 4 (stretch goal) cross-process transport over a Unix domain socket.
  • Explicitly distinguishes the simulator's core dev/test value (Phases 1–3, delivered without any interop work) from its potential role as the mechanism for real go-LIN/cpp-LIN interop testing (Phase 4 only), mirroring rust-DDS's two-process rtps-interop-peer pattern.

Test plan

  • Docs-only change (ROADMAP.md). No code, no behavior change.
  • CI run to confirm the existing pipeline (build/clippy/fmt/test/DCO/RELAY conformance) passes unaffected.

LIN has no OS-native virtual bus (unlike CAN's vcan) and no third-party
LIN stack in this ecosystem to test against (unlike DDS's CycloneDDS
peer). Scope a phased plan for a master+multi-slave simulator with
configurable slave behavior and fault injection (Phase 1-3, in-process,
built on the existing VirtualBus/MasterNode/ldf schedule-table
plumbing), plus a stretch-goal cross-process transport (Phase 4) that
would double as the mechanism for real go-LIN/cpp-LIN interop testing,
mirroring rust-DDS's two-process rtps-interop-peer pattern. Planning
only — no implementation.

Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit f106b85 into main Jul 28, 2026
7 checks passed
@SoundMatt
SoundMatt deleted the roadmap/lin-bus-simulator branch July 28, 2026 01:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant