RapidPy — RAPID magnetometer control architecture

Operator shell → workflow engine → measurement core → hardware abstraction → serial transports → instruments

RapidPy — RAPID magnetometer control architecture Operator shell → workflow engine → measurement core → hardware abstraction → serial transports → instruments Operator panels · Sequence · Queue · Meas · RapidPy · Python 3.12 · PySide6 Operator panels Sequence · Queue · Meas RAPID v4 shell · MainWindow · RapidPy · Python 3.12 · PySide6 · PySide6 RAPID v4 shell MainWindow PySide6 Diagnostic dialogs · SQUID · Vacuum · Motors · RapidPy · Python 3.12 · PySide6 Diagnostic dialogs SQUID · Vacuum · Motors 16 standalone apps · Gaussmeter · VRM · XY · RapidPy · Python 3.12 · PySide6 · one-file EXE 16 standalone apps Gaussmeter · VRM · XY one-file EXE Queue compiler · VB6 queue order · RapidPy · Python 3.12 · PySide6 Queue compiler VB6 queue order Measurement worker · QThread run loop · RapidPy · Python 3.12 · PySide6 · timeouts + halt Measurement worker QThread run loop timeouts + halt Phase state machine · Phases · status codes · RapidPy · Python 3.12 · PySide6 Phase state machine Phases · status codes Block replay · Recorded 2G blocks · RapidPy · Python 3.12 · PySide6 · no hardware Block replay Recorded 2G blocks no hardware Bracketed acquisition · zero · 4 turns · zero · RapidPy · Python 3.12 · PySide6 › P0 integrity gates · Measure_ReadSample Bracketed acquisition zero · 4 turns · zero Measure_ReadSample Flux-count guard · Validate, then reduce · RapidPy · Python 3.12 · PySide6 › P0 integrity gates · never relaxed Flux-count guard Validate, then reduce never relaxed Holder correction · Measured · atomic · RapidPy · Python 3.12 · PySide6 › P0 integrity gates · gates samples Holder correction Measured · atomic gates samples Bundle transaction · Stage · fsync · rename · RapidPy · Python 3.12 · PySide6 · abort discards Bundle transaction Stage · fsync · rename abort discards Published outputs · CIT · rmg · MagIC · RapidPy · Python 3.12 · PySide6 Published outputs CIT · rmg · MagIC Hardware contracts · QueueHardwareBackend · RapidPy · Python 3.12 · PySide6 · typed protocols Hardware contracts QueueHardwareBackend typed protocols Backend factories · diagnostic_services · RapidPy · Python 3.12 · PySide6 · fail closed Backend factories diagnostic_services fail closed No-comm simulators · Explicit mode only · RapidPy · Python 3.12 · PySide6 · simulated = True No-comm simulators Explicit mode only simulated = True holder_correction · Identity · age · vectors · RapidPy · Python 3.12 · PySide6 holder_correction Identity · age · vectors 2G 581 SQUID · Three-axis magnetometer · Instruments + adapters · RawSquidTransport 2G 581 SQUID Three-axis magnetometer RawSquidTransport Sample changer · Lift · turning · tray · Instruments + adapters · MotorSerialClient Sample changer Lift · turning · tray MotorSerialClient AF demagnetiser · Coils · IRM / ARM · Instruments + adapters · ADwin AF / DAC AF demagnetiser Coils · IRM / ARM ADwin AF / DAC Vacuum system · Valve · pump · gauge · Instruments + adapters · VacuumController Vacuum system Valve · pump · gauge VacuumController launches compile commands read_squid() phase recorded composes block subtract accepted publish install build no-comm latch motion RapidPy · Python 3.12 · PySide6 P0 integrity gates Instruments + adapters Legend Operator UI (PySide6) Services Persisted evidence Simulation — always labelled Integrity gates — fail closed Instruments + their adapters

Measurement integrity

  • • One block = zero, four orientations at 0/90/180/270, zero
  • • A one-flux-count step between the zeros is rejected outright
  • • Recovery re-zeros and repeats the whole block, never a value

Fail closed on hardware

  • • Missing driver, port, adapter, or calibration blocks preflight
  • • Simulators exist only in explicit no-comm mode and are labelled
  • • Unconfigured lift positions block a run rather than being invented

Evidence you can audit

  • • Counter and DVM kept apart, tied to one latch identity
  • • Output staged, fsynced, then published with an atomic rename
  • • Provenance names the holder record, calibration, and commit

VB6 parity

  • • Baseline weights i/5 and the four CorrectedSample rotations
  • • Fischer CSD, induced vector, and the three signal ratios
  • • Deterministic fixtures pin the numbers against modMeasure.bas