Skip to content

Merge dev/dc2025 (resolves #23 conflicts)#24

Merged
jirhiker merged 2 commits into
mainfrom
claude/pr23-merge-resolved
May 15, 2026
Merged

Merge dev/dc2025 (resolves #23 conflicts)#24
jirhiker merged 2 commits into
mainfrom
claude/pr23-merge-resolved

Conversation

@jirhiker
Copy link
Copy Markdown

Summary

Conflict resolution

pychron/spectrometer/isotopx/spectrometer/ngx.py — kept main's refactored helper-based read_intensities body (deadline tracking, stale-event handling, _parse_acquisition_event, _filter_signals_for_event) and wrapped it with dev/dc2025's microcontroller.lock serialization to prevent concurrent ScanManager + MultiCollector races.

Public read_intensities = lock gate. Private _read_intensities(timeout, trigger, verbose) = refactored body, threads timeout through to _get_intensity_deadline.

Test plan

🤖 Generated with Claude Code

jirhiker and others added 2 commits May 15, 2026 10:55
…from starting scan timer

NGX socket reads were racing between MultiCollector and ScanManager Timer threads, garbling
TCP bytes and triggering duplicate StartAcq (E43) once integration_time changed mid-run.

- Wrap NGX read_intensities in microcontroller.lock so trigger_acq + readline cycles serialize
  across threads. The lock was already initialized in NGXController but every call site was
  commented out. ask() uses a separate communicator lock so valve/source commands are unaffected.
- Default _streaming_active to False so the plugin-instantiated singleton ScanManager does not
  start a scan timer until activate() runs (window opens).
- Gate _integration_time_changed on _streaming_active to skip the redundant
  StopAcq/SetAcqPeriod and the auto reset_scan_timer fired by the DelegatesTo notification
  when AutomatedRun changes spectrometer.integration_time.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Resolve ngx.py conflict: keep main's refactored helper-based
read_intensities body (deadline tracking, stale-event handling,
_parse_acquisition_event, _filter_signals_for_event) and wrap it
with dev/dc2025's microcontroller.lock serialization to prevent
concurrent ScanManager + MultiCollector races.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@jirhiker jirhiker merged commit 2446a98 into main May 15, 2026
2 of 4 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.

1 participant