You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Symptom: GetCaptureState polling never leaves the empty-buffer state on a
physical Hantek DSO-2250 (state byte stays 0x00), so no channel data is
ever read and the display keeps showing no waveform, while Demo mode and
every deterministic CTest continue to pass.
Investigated and ruled out across several verified, warning-free
Debug/Release builds, each checked against fresh USB captures from the
physical device: a missing ForceTrigger before polling, an incomplete configureCapture() command sequence, missing empty-response retry
handling, resending TriggerEnabled on every poll, and a missing SetOffset (CONTROL_SETOFFSET, request 0xB4) channel/trigger offset
command derived from the device's calibration table - all implemented,
hardware-tested, and individually confirmed insufficient.
Found by correlating each USB command byte with its immediately following
response byte across a full Windows reference driver capture (naive
per-endpoint response counts are misleading, because GetCaptureState, GetChannelData, and the unrelated logic-channel/auto-range subsystem all
share bulk-IN endpoint 0x86): the reference driver's completed-capture
state value is 3, not the previously assumed 2. Corrected captureCompleteState from 2U to 3U for both DSO-2250 profiles in usb/src/usb_device.cpp.
This correction is warning-free in Debug/Release and passes all CTest
cases, but still did NOT resolve the symptom on hardware retest - the
root cause remains open. Treated as a known, unresolved bug pending
further hardware-side USB capture analysis.
GetCaptureStatepolling never leaves the empty-buffer state on aphysical Hantek DSO-2250 (state byte stays
0x00), so no channel data isever read and the display keeps showing no waveform, while Demo mode and
every deterministic CTest continue to pass.
Debug/Release builds, each checked against fresh USB captures from the
physical device: a missing
ForceTriggerbefore polling, an incompleteconfigureCapture()command sequence, missing empty-response retryhandling, resending
TriggerEnabledon every poll, and a missingSetOffset(CONTROL_SETOFFSET, request0xB4) channel/trigger offsetcommand derived from the device's calibration table - all implemented,
hardware-tested, and individually confirmed insufficient.
response byte across a full Windows reference driver capture (naive
per-endpoint response counts are misleading, because
GetCaptureState,GetChannelData, and the unrelated logic-channel/auto-range subsystem allshare bulk-IN endpoint
0x86): the reference driver's completed-capturestate value is
3, not the previously assumed2. CorrectedcaptureCompleteStatefrom2Uto3Ufor both DSO-2250 profiles inusb/src/usb_device.cpp.cases, but still did NOT resolve the symptom on hardware retest - the
root cause remains open. Treated as a known, unresolved bug pending
further hardware-side USB capture analysis.
Wireshark-dumps.zip