# Discover

VISA instrument discovery: scan resources, query identity, match to registered drivers.

| [`scan_visa_resources`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.scan_visa_resources.md#instro.lib.discover.scan_visa_resources "instro.lib.discover.scan_visa_resources") | Scan VISA resources, query each for identity, and return matched instruments. |
| --- | --- |
| [`match_idn`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.match_idn.md#instro.lib.discover.match_idn "instro.lib.discover.match_idn") | Match an `*IDN?` reply against every registered driver's [`IdnPattern`](https://dev.nominal.io/instro/ref/library/instro.lib.registry.IdnPattern.md#instro.lib.registry.IdnPattern "instro.lib.registry.IdnPattern"). |
| [`parse_idn`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.parse_idn.md#instro.lib.discover.parse_idn "instro.lib.discover.parse_idn") | Split an `*IDN?` reply into its fields, tolerating missing trailing fields. |
| [`DriverMatch`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.DriverMatch.md#instro.lib.discover.DriverMatch "instro.lib.discover.DriverMatch") | The registered driver an `*IDN?` reply maps to. |
| [`IdnFields`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.IdnFields.md#instro.lib.discover.IdnFields "instro.lib.discover.IdnFields") | The four comma-separated fields of an IEEE 488.2 `*IDN?` reply; missing fields are `""`. |
| [`VisaScanResult`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.VisaScanResult.md#instro.lib.discover.VisaScanResult "instro.lib.discover.VisaScanResult") |  |
| [`DiscoveredInstrument`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.DiscoveredInstrument.md#instro.lib.discover.DiscoveredInstrument "instro.lib.discover.DiscoveredInstrument") | An instrument that discovery identified and matched to a registered driver. |
| [`VisaUnrecognizedInstrument`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.VisaUnrecognizedInstrument.md#instro.lib.discover.VisaUnrecognizedInstrument "instro.lib.discover.VisaUnrecognizedInstrument") |  |
| [`VisaScanError`](https://dev.nominal.io/instro/ref/library/instro.lib.discover.VisaScanError.md#instro.lib.discover.VisaScanError "instro.lib.discover.VisaScanError") |  |
