Skip to content

Fix DMP encoder/decoder#123

Merged
SebKister merged 3 commits into
SebKister:masterfrom
speleobrad:fix/dmp-export
Oct 6, 2025
Merged

Fix DMP encoder/decoder#123
SebKister merged 3 commits into
SebKister:masterfrom
speleobrad:fix/dmp-export

Conversation

@speleobrad

Copy link
Copy Markdown
Collaborator

Add complete DMP export functionality that supports exporting selected sections with automatic v5/v6 version detection and handling of mixed version scenarios.

Add complete DMP export functionality that supports exporting selected
sections with automatic v5/v6 version detection and handling of mixed
version scenarios.

Features:
- Selective export of sections to DMP format
- Automatic version detection (v5 for underwater/depth, v6 for dry cave/Lidar)
- Mixed version handling with user dialog (export as v6 or separate files)
- Export includes broken shots with corrected format
- Full round-trip support (export → import produces valid data)

Implementation:
- Created DmpEncoderService for encoding sections to DMP binary format
- Refactored DmpDecoderService to consolidate all DMP parsing logic
- Extracted DMP format constants to dmp_constants.dart for shared use
- Added MixedVersionDialog for user choice on mixed v5/v6 exports
- Comprehensive test coverage (10 new tests, all passing)

Files changed:
- New: lib/services/dmp_encoder_service.dart - Section to DMP encoding
- New: lib/services/dmp_decoder_service.dart - Merged DMP parsing logic
- New: lib/models/dmp_constants.dart - DMP format specification
- New: lib/widgets/mixed_version_dialog.dart - Mixed version UI
- New: test/dmp_export_test.dart - Export functionality tests
- Modified: lib/services/file_service.dart - Export orchestration
- Modified: lib/main.dart - UI integration
- Deleted: lib/services/data_processing_service.dart - Merged into decoder
- Deleted: lib/services/lidar_coordinate_calculator.dart - Unused
@SebKister SebKister merged commit 923cce0 into SebKister:master Oct 6, 2025
6 checks passed
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.

2 participants