ecu-tests/vendor/README.md
Hosam-Eldin Mostafa 582764d410 Mark legacy BabyLIN adapter as deprecated across code and docs
The MUM (Melexis Universal Master) adapter is the current default; the
BabyLIN SDK adapter is retained only for backward compatibility with
existing rigs.

Code:
- Emit DeprecationWarning when BabyLinInterface is instantiated and
  when tests/conftest.py routes interface.type=='babylin' to it.
- Update module/class docstrings in ecu_framework/{__init__,config,
  lin/__init__,lin/babylin}.py to label BabyLIN-specific fields and
  paths as deprecated.

Config / scripts / pytest:
- pytest.ini: relabel the babylin marker as deprecated.
- config/{babylin.example,examples,test_config}.yaml: add deprecation
  banners and field comments.
- scripts/99-babylin.rules and scripts/pi_install.sh: annotate the
  udev-rule install block as legacy-only.

Documentation:
- TESTING_FRAMEWORK_GUIDE.md, docs/08_babylin_internals.md, and
  vendor/README.md: prepend explicit "DEPRECATED" banners.
- docs/{README,01,02,04,05,07,09,10,12,13,14,15,18,DEVELOPER_COMMIT_
  GUIDE}.md: relabel "legacy" to "deprecated" where babylin is
  mentioned, present MUM as the primary path, and steer new work
  toward the MUM examples.

No tests, configs, or modules were deleted; existing BabyLIN setups
keep working but now produce a clear DeprecationWarning at runtime.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 17:32:24 +02:00

62 lines
2.2 KiB
Markdown

# BabyLIN SDK placement (DEPRECATED)
> The BabyLIN adapter is deprecated and retained for backward compatibility only. New deployments should target the MUM (Melexis Universal Master) adapter — see `automated_lin_test/README.md` and `../docs/16_mum_internals.md`. This guide is kept so existing BabyLIN rigs can still be set up.
Place the SDK's Python wrapper and platform-specific libraries here so the test framework can import and use them.
## Required files
- BabyLIN_library.py
- BabyLIN library/ (directory provided by the SDK containing platform-specific binaries)
- Windows: `BabyLIN library/Windows/x64/*.dll`
- Linux x86_64: `BabyLIN library/Linux/x86_64/*.so`
- Raspberry Pi (ARM): `BabyLIN library/Linux/armv7/*.so` (or as provided by your SDK)
- Optional: Example SDF file (e.g., `Example.sdf`)
Folder structure example:
```
vendor/
├─ BabyLIN_library.py
├─ Example.sdf
└─ BabyLIN library/
├─ Windows/
│ └─ x64/
│ ├─ BabyLIN.dll
│ ├─ BabyLIN_FTDI.dll
│ └─ ... (other DLLs from SDK)
├─ Linux/
│ ├─ x86_64/
│ │ └─ libBabyLIN.so
│ └─ armv7/
│ └─ libBabyLIN.so
└─ ...
```
Notes:
- Keep the directory names and casing exactly as the SDK expects (often referenced in `BabyLIN_library.py`).
- Ensure your Python environment architecture matches the binaries (e.g., 64-bit Python with 64-bit DLLs).
- On Linux/RPi, you may need to set `LD_LIBRARY_PATH` to include the directory with the shared libraries.
## Configuration
Point your config to the SDF and schedule:
```yaml
interface:
type: babylin # deprecated; emits a DeprecationWarning at runtime
channel: 0
sdf_path: ./vendor/Example.sdf
schedule_nr: 0
```
## Troubleshooting
- ImportError: BabyLIN_library not found
- Ensure `vendor/BabyLIN_library.py` exists or add the vendor folder to `PYTHONPATH`.
- DLL/SO not found
- On Windows, ensure the DLLs are in PATH or next to `BabyLIN_library.py` per SDK instructions.
- On Linux/RPi, export `LD_LIBRARY_PATH` to the folder with the `.so` files.
- Device not found
- Check USB connection, drivers, and that no other tool holds the device open.