Introduces a typed layer between the LDF and hardware tests so frame / signal / enum-value typos become import errors instead of runtime KeyErrors. This complements the runtime ``LdfDatabase`` in ``ecu_framework/lin/ldf.py`` rather than replacing it. - scripts/gen_lin_api.py: LDF → Python generator. Reads an LDF via ldfparser and emits one ``IntEnum`` per logical-valued Signal_encoding_types block, one class per pure-physical encoding type, and one class per frame with NAME / FRAME_ID / LENGTH / PUBLISHER / SIGNALS / SIGNAL_LAYOUT plus ``send`` / ``receive`` / ``read_signal`` classmethods that delegate to a caller-supplied ``FrameIO``. Output starts with a "DO NOT EDIT — re-run" header and the source-LDF SHA-256 prefix for traceability. - tests/hardware/_generated/__init__.py + lin_api.py: the generated output for vendor/4SEVEN_color_lib_test.ldf. Already consumed by tests/hardware/mum/test_mum_alm_animation_generated.py to demonstrate the "no AlmTester anywhere" pattern. - docs/22_generated_lin_api.md: design doc covering the generation rules, the build-time-vs-runtime layering with LdfDatabase, the rationale for keeping AlmTester-style helpers above this layer, and worked before/after examples. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 lines
76 B
Python
2 lines
76 B
Python
"""Auto-generated test-side artifacts. See docs/22_generated_lin_api.md."""
|