docs: add Future — LIN Bus Simulator roadmap section - #14
Merged
Conversation
LIN has no OS-native virtual bus (unlike CAN's vcan) and no third-party LIN stack in this ecosystem (unlike DDS's CycloneDDS), so a well-designed simulator matters more here than for either. Scopes a phased plan grounded in the current virt::Bus/master::Node/slave::Node/ldf::parser code: a minimal in-process multi-slave simulator with real slave identities and registration-conflict detection (Phase 1), fault injection for wrong checksum/PID/no-response testing (Phase 2), multi-slave schedule conflict modeling (Phase 3), and a stretch-goal cross-process transport that would make this the mechanism for real go-LIN/cpp-LIN/rust-LIN interop testing, mirroring rust-DDS's two-process self-interop pattern (Phase 4). Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
RELAY v1.13 fixed relay conform to reject --strict placed after the binary path instead of silently ignoring it (the exact bug that made this repo's misordered invocation appear to work before). Flags must precede the positional <binary> argument. Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
lin::virt::Bus(aliasedlin::mock::Bus),master::Node::run()'s schedule-table loop,slave::Node::set_response(), andlin::ldf::DB::schedule()— and identifies the concrete gaps insrc/virtual/bus.cpp(flatresponses_map with silent ID-collision clobbering,send_header()always computing a correct PID/checksum with no fault-injection path, and a strictly in-process transport).vcan) or DDS (CycloneDDS): no OS-native virtual bus, no third-party LIN stack in this ecosystem to test against.sim::ISlaveBehaviorinterface and registration-conflict detection, (2) fault injection (wrong checksum/PID, no response, jitter) via asim::FaultInjectordecorator, (3) multi-slave scheduling conflict modeling (slot overruns, diagnostic ID arbitration), and (4) a stretch-goal cross-process transport (lin::ipc::Busover a Unix domain socket) that would make this the mechanism for real go-LIN/cpp-LIN/rust-LIN interop testing — mirroring rust-DDS's two-process self-interop pattern and the go-DDS/cpp-DDS CycloneDDS-peer harness shape, but explicitly not a prerequisite for the simulator's core dev/test value.Test plan