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()