Releases: christoph2/pyxcp
Releases · christoph2/pyxcp
v0.28.0 - Critical Bug Fixes
Release v0.28.0 - 2026-03-01
🐛 Critical Bug Fixes
This release addresses 4 production-critical bugs affecting real users:
1. DAQ InterleavedMode Fix (#210, WP-18)
- Impact: ERR_OUT_OF_RANGE when configuring DAQ with interleavedMode=True
- Root Cause: Sequence counter byte not included in overhead calculation
- Fix: Correctly calculates frame overhead for interleaved mode
- Affected: Dynamic DAQ allocation with interleaved slaves
- Credit: @starryfei for excellent bug report
2. MDF Timestamp Conversion (Discussion #270, WP-13)
- Impact: INCA error 'File contains reverse time stamps'
- Root Cause: Timestamps exported as nanoseconds instead of seconds
- Fix: Converts to seconds per ASAM MDF v4 specification
- Affected: xmraw → MDF conversion, INCA/asamdf compatibility
- Credit: @bobejo for detailed investigation
3. DaqRecorder Unmap Error (#269, WP-12)
- Impact: Spurious RuntimeError when stopping DAQ recording
- Root Cause: Stale errno causing false 'Resource temporarily unavailable'
- Fix: Clears errno before unmap() calls in C++ code
- Affected: DaqRecorder finalize/resize operations
- Credit: @bobejo for POSIX insights
4. xcp-profile CLI Script (Bonus Fix)
- Impact: 'xcp-profile convert file.toml -o output.py' crashed
- Root Cause: Incompatible trait configuration, no positional arg support
- Fix: Added positional argument parsing and proper exit codes
- Affected: Configuration file conversion workflow
📊 Testing
- ✅ 312/312 tests passing
- ✅ Validated against ETH server (interleavedMode=True)
- ✅ Validated against CAN server (interleavedMode=False)
- ✅ No regressions detected
📝 What Changed
DAQ System:
- \pyxcp/daq_stim/init.py: InterleavedMode overhead calculation
Recorder:
- \pyxcp/recorder/writer.hpp: errno handling in unmap operations
- \pyxcp/recorder/converter/init.py: MDF timestamp conversion
- \pyxcp/examples/ex_mdf.py: MDF timestamp conversion
Configuration:
- \pyxcp/config/init.py: xcp-profile positional arguments
🙏 Community Impact
Issues Resolved:
- Closed #156: DAQ data retrieval (feature available since v0.22)
- Fixed #210: ERR_OUT_OF_RANGE with interleavedMode
- Fixed #269: DaqRecorder unmap error
- Fixed Discussion #270: MDF timestamp conversion
Special Thanks:
- @starryfei for identifying the interleavedMode sequence counter issue
- @bobejo for two critical bug reports with excellent diagnostics
🚀 Upgrade Recommendation
HIGH PRIORITY if you:
- Use DAQ with slaves that have interleavedMode=True
- Export xmraw files to MDF format for use with INCA/Vector tools
- Experience spurious errors when stopping DaqRecorder
- Use xcp-profile convert command
📦 Installation
\\�ash
pip install --upgrade pyxcp
\\
Full Changelog
See CHANGELOG.md for detailed technical information.
v0.27.1 - CAN Padding Fix
Critical bug fix for Issue #205: CAN-FD padding corruption.
See CHANGELOG.md for full details: https://github.com/christoph2/pyxcp/blob/master/CHANGELOG.md