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 (cf8e73e) to head (f2708e2).

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   59.89%   59.88%   -0.01%     
==========================================
  Files         352      352              
  Lines       31807    31813       +6     
==========================================
+ Hits        19051    19052       +1     
- Misses      12756    12761       +5     

☔ 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.

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