Examples

You can download all nirfsg examples here

nirfsg_arb_waveform.py

 1import argparse
 2import nirfsg
 3import numpy as np
 4import sys
 5
 6
 7def example(resource_name, options, frequency, power_level, number_of_samples):
 8    waveform_data = np.full(number_of_samples, 1 + 0j, dtype=np.complex128)
 9    with nirfsg.Session(resource_name=resource_name, id_query=False, reset_device=False, options=options) as session:
10        session.configure_rf(
11            frequency,
12            power_level
13        )
14        session.generation_mode = nirfsg.GenerationMode.ARB_WAVEFORM
15        session.write_arb_waveform('wfm', waveform_data, False)
16        with session.initiate():
17            session.check_generation_status()
18
19
20def _main(argsv):
21    parser = argparse.ArgumentParser(description='Continuously generates an arbitrary waveform using NI-RFSG.', formatter_class=argparse.ArgumentDefaultsHelpFormatter)
22    parser.add_argument('-n', '--resource-name', default='PXI1Slot2', help='Resource name of the NI RF signal generator.')
23    parser.add_argument('-f', '--frequency', default=1e9, type=float, help='Frequency in Hz.')
24    parser.add_argument('-p', '--power-level', default=-10.0, type=float, help='Power level in dBm.')
25    parser.add_argument('-s', '--number-of-samples', default=1000, type=int, help='Number of samples.')
26    parser.add_argument('-op', '--option-string', default='', type=str, help='Option string for the session.')
27    args = parser.parse_args(argsv)
28    example(args.resource_name, args.option_string, args.frequency, args.power_level, args.number_of_samples)
29
30
31def main():
32    _main(sys.argv[1:])
33
34
35def test_example():
36    options = {'simulate': True, 'driver_setup': {'Model': '5841', }, }
37    example('simulated5841', options, 1e9, -10.0, 1000)
38
39
40def test_main():
41    cmd_line = ['--resource-name', 'simulated5841', '--frequency', '1e9', '--power-level', '-10', '--number-of-samples', '1000', '--option-string', 'Simulate=1, DriverSetup=Model:5841']
42    _main(cmd_line)
43
44
45if __name__ == '__main__':
46    main()

nirfsg_cw.py

 1import argparse
 2import nirfsg
 3import sys
 4
 5
 6def example(resource_name, options, frequency, power_level):
 7    with nirfsg.Session(resource_name=resource_name, id_query=False, reset_device=False, options=options) as session:
 8        # Configure RF settings
 9        session.configure_rf(
10            frequency,  # Frequency in Hz
11            power_level  # Power level in dBm
12        )
13        session.generation_mode = nirfsg.GenerationMode.CW
14
15        # Start generation
16        with session.initiate():
17            session.check_generation_status()
18
19
20def _main(argsv):
21    parser = argparse.ArgumentParser(description='Generates a continuous wave (CW) signal using NI-RFSG.', formatter_class=argparse.ArgumentDefaultsHelpFormatter)
22    parser.add_argument('-n', '--resource-name', default='PXI1Slot2', help='Resource name of the NI RF signal generator.')
23    parser.add_argument('-f', '--frequency', default=1e9, type=float, help='Frequency in Hz.')
24    parser.add_argument('-p', '--power-level', default=-10.0, type=float, help='Power level in dBm.')
25    parser.add_argument('-op', '--option-string', default='', type=str, help='Option string for the session.')
26    args = parser.parse_args(argsv)
27    example(args.resource_name, args.option_string, args.frequency, args.power_level)
28
29
30def main():
31    _main(sys.argv[1:])
32
33
34def test_example():
35    options = {'simulate': True, 'driver_setup': {'Model': '5841', }, }
36    example('simulated5841', options, 1e9, -10.0)
37
38
39def test_main():
40    cmd_line = ['--resource-name', 'simulated5841', '--frequency', '1e9', '--power-level', '-10', '--option-string', 'Simulate=1, DriverSetup=Model:5841']
41    _main(cmd_line)
42
43
44if __name__ == '__main__':
45    main()

nirfsg_script.py

 1import argparse
 2import nirfsg
 3import numpy as np
 4import sys
 5
 6SAMPLE_SCRIPT = '''
 7script continuousWaveform
 8    repeat forever
 9        generate wfm
10    end repeat
11end script
12'''
13
14
15def example(resource_name, options, frequency, power_level, number_of_samples):
16    waveform_data = np.full(number_of_samples, 1 + 0j, dtype=np.complex64)
17    with nirfsg.Session(resource_name=resource_name, id_query=False, reset_device=False, options=options) as session:
18        session.configure_rf(
19            frequency,
20            power_level
21        )
22        session.generation_mode = nirfsg.GenerationMode.SCRIPT
23        session.write_arb_waveform('wfm', waveform_data, False)
24        session.write_script(SAMPLE_SCRIPT)
25        with session.initiate():
26            session.check_generation_status()
27
28
29def _main(argsv):
30    parser = argparse.ArgumentParser(description='Generates a signal based on the script provided.', formatter_class=argparse.ArgumentDefaultsHelpFormatter)
31    parser.add_argument('-n', '--resource-name', default='PXI1Slot2', help='Resource name of the NI RF signal generator.')
32    parser.add_argument('-f', '--frequency', default=1e9, type=float, help='Frequency in Hz.')
33    parser.add_argument('-p', '--power-level', default=-10.0, type=float, help='Power level in dBm.')
34    parser.add_argument('-s', '--number-of-samples', default=1000, type=int, help='Number of samples.')
35    parser.add_argument('-op', '--option-string', default='', type=str, help='Option string for the session.')
36    args = parser.parse_args(argsv)
37    example(args.resource_name, args.option_string, args.frequency, args.power_level, args.number_of_samples)
38
39
40def main():
41    _main(sys.argv[1:])
42
43
44def test_example():
45    options = {'simulate': True, 'driver_setup': {'Model': '5841', }, }
46    example('simulated5841', options, 1e9, -10.0, 1000)
47
48
49def test_main():
50    cmd_line = ['--resource-name', 'simulated5841', '--frequency', '1e9', '--power-level', '-10', '--number-of-samples', '1000', '--option-string', 'Simulate=1, DriverSetup=Model:5841']
51    _main(cmd_line)
52
53
54if __name__ == '__main__':
55    main()