Skip to content

Conversation

@trlemon
Copy link
Contributor

@trlemon trlemon commented Sep 29, 2025

Summary of Changes

  • Add blocking function to DynaCool PPMS driver that waits for temperature state to be stable before allowing other functions to be called when setting the temperature.

@codecov
Copy link

codecov bot commented Sep 30, 2025

Codecov Report

❌ Patch coverage is 16.66667% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 59.88%. Comparing base (c899bea) to head (f0f0a23).

Files with missing lines Patch % Lines
...ent_drivers/QuantumDesign/DynaCoolPPMS/DynaCool.py 16.66% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7534      +/-   ##
==========================================
+ Coverage   58.93%   59.88%   +0.95%     
==========================================
  Files         352      352              
  Lines       31806    31812       +6     
==========================================
+ Hits        18744    19052     +308     
+ Misses      13062    12760     -302     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@SherwanMicrosoft
Copy link

Testing Results - Bug Found

Environment:

  • PPMS: Quantum Design DynaCool
  • QCodes version: 0.55.0.dev194 (this PR branch)
  • Testing date: December 19, 2025

Issue: blocking_t() causes PPMS server crash

Steps to Reproduce:

  1. Fresh PPMS connection - reads work normally (ppms.temperature() ✓)
  2. Execute: ppms.blocking_t(300)
  3. Result: VI_ERROR_IO on the TEMP write command
  4. Subsequent reads fail with VI_ERROR_CONN_LOST
  5. PPMS server connection is lost

Error Details:
VisaIOError: VI_ERROR_IO (-1073807298): Could not perform operation because of I/O error
at DynaCool.py:434 in write(): self._error_code = int(self.visa_handle.read())

Then:
VisaIOError: VI_ERROR_CONN_LOST (-1073807194): The connection for the given session has been lost

Observations:

  • ppms.temperature_setpoint() (non-blocking) works fine
  • ppms.blocking_t() crashes the connection
  • blocking_t parameter exists and is configured correctly
  • Issue occurs immediately when TEMP command is sent with blocking enabled

Root Cause Analysis:
The failure occurs at line 434 when trying to read the error code response after sending the TEMP command. The PPMS receives the command but fails to respond, then the connection is lost.

@trlemon
Copy link
Contributor Author

trlemon commented Jan 2, 2026

@SherwanMicrosoft My last commit resolves this issue. Thank you for the detailed report!

@trlemon trlemon marked this pull request as ready for review January 6, 2026 23:30
@trlemon trlemon requested a review from a team as a code owner January 6, 2026 23:30
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.

4 participants