了解实时硬件流(python)

2024-03-29 13:42:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,因为我不明白背后的原则。你知道吗

我编写了一个python脚本,从USB-DVB-T加密狗读取实时数据,以便接收无线温度传感器的数据。我正在使用一个叫做rtl\u fm的程序。这将从加密狗读取数据并将其导入我的脚本。我通过寻找不太复杂的例子来写剧本。你知道吗

在这个脚本中我使用系统标准文件号()从输入流中不断读取512字节。现在,我不明白的是,为什么这样做?如果加密狗(又称inputstream)以高于脚本读取速率的速率传递数据,我可能会丢失数据,或者某个缓冲区最终会溢出。如果速度较慢,我的脚本将一度停止,因为没有更多的数据。你知道吗

有人能解释一下这是怎么起作用的吗?你知道吗

泰铢。你知道吗


Tags: 数据程序脚本速率系统读取数据例子usb
1条回答
网友
1楼 · 发布于 2024-03-29 13:42:14

操作系统的管道处理正在为您执行缓冲。如果你读得太快,你的阅读就会受阻。如果rtl_fm写得太快,写就会阻塞。是否丢失数据取决于rtl_fm的工作方式。你知道吗

顺便说一句,假设rtl_fm输出原始字节,在python3中,您可以通过从sys.stdin.buffer读取来从stdin读取这些字节,而不是混用文件描述符和os调用。(在python2中,您可以从sys.stdin读取字节;至少,您可以在Linux和其他Unix(如不在文本流上进行换行翻译的操作系统)上读取字节)。你知道吗

相关问题 更多 >