improved logging
This commit is contained in:
@@ -79,6 +79,7 @@ class Sn9000Service:
|
||||
if self._instrument is not None:
|
||||
return
|
||||
|
||||
logger.info("Opening SN9000 VISA session: %s", self.resource)
|
||||
try:
|
||||
self._resource_manager = pyvisa.ResourceManager(self.visa_library)
|
||||
self._instrument = self._resource_manager.open_resource(self.resource)
|
||||
@@ -91,12 +92,14 @@ class Sn9000Service:
|
||||
if self._settings is not None:
|
||||
self._apply_configuration(self._settings)
|
||||
except Exception:
|
||||
logger.exception("Failed to open SN9000 VISA session: %s", self.resource)
|
||||
self.close()
|
||||
raise
|
||||
|
||||
def close(self) -> None:
|
||||
"""Close VISA sessions."""
|
||||
if self._instrument is not None:
|
||||
logger.debug("Closing SN9000 VISA session")
|
||||
self._instrument.close()
|
||||
self._instrument = None
|
||||
if self._resource_manager is not None:
|
||||
@@ -114,6 +117,7 @@ class Sn9000Service:
|
||||
|
||||
def recover(self) -> None:
|
||||
"""Reopen the VISA session after a transient acquisition failure."""
|
||||
logger.warning("Recovering SN9000 VISA session (close, wait, reopen)")
|
||||
self.close()
|
||||
time.sleep(0.25)
|
||||
self.open()
|
||||
@@ -133,6 +137,10 @@ class Sn9000Service:
|
||||
self._validate_sweep(sweep)
|
||||
self._settings = sweep
|
||||
self._frequency_hz = None
|
||||
logger.debug(
|
||||
"Configuring SN9000 sweep: %s-%s Hz, %s points, IFBW=%s Hz, %s dBm",
|
||||
sweep.start_hz, sweep.stop_hz, sweep.points, sweep.if_bandwidth_hz, sweep.power_dbm,
|
||||
)
|
||||
if self._instrument is None:
|
||||
return
|
||||
self._apply_configuration(sweep)
|
||||
@@ -210,6 +218,10 @@ class Sn9000Service:
|
||||
instrument.write("TRIG:SOUR BUS")
|
||||
self._expect_opc("*OPC?", context="SN9000 setup")
|
||||
self._frequency_hz = self._query_float32_array("SENS:FREQ:DATA?", int(sweep.points))
|
||||
logger.info(
|
||||
"SN9000 configured: %d traces, %d points (%s-%s Hz)",
|
||||
len(_S_PARAMETER_QUERY_ORDER), int(sweep.points), sweep.start_hz, sweep.stop_hz,
|
||||
)
|
||||
|
||||
def _query_sweep_s_parameters(self, points: int) -> dict[str, np.ndarray]:
|
||||
instrument = self._require_instrument()
|
||||
|
||||
Reference in New Issue
Block a user