# scan_visa_resources()

## scan_visa_resources( backend: str | None = None, timeout: int = 2, *, rm: ResourceManager | None = None, ) → VisaScanResult[source]

Scan VISA resources, query each for identity, and return matched instruments.

Pass an already-open `rm` (e.g. one a caller opened for its own backend diagnostics) to reuse
it instead of opening a second one. `backend` is always the backend the caller *asked for*:
`None` for the default with `@py` fallback, or an explicit specifier.

Each result records that requested `backend`, not the one it resolved to, so a `None` stays
`None` and the [`VisaConfig`](https://dev.nominal.io/instro/ref/library/instro.lib.transports.visa.VisaConfig.md#instro.lib.transports.visa.VisaConfig "instro.lib.discover.VisaConfig") and config block built from the result keep the
default-then-fallback behavior instead of pinning whichever backend this machine happened to use.
