У меня вопрос, потому что я не понимаю принцип, лежащий в его основе.Понимание чтения аппаратных потоков реального времени (python)
Я написал сценарий python, который считывает данные в реальном времени с USB-DVB-T Dongle, чтобы получать данные от беспроводного датчика температуры. Я использую программу под названием rtl_fm. Это считывает данные из ключа и передает его в мой скрипт. Я написал сценарий, ища примеры, которые были не слишком сложными.
В этом скрипте я использую sys.stdin.fileno() для постоянного чтения 512 байт из входного потока. Теперь, что я не делаю, почему это работает? Если ключ, например, входной поток, будет передавать данные с более высокой скоростью, то скорость, которую мой скрипт читает, я бы либо потерял данные, либо какой-то буфер в конечном итоге переполнился. Если скорость будет медленнее, мой скрипт остановится в один момент, потому что данных больше нет.
Может кто-нибудь объяснить, как/почему это работает?
Thx.
Как вы используете 'sys.stdin.fileno()' для чтения данных? Эта функция возвращает только дескриптор файла, в данном случае - '0'. Вы должны использовать 'sys.stdin.read (512)'. –
Я подключаю его к скрипту python: rtl_fm parametery | python script.py - – Pythoneer