2525
2626def pyhackrf_operacake_info (device : pyhackrf .PyHackrfDevice = None ,
2727 serial_number : str = None ,
28- print_to_console : bool = True , ) -> None | str :
28+ print_to_console : bool = True ,
29+ ) -> None | str :
2930
3031 initialize = True if device is None else False
3132
3233 if initialize :
3334 pyhackrf .pyhackrf_init ()
35+
3436 if serial_number is not None :
3537 device = pyhackrf .pyhackrf_open_by_serial (serial_number )
3638 else :
@@ -53,16 +55,25 @@ def pyhackrf_operacake_info(device: pyhackrf.PyHackrfDevice = None,
5355 return operacake_info
5456
5557 if initialize :
58+ device .pyhackrf_close ()
5659 pyhackrf .pyhackrf_exit ()
5760
5861
59- def pyhackrf_set_operacake_mode (address : int , mode : str , serial_number : str = None ) -> None :
60- pyhackrf .pyhackrf_init ()
62+ def pyhackrf_set_operacake_mode (address : int ,
63+ mode : str ,
64+ serial_number : str = None ,
65+ device : pyhackrf .PyHackrfDevice = None ,
66+ ) -> None :
6167
62- if serial_number is not None :
63- device = pyhackrf .pyhackrf_open_by_serial (serial_number )
64- else :
65- device = pyhackrf .pyhackrf_open ()
68+ initialize = True if device is None else False
69+
70+ if initialize :
71+ pyhackrf .pyhackrf_init ()
72+
73+ if serial_number is not None :
74+ device = pyhackrf .pyhackrf_open_by_serial (serial_number )
75+ else :
76+ device = pyhackrf .pyhackrf_open ()
6677
6778 if mode == 'frequency' :
6879 mode = pyhackrf .py_operacake_switching_mode .OPERACAKE_MODE_FREQUENCY
@@ -73,55 +84,93 @@ def pyhackrf_set_operacake_mode(address: int, mode: str, serial_number: str = No
7384
7485 device .pyhackrf_set_operacake_mode (address , mode )
7586
76- pyhackrf .pyhackrf_exit ()
87+ if initialize :
88+ device .pyhackrf_close ()
89+ pyhackrf .pyhackrf_exit ()
7790
7891
79- def pyhackrf_set_operacake_freq_ranges (freq_ranges : list , serial_number : str = None ) -> None :
80- pyhackrf .pyhackrf_init ()
92+ def pyhackrf_set_operacake_freq_ranges (freq_ranges : list ,
93+ serial_number : str = None ,
94+ device : pyhackrf .PyHackrfDevice = None ,
95+ ) -> None :
8196
82- if serial_number is not None :
83- device = pyhackrf .pyhackrf_open_by_serial (serial_number )
84- else :
85- device = pyhackrf .pyhackrf_open ()
97+ initialize = True if device is None else False
98+
99+ if initialize :
100+ pyhackrf .pyhackrf_init ()
101+
102+ if serial_number is not None :
103+ device = pyhackrf .pyhackrf_open_by_serial (serial_number )
104+ else :
105+ device = pyhackrf .pyhackrf_open ()
86106
87107 device .pyhackrf_set_operacake_freq_ranges (freq_ranges )
88108
89- pyhackrf .pyhackrf_exit ()
109+ if initialize :
110+ device .pyhackrf_close ()
111+ pyhackrf .pyhackrf_exit ()
90112
91113
92- def pyhackrf_set_operacake_dwell_times (dwell_times : list , serial_number : str = None ) -> None :
93- pyhackrf .pyhackrf_init ()
114+ def pyhackrf_set_operacake_dwell_times (dwell_times : list ,
115+ serial_number : str = None ,
116+ device : pyhackrf .PyHackrfDevice = None ,
117+ ) -> None :
94118
95- if serial_number is not None :
96- device = pyhackrf .pyhackrf_open_by_serial (serial_number )
97- else :
98- device = pyhackrf .pyhackrf_open ()
119+ initialize = True if device is None else False
120+
121+ if initialize :
122+ pyhackrf .pyhackrf_init ()
123+
124+ if serial_number is not None :
125+ device = pyhackrf .pyhackrf_open_by_serial (serial_number )
126+ else :
127+ device = pyhackrf .pyhackrf_open ()
99128
100129 device .pyhackrf_set_operacake_dwell_times (dwell_times )
101130
102- pyhackrf .pyhackrf_exit ()
131+ if initialize :
132+ device .pyhackrf_close ()
133+ pyhackrf .pyhackrf_exit ()
103134
104135
105- def pyhackrf_set_operacake_ports (address : int , port_a : str , port_b : str , serial_number : str = None , ) -> None :
106- pyhackrf .pyhackrf_init ()
136+ def pyhackrf_set_operacake_ports (address : int ,
137+ port_a : str ,
138+ port_b : str ,
139+ serial_number : str = None ,
140+ device : pyhackrf .PyHackrfDevice = None ,
141+ ) -> None :
107142
108- if serial_number is not None :
109- device = pyhackrf .pyhackrf_open_by_serial (serial_number )
110- else :
111- device = pyhackrf .pyhackrf_open ()
143+ initialize = True if device is None else False
144+
145+ if initialize :
146+ pyhackrf .pyhackrf_init ()
147+
148+ if serial_number is not None :
149+ device = pyhackrf .pyhackrf_open_by_serial (serial_number )
150+ else :
151+ device = pyhackrf .pyhackrf_open ()
112152
113153 device .pyhackrf_set_operacake_ports (address , port_a , port_b )
114154
115- pyhackrf .pyhackrf_exit ()
155+ if initialize :
156+ device .pyhackrf_close ()
157+ pyhackrf .pyhackrf_exit ()
116158
117159
118- def pyhackrf_operacake_gpio_test (address : int , serial_number : str = None , ) -> None :
119- pyhackrf .pyhackrf_init ()
160+ def pyhackrf_operacake_gpio_test (address : int ,
161+ serial_number : str = None ,
162+ device : pyhackrf .PyHackrfDevice = None ,
163+ ) -> None :
120164
121- if serial_number is not None :
122- device = pyhackrf .pyhackrf_open_by_serial (serial_number )
123- else :
124- device = pyhackrf .pyhackrf_open ()
165+ initialize = True if device is None else False
166+
167+ if initialize :
168+ pyhackrf .pyhackrf_init ()
169+
170+ if serial_number is not None :
171+ device = pyhackrf .pyhackrf_open_by_serial (serial_number )
172+ else :
173+ device = pyhackrf .pyhackrf_open ()
125174
126175 test_result = device .pyhackrf_operacake_gpio_test (address )
127176 if test_result == 0xFFFF :
@@ -145,4 +194,7 @@ def pyhackrf_operacake_gpio_test(address: int, serial_number: str = None, ) -> N
145194 print ("u1ctrl \t %d\t %d\t %d\n " , (reg >> 2 ) & 1 , (reg >> 1 ) & 1 , reg & 1 )
146195 else :
147196 print ('GPIO test passed' )
148- pyhackrf .pyhackrf_exit ()
197+
198+ if initialize :
199+ device .pyhackrf_close ()
200+ pyhackrf .pyhackrf_exit ()
0 commit comments