Add TapeLibNET calibration operation and TapeWinNET calibration workflow#3
Conversation
|
@copilot Great job overall! Please fix two issues: 1. UI — graph overflows its GroupBox. 2. Logic — overreport emulation does not affect the calibration result. Please trace which side is wrong:
Add or extend a test that sets a non-zero overreport and asserts CapacityReported > CapacityActual |
Fixed in 428eaa2. The calibration chart now keeps its plot/axis labels inside the GroupBox content area, and calibration now preserves/report the overreported side of virtual-media runs so |
|
@copilot The graph doesn't bleed past its frame anymore, yet its lower part is truncated. Please scale the graph down vertically so that it fits in its frame, incl. the X-axis labels. |
Adjusted the calibration chart to scale down vertically so the full plot and X-axis labels stay inside the frame. Fixed in 5944a29. |
…Design-RemainingAndEw.md.
…le writing content.
…ffer mechanism for accelerating writes.
…Eject when done" feature
…he tail section (by default, 20% of calibration samples for the last 5% of media capacity or from EW on, whichever comes first). Implement SCSI log sense based remaning capacity inquiry to second-guess what tape driver reprts esp. near EW / EOM.
…dia section (around EW). Reduce the amount of tracing from Win32 LTO backend.
…ff by default. Trace exceptions in PresentationCore.dll.
…b.com/avk1im/TapeNET into copilot/calibration-ui-part-4-phase-5
…ssue with resuming writing to virtual media.
…esume calibration, and recalibrate (UI still to add). Extend SimpleBox with additional image icons: Complete and Failed; update its usages where applicable.
…. Add more unit tests for Resume Calibration. Update the design document.
…-partition media; allow upon confirmation. Update TapeWinNET UI to disable calibration of multi-partition media and restrict applying calibration profiles to single-partition media only.
…b.com/avk1im/TapeNET into copilot/calibration-ui-part-4-phase-5
…onal remote badges.
…mechnism based on the actual test results. Introduce "ReportsExactRemaining" backend property for use with virtual drives. Update EW design doc.
…b.com/avk1im/TapeNET into copilot/calibration-ui-part-4-phase-5
…b.com/avk1im/TapeNET into copilot/calibration-ui-part-4-phase-5
…both for physical and virtual drives.
This PR implements Part 4 / Phase 5 for calibration: a service-layer calibration operation in
TapeLibNET.Servicesand a GUI workflow inTapeWinNETto run, monitor, abort, review, save, and apply a calibration profile. It builds on the shipped Phases 0–4 without touching the validated low-level SCSI direct-write path.Service operation: calibration
CalibrateRequest/CalibrateResultto the existingServiceOperationRequest -> operation -> ServiceOperationResultpattern.ExecuteCalibrateAsync()/ExecuteCalibrateCore()inTapeServiceBase.EW.cs.ServiceCalibrateProgressHandlerto bridge calibration’s chunk-oriented progress into the existing operation-progress model used by the WPF overlay.TapeCalibrator.IsAbortRequested.DriveProfileKey, active calibration,AddCalibration()).WPF workflow: confirm -> run -> review
CalibrateWindowas the destructive-operation gate, patterned after the existing dialog conventions.CalibrationViewModelto own the run lifecycle, abort coordination, save/apply actions, and result state.CalibrationWindowto review the measured capacity, EW landmark, and EW→EOM distance, then save/apply the profile immediately.MainWindow progress integration
WpfServiceHost.UpdateCalibrateProgress()and calibration-specificMainViewModelstate/commands.Calibration curve visualization
CalibrationCurveControlto plotReportedRemaining -> ActualRemaining.As-built notes
TapeFileAgentor TOC state, so it does not literally reuseServiceOperationProgressHandler; instead it follows the same operation triad with a dedicated calibration progress adapter.IoRateSparklineControlis a rolling throughput sparkline, not a reusable 2D plot base, so the calibration graph is implemented as a dedicated control rather than forcing a shared inheritance layer.Example of the new service-layer shape: