From 069eca4e8ef20d48ea6f9f0b150e059c76adf28d Mon Sep 17 00:00:00 2001 From: mohit-emerson Date: Thu, 13 Aug 2026 10:50:48 +0000 Subject: [PATCH 1/3] documentation related changes --- build/templates/conf.py.mako | 2 +- docs/_static/documentation.inc | 1 + docs/_static/installation.inc | 1 + docs/_static/nirfsa_documentation.inc | 8 ++++++++ docs/_static/nirfsa_usage.inc | 24 ++++++++++++++++++++++++ docs/nidcpower/conf.py | 1 + docs/nidigital/conf.py | 1 + docs/nidmm/conf.py | 1 + docs/nifgen/conf.py | 1 + docs/nimodinst/conf.py | 1 + docs/nirfsg/conf.py | 1 + docs/niscope/conf.py | 1 + docs/nise/conf.py | 1 + docs/niswitch/conf.py | 1 + docs/nitclk/conf.py | 1 + 15 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 docs/_static/nirfsa_documentation.inc create mode 100644 docs/_static/nirfsa_usage.inc diff --git a/build/templates/conf.py.mako b/build/templates/conf.py.mako index 8897db8adc..35d1aa4454 100644 --- a/build/templates/conf.py.mako +++ b/build/templates/conf.py.mako @@ -10,7 +10,7 @@ api_name = f"{config['driver_name']} Python API" api_name_no_spaces_or_hyphens = api_name.replace(" ", "").replace("-", "") api_name_no_spaces_or_hyphens_lower = api_name_no_spaces_or_hyphens.lower() -all_modules = {'nidcpower', 'nidigital', 'nidmm', 'nifgen', 'nimodinst', 'nirfsg', 'niscope', 'niswitch', 'nise', 'nitclk'} +all_modules = {'nidcpower', 'nidigital', 'nidmm', 'nifgen', 'nimodinst', 'nirfsa', 'nirfsg', 'niscope', 'niswitch', 'nise', 'nitclk'} module_name = config['module_name'] external_modules = all_modules - {module_name} %>\ diff --git a/docs/_static/documentation.inc b/docs/_static/documentation.inc index 0e5d2e1c67..b6f1e8e115 100644 --- a/docs/_static/documentation.inc +++ b/docs/_static/documentation.inc @@ -10,6 +10,7 @@ Documentation is available on **Read the Docs**: - https://nidmm.readthedocs.io - https://nifgen.readthedocs.io - https://nimodinst.readthedocs.io +- https://nirfsa.readthedocs.io - https://nirfsg.readthedocs.io - https://niscope.readthedocs.io - https://nise.readthedocs.io diff --git a/docs/_static/installation.inc b/docs/_static/installation.inc index 8660aa7a19..d9a099e4bb 100644 --- a/docs/_static/installation.inc +++ b/docs/_static/installation.inc @@ -10,6 +10,7 @@ Driver specific installation instructions can be found on **Read the Docs**: * `nidmm `_ * `nifgen `_ * `nimodinst `_ +* `nirfsa `_ * `nirfsg `_ * `niscope `_ * `nise `_ diff --git a/docs/_static/nirfsa_documentation.inc b/docs/_static/nirfsa_documentation.inc new file mode 100644 index 0000000000..13a11584ed --- /dev/null +++ b/docs/_static/nirfsa_documentation.inc @@ -0,0 +1,8 @@ +.. _documentation-section: + +Documentation +============= + +Documentation is available `here `_. + + diff --git a/docs/_static/nirfsa_usage.inc b/docs/_static/nirfsa_usage.inc new file mode 100644 index 0000000000..6ab9a491f7 --- /dev/null +++ b/docs/_static/nirfsa_usage.inc @@ -0,0 +1,24 @@ +Usage +------ + +The following is a basic example of using the **nirfsa** module to open a session to an RF Signal Analyzer and perform a spectrum acquisition. + +.. code-block:: python + + import nirfsa + + # Configure the session + with nirfsa.Session(resource_name=resource_name, id_query=False, reset_device=False, options=options) as rfsa_session: + rfsa_session.acquisition_type = nirfsa.AcquisitionType.IQ + + rfsa_session.reference_level = -10 + rfsa_session.iq_carrier_frequency = 1e9 + rfsa_session.number_of_samples = 1024 + rfsa_session.iq_rate = 1e6 + + iq_data_array = np.zeros(number_of_samples, dtype=np.complex128) + + wfm_info = rfsa_session.read_iq_single_record_into(iq_data_array) + # Perform measurements... + +`Other usage examples can be found on GitHub. `_ diff --git a/docs/nidcpower/conf.py b/docs/nidcpower/conf.py index f06059e051..c8bd63d6fd 100644 --- a/docs/nidcpower/conf.py +++ b/docs/nidcpower/conf.py @@ -189,6 +189,7 @@ def setup(app): 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), diff --git a/docs/nidigital/conf.py b/docs/nidigital/conf.py index ed8a53674b..65562b1044 100644 --- a/docs/nidigital/conf.py +++ b/docs/nidigital/conf.py @@ -189,6 +189,7 @@ def setup(app): 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), diff --git a/docs/nidmm/conf.py b/docs/nidmm/conf.py index f5a794f672..9fc90f0430 100644 --- a/docs/nidmm/conf.py +++ b/docs/nidmm/conf.py @@ -189,6 +189,7 @@ def setup(app): 'nidigital': ('https://nidigital.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), diff --git a/docs/nifgen/conf.py b/docs/nifgen/conf.py index dee4239619..63eef51471 100644 --- a/docs/nifgen/conf.py +++ b/docs/nifgen/conf.py @@ -189,6 +189,7 @@ def setup(app): 'nidigital': ('https://nidigital.readthedocs.io/en/latest/', None), 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), diff --git a/docs/nimodinst/conf.py b/docs/nimodinst/conf.py index 44f06537ef..a6644f21d5 100644 --- a/docs/nimodinst/conf.py +++ b/docs/nimodinst/conf.py @@ -189,6 +189,7 @@ def setup(app): 'nidigital': ('https://nidigital.readthedocs.io/en/latest/', None), 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), diff --git a/docs/nirfsg/conf.py b/docs/nirfsg/conf.py index 98c2c2c2bb..02551f0ba2 100644 --- a/docs/nirfsg/conf.py +++ b/docs/nirfsg/conf.py @@ -190,6 +190,7 @@ def setup(app): 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), 'niswitch': ('https://niswitch.readthedocs.io/en/latest/', None), diff --git a/docs/niscope/conf.py b/docs/niscope/conf.py index c7c5668c5b..602415bf80 100644 --- a/docs/niscope/conf.py +++ b/docs/niscope/conf.py @@ -190,6 +190,7 @@ def setup(app): 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), 'niswitch': ('https://niswitch.readthedocs.io/en/latest/', None), diff --git a/docs/nise/conf.py b/docs/nise/conf.py index 9b2ad47c1b..dc149a5112 100644 --- a/docs/nise/conf.py +++ b/docs/nise/conf.py @@ -190,6 +190,7 @@ def setup(app): 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'niswitch': ('https://niswitch.readthedocs.io/en/latest/', None), diff --git a/docs/niswitch/conf.py b/docs/niswitch/conf.py index d5940d8053..e4b48cf572 100644 --- a/docs/niswitch/conf.py +++ b/docs/niswitch/conf.py @@ -190,6 +190,7 @@ def setup(app): 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), diff --git a/docs/nitclk/conf.py b/docs/nitclk/conf.py index 2a4f3864b2..5de00c1b2a 100644 --- a/docs/nitclk/conf.py +++ b/docs/nitclk/conf.py @@ -190,6 +190,7 @@ def setup(app): 'nidmm': ('https://nidmm.readthedocs.io/en/latest/', None), 'nifgen': ('https://nifgen.readthedocs.io/en/latest/', None), 'nimodinst': ('https://nimodinst.readthedocs.io/en/latest/', None), + 'nirfsa': ('https://nirfsa.readthedocs.io/en/latest/', None), 'nirfsg': ('https://nirfsg.readthedocs.io/en/latest/', None), 'niscope': ('https://niscope.readthedocs.io/en/latest/', None), 'nise': ('https://nise.readthedocs.io/en/latest/', None), From 3eaacf94e3a629e28837571711259b0cf39ff78f Mon Sep 17 00:00:00 2001 From: mohit-emerson Date: Thu, 13 Aug 2026 10:51:35 +0000 Subject: [PATCH 2/3] README, License etc --- CHANGELOG.md | 10 ++++++++++ LICENSE | 2 +- README.rst | 2 ++ generated/nifake/README.rst | 2 +- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d03a32cfe..ab83e8a918 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - [nidmm (NI-DMM)](#nidmm-ni-dmm) - [nifgen (NI-FGEN)](#nifgen-ni-fgen) - [nimodinst (NI-ModInst)](#nimodinst-ni-modinst) +- [nirfsa (NI-RFSA)](#nirfsa-ni-rfsa) - [nirfsg (NI-RFSG)](#nirfsg-ni-rfsg) - [niscope (NI-SCOPE)](#niscope-ni-scope) - [nise (NI Switch Executive)](#nise-ni-switch-executive) @@ -1724,6 +1725,15 @@ - Initial release --- +### nirfsa (NI-RFSA) + +- [Unreleased](#nirfsa-unreleased) + +#### [nirfsa] Unreleased +- Added +- Changed +- Removed + ### nirfsg (NI-RFSG) - [Unreleased](#nirfsg-unreleased) diff --git a/LICENSE b/LICENSE index 4d4e4901e2..3ffec6a895 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ This is the MIT license: http://www.opensource.org/licenses/mit-license.php Copyright (c) 2017-2022, National Instruments Corporation. -NI-Digital Pattern Driver, NI-DMM, NI-DCPower, NI-FGEN, NI-RFSG, NI-SCOPE, NI-SWITCH, NI Switch Executive, +NI-Digital Pattern Driver, NI-DMM, NI-DCPower, NI-FGEN, NI-RFSA, NI-RFSG, NI-SCOPE, NI-SWITCH, NI Switch Executive, NI-ModInst, NI-TClk are trademarks of National Instruments. Permission is hereby granted, free of charge, to any person obtaining a copy of this diff --git a/README.rst b/README.rst index 5c7a98dbde..cdebf33a15 100644 --- a/README.rst +++ b/README.rst @@ -533,6 +533,7 @@ Driver specific installation instructions can be found on **Read the Docs**: * `nidmm `_ * `nifgen `_ * `nimodinst `_ +* `nirfsa `_ * `nirfsg `_ * `niscope `_ * `nise `_ @@ -591,6 +592,7 @@ Documentation is available on **Read the Docs**: - https://nidmm.readthedocs.io - https://nifgen.readthedocs.io - https://nimodinst.readthedocs.io +- https://nirfsa.readthedocs.io - https://nirfsg.readthedocs.io - https://niscope.readthedocs.io - https://nise.readthedocs.io diff --git a/generated/nifake/README.rst b/generated/nifake/README.rst index 4d4e4901e2..3ffec6a895 100644 --- a/generated/nifake/README.rst +++ b/generated/nifake/README.rst @@ -1,7 +1,7 @@ This is the MIT license: http://www.opensource.org/licenses/mit-license.php Copyright (c) 2017-2022, National Instruments Corporation. -NI-Digital Pattern Driver, NI-DMM, NI-DCPower, NI-FGEN, NI-RFSG, NI-SCOPE, NI-SWITCH, NI Switch Executive, +NI-Digital Pattern Driver, NI-DMM, NI-DCPower, NI-FGEN, NI-RFSA, NI-RFSG, NI-SCOPE, NI-SWITCH, NI Switch Executive, NI-ModInst, NI-TClk are trademarks of National Instruments. Permission is hereby granted, free of charge, to any person obtaining a copy of this From a7791f9d9ac1c376a7bf63b29d7af58ddffa8dfe Mon Sep 17 00:00:00 2001 From: mohit-emerson Date: Fri, 14 Aug 2026 05:32:20 +0000 Subject: [PATCH 3/3] review comments addressed --- docs/_static/nirfsa_usage.inc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/_static/nirfsa_usage.inc b/docs/_static/nirfsa_usage.inc index 6ab9a491f7..94e05bc6c2 100644 --- a/docs/_static/nirfsa_usage.inc +++ b/docs/_static/nirfsa_usage.inc @@ -8,15 +8,13 @@ The following is a basic example of using the **nirfsa** module to open a sessio import nirfsa # Configure the session - with nirfsa.Session(resource_name=resource_name, id_query=False, reset_device=False, options=options) as rfsa_session: + with nirfsa.Session(resource_name='5841', id_query=False, reset_device=False, options='Simulate=1, DriverSetup=Model:5841') as rfsa_session: rfsa_session.acquisition_type = nirfsa.AcquisitionType.IQ rfsa_session.reference_level = -10 rfsa_session.iq_carrier_frequency = 1e9 - rfsa_session.number_of_samples = 1024 - rfsa_session.iq_rate = 1e6 - iq_data_array = np.zeros(number_of_samples, dtype=np.complex128) + iq_data_array = np.zeros(1024, dtype=np.complex128) wfm_info = rfsa_session.read_iq_single_record_into(iq_data_array) # Perform measurements...