LINUX.ORG.RU

Непрерывное чтение в pyrtlsrd?

 , , ,


0

1

Уважаемые специалисты по всему!

Задача: организовать непрерывную запись отсчетов с RTL SRD устройства, обработку сигнала и отображение результата.

Хочу реализовать это при помощи pyrtlsrd, pyqt и pyqtgraph.

В pyrtlsrd есть пример стриминга на asyncio:

import asyncio
from rtlsdr import RtlSdr

async def streaming():
    sdr = RtlSdr()

    async for samples in sdr.stream():
        # do something with samples
        # ...

    # to stop streaming:
    await sdr.stop()

    # done
    sdr.close()

loop = asyncio.get_event_loop()
loop.run_until_complete(streaming())

Насколько я понимаю, он обеспечивает непрерывное чтение. Однако, если в итоге будет приложение на pyqt, то мне, по сути, не нужна очередь от asyncio, а хватит просто одного QThread, который будет сигналом отдавать в основной поток данные для отрисовки.

Вопрос 1: имеет ли смысл совмещать async/await синтаксис в Qt? Можно ли выполнение async def streaming подпихнуть в event loop от Qt?

Вопрос 2: Как организовать получение сигнала с srd непрерывно без async/await? Вот такой код гарантирует непрерывность?

def streaming():

    with closing(RtlSdr()) as sdr:  
        sdr.sample_rate = sample_rate = 240e3
        sdr.center_freq = fc = 101.5e6
        sdr.gain = 'auto'

        count = 0
        while True:
            # do something with samples
            # ...           
                
streaming()

Вопрос 3: вопрос вообще по-адресу? Разумеется, на ЛОРе есть всё, но, может, порекомендуете более целевой форум?

Забей на pyrtlsdr и тем более на asyncio. Запускай librtlsdr как TCP-сервер и работай на Qt с потоком.

vvn_black ★★★★★
()
Ответ на: комментарий от vvn_black

Любопытная идея, благодарю! Рекомендуешь этот подход в плане архитектуры или производительности? Просто по такой логике есть возможность просто запустить rtl_sdr и захватывать стандартный вывод...

omegatype ★★★
() автор топика
Ответ на: комментарий от omegatype

Рекомендуешь этот подход в плане архитектуры или производительности?

Скорее в плане удобства разработки ) Чтоб время не терять и не разбираться с «pyrtlsdr»

vvn_black ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.