Примечания к коду KerberosSDR (2) структура кода

Посетите следующую веб-страницу, которая является основной программой kerberossdr.

https://github.com/rtlsdrblog/kerberossdr

В корневом каталоге есть несколько папок. Коды, на которых мы фокусируемся, находятся в _GUI, _signalProcessing и _receiver. Их соответствующими функциями являются код интерфейса Python, различные алгоритмы обработки и взаимодействие с оборудованием приемника. Кроме того, _webDisplay и static используются для веб-страниц, которые являются динамической и статической частью соответственно. _Views - это предыдущая страница, а также веб-страница. Наконец, есть папка _dataFiles, в которой программа на Python может генерировать данные моделирования, которые используются для отладки программы без оборудования kerberossdr.

В корневом каталоге также есть несколько файлов, run.sh для запуска, setup_init.sh для установки, как упоминалось в последних двух статьях, sim.sh работает в режиме моделирования, он не будет вызывать оборудование RTL, но использует Сгенерированные вами данные могут отлаживать другие части программы. kill.sh - выйти из программы.

Щелкните папку _GUI, там несколько файлов, Main_hydra_dev.ui должен быть файлом дизайна интерфейса, перетаскиваемым вручную, convert.sh может автоматически генерировать hydra_mainwindow_layout.py, нам нужно заботиться только о файле hydra_main_window.py, который отвечает При взаимодействии с интерфейсом каждая отображаемая форма сигнала или нажатая кнопка взаимодействуют с этим файлом. В папке _dataFiles есть две программы на Python, которые могут генерировать два типа тестовых данных соответственно. Sim_gen.py генерирует относительно простые случайные данные, но они включают временную задержку выборки и разность фаз. Данные, сгенерированные DOA_sim_gen.py, можно использовать для тестирования алгоритма DOA. В _signalProcessing есть только один файл python, который может выполнять вычисление задержки, вычисление разности фаз, вычисление DOA и вычисление пассивного радара. В папке _receiver есть папка C и еще одна hydra_receiver.py. Программы в папке C относительно низкоуровневые и требуют прямого взаимодействия с оборудованием. Hydra_receiver.py реализует объектно-ориентированный приемник, который может вызываться алгоритмами, он может управлять базовой программой C и может выполнять некоторую предварительную обработку данных, включая фильтрацию, удаление смещения постоянного тока, коррекцию разности фаз и другие функции.

В _receiver / C есть еще программы c. rtl_daq.c наиболее напрямую взаимодействует с rtlsdr. Он вызывает api rtlsdr, а затем передает данные в код Python через stdout. Rtl_rec.h реализует структуру, которая инкапсулирует оборудование rtlsdr. Каждый из 4 приемников может иметь разные Усиление и центральная частота, частота дискретизации, буфер и т. Д. Его функция состоит в том, чтобы упаковать эти переменные в структуру, чтобы было удобно различать. rtl_daq.c использует эту структуру для взаимодействия с аппаратным api rtlsdr. Sync.c и sync.h используют результаты вычисления задержки для задержки данных iq, полученных в stdin и вывода на stdout. gate.c эквивалентен шлюзу, который считывает данные из stdin и выборочно выводит их на stdout. Функция sim.c заключается в том, что при отсутствии реального оборудования он может заменить rtl_daq.c для имитации и передачи имитированных данных iq в код Python.

рекомендация

отblog.csdn.net/shukebeta008/article/details/104031377