Skip to content

Commit 08481d9

Browse files
committed
fixed issue
1 parent be0aa38 commit 08481d9

File tree

1 file changed

+64
-67
lines changed

1 file changed

+64
-67
lines changed

python_bladerf/pybladerf_tools/pybladerf_sweep.pyx

Lines changed: 64 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -428,94 +428,91 @@ def pybladerf_sweep(frequencies: list[int] | None = None, sample_rate: int = 61_
428428
schedule_timestamp += await_time + fft_size
429429
tune_step = (tune_step + 1) % tune_steps
430430

431-
with nogil:
432-
while working_sdrs[device_id].load():
433-
434-
#
435-
if empty_raw_data_queue.empty():
436-
buffer = np.empty(fft_size if oversample else fft_size * 2, dtype=np.int8 if oversample else np.int16)
437-
else:
438-
buffer = empty_raw_data_queue.get()
431+
while working_sdrs[device_id].load():
432+
if empty_raw_data_queue.empty():
433+
buffer = np.empty(fft_size if oversample else fft_size * 2, dtype=np.int8 if oversample else np.int16)
434+
else:
435+
buffer = empty_raw_data_queue.get()
439436

440-
meta.timestamp = sweep_steps[sweep_step_read_ptr].schedule_time
437+
meta.timestamp = sweep_steps[sweep_step_read_ptr].schedule_time
441438

442-
try:
443-
device.pybladerf_sync_rx(buffer, fft_size, meta, 0)
444-
raw_data_queue.put(
445-
(
446-
datetime.datetime.now().strftime('%Y-%m-%d, %H:%M:%S.%f'),
447-
sweep_steps[sweep_step_read_ptr].frequency,
448-
buffer,
449-
)
450-
)
439+
try:
440+
device.pybladerf_sync_rx(buffer, fft_size, meta, 0)
441+
raw_data_queue.put(
442+
(
443+
datetime.datetime.now().strftime('%Y-%m-%d, %H:%M:%S.%f'),
444+
sweep_steps[sweep_step_read_ptr].frequency,
445+
buffer,
446+
)
447+
)
451448

452-
sweep_step_read_ptr = (sweep_step_read_ptr + 1) % 8
449+
sweep_step_read_ptr = (sweep_step_read_ptr + 1) % 8
453450

454-
quick_tunes[tune_step][1].rffe_profile = free_rffe_profile
455-
device.pybladerf_schedule_retune(formated_channel, schedule_timestamp, 0, quick_tunes[tune_step][1])
451+
quick_tunes[tune_step][1].rffe_profile = free_rffe_profile
452+
device.pybladerf_schedule_retune(formated_channel, schedule_timestamp, 0, quick_tunes[tune_step][1])
456453

457-
sweep_steps[sweep_step_write_ptr].frequency = quick_tunes[tune_step][0]
458-
sweep_steps[sweep_step_write_ptr].schedule_time = schedule_timestamp + await_time
459-
sweep_step_write_ptr = (sweep_step_write_ptr + 1) % 8
454+
sweep_steps[sweep_step_write_ptr].frequency = quick_tunes[tune_step][0]
455+
sweep_steps[sweep_step_write_ptr].schedule_time = schedule_timestamp + await_time
456+
sweep_step_write_ptr = (sweep_step_write_ptr + 1) % 8
460457

461-
free_rffe_profile = (free_rffe_profile + 1) % rffe_profiles
462-
schedule_timestamp += await_time + fft_size
463-
tune_step = (tune_step + 1) % tune_steps
458+
free_rffe_profile = (free_rffe_profile + 1) % rffe_profiles
459+
schedule_timestamp += await_time + fft_size
460+
tune_step = (tune_step + 1) % tune_steps
464461

465-
accepted_samples += fft_size
462+
accepted_samples += fft_size
466463

467-
except pybladerf.PYBLADERF_ERR_TIME_PAST:
468-
sys.stderr.write("Timestamp is in the past, restarting...\n")
464+
except pybladerf.PYBLADERF_ERR_TIME_PAST:
465+
sys.stderr.write("Timestamp is in the past, restarting...\n")
469466

470-
tune_step = 0
471-
free_rffe_profile = 0
472-
sweep_step_read_ptr = 0
473-
sweep_step_write_ptr = 0
467+
tune_step = 0
468+
free_rffe_profile = 0
469+
sweep_step_read_ptr = 0
470+
sweep_step_write_ptr = 0
474471

475-
schedule_timestamp = device.pybladerf_get_timestamp(pybladerf.pybladerf_direction.PYBLADERF_RX) + time_1ms * 150
476-
empty_raw_data_queue.put(buffer)
472+
schedule_timestamp = device.pybladerf_get_timestamp(pybladerf.pybladerf_direction.PYBLADERF_RX) + time_1ms * 150
473+
empty_raw_data_queue.put(buffer)
477474

478-
for i in range(8):
479-
quick_tunes[tune_step][1].rffe_profile = free_rffe_profile
480-
device.pybladerf_schedule_retune(formated_channel, schedule_timestamp, 0, quick_tunes[tune_step][1])
475+
for i in range(8):
476+
quick_tunes[tune_step][1].rffe_profile = free_rffe_profile
477+
device.pybladerf_schedule_retune(formated_channel, schedule_timestamp, 0, quick_tunes[tune_step][1])
481478

482-
sweep_steps[sweep_step_write_ptr].frequency = quick_tunes[tune_step][0]
483-
sweep_steps[sweep_step_write_ptr].schedule_time = schedule_timestamp + await_time
484-
sweep_step_write_ptr = (sweep_step_write_ptr + 1) % 8
479+
sweep_steps[sweep_step_write_ptr].frequency = quick_tunes[tune_step][0]
480+
sweep_steps[sweep_step_write_ptr].schedule_time = schedule_timestamp + await_time
481+
sweep_step_write_ptr = (sweep_step_write_ptr + 1) % 8
485482

486-
free_rffe_profile = (free_rffe_profile + 1) % rffe_profiles
487-
schedule_timestamp += await_time + fft_size
488-
tune_step = (tune_step + 1) % tune_steps
483+
free_rffe_profile = (free_rffe_profile + 1) % rffe_profiles
484+
schedule_timestamp += await_time + fft_size
485+
tune_step = (tune_step + 1) % tune_steps
489486

490-
continue
487+
continue
491488

492-
except pybladerf.PYBLADERF_ERR as ex:
493-
sys.stderr.write("pybladerf_sync_rx() failed: %s %d", cbladerf.bladerf_strerror(ex.code), ex.code)
494-
working_sdrs[device_id].store(0)
495-
break
489+
except pybladerf.PYBLADERF_ERR as ex:
490+
sys.stderr.write("pybladerf_sync_rx() failed: %s %d", cbladerf.bladerf_strerror(ex.code), ex.code)
491+
working_sdrs[device_id].store(0)
492+
break
496493

497494

498-
if tune_step == 0:
499-
sweep_count += 1
495+
if tune_step == 0:
496+
sweep_count += 1
500497

501-
if one_shot or (num_sweeps == sweep_count):
502-
if sweep_count:
503-
working_sdrs[device_id].store(0)
498+
if one_shot or (num_sweeps == sweep_count):
499+
if sweep_count:
500+
working_sdrs[device_id].store(0)
504501

505-
time_now = time.time()
506-
time_difference = time_now - time_prev
507-
if time_difference >= 1.0:
508-
if print_to_console:
509-
sweep_rate = sweep_count / (time_now - time_start)
510-
sys.stderr.write(f'{sweep_count} total sweeps completed, {round(sweep_rate, 2)} sweeps/second\n')
502+
time_now = time.time()
503+
time_difference = time_now - time_prev
504+
if time_difference >= 1.0:
505+
if print_to_console:
506+
sweep_rate = sweep_count / (time_now - time_start)
507+
sys.stderr.write(f'{sweep_count} total sweeps completed, {round(sweep_rate, 2)} sweeps/second\n')
511508

512-
if accepted_samples == 0:
513-
if print_to_console:
514-
sys.stderr.write("Couldn\'t transfer any data for one second.\n")
515-
break
509+
if accepted_samples == 0:
510+
if print_to_console:
511+
sys.stderr.write("Couldn\'t transfer any data for one second.\n")
512+
break
516513

517-
accepted_samples = 0
518-
time_prev = time_now
514+
accepted_samples = 0
515+
time_prev = time_now
519516

520517
if print_to_console:
521518
if not working_sdrs[device_id].load():

0 commit comments

Comments
 (0)