从串口输入到Python3

时间:2016-11-17 12:33:19

标签: python c++ linux matlab

大家好! 我从包的端口获取数据。 一秒钟的几个包,如下所示:

275 242 280 263 235 179 234 236 233 195 203 190 202... 

大约250位数字。 每次不同的数量。

我的主要目的是从这些数据中获取实时图片。 我使用如下的python:

ser = serial.Serial('/dev/ttyACM0', 921600, timeout=2, xonxoff=False, rtscts=False, dsrdtr=False) #Tried with and without the last 3 parameters, and also at 1Mbps, same happens.
ser.flushInput()
ser.flushOutput()
while true:
    data_raw = ser.readline()
    *some calculation*

我的第一个问题是:如果包装的速度太快(例如每秒1000包),是否有可能错过一些包装? 或者我必须使用管道,如:

cat /dev/ttyS0 | python3 script.py

我的第二个问题是:我必须用什么语言来避免任何损失? Matlab就够了?或者也许是C ++? 我使用Linux。

1 个答案:

答案 0 :(得分:0)

您正在读取比特率为921600 bps的串行端口。称它为每秒100,000个字符,或10μs/字符。到达250个字符至少需要2.5毫秒 - 您可以在2.5毫秒内完成批次。 (顺便说一句,这意味着你不能每秒获得超过400个数据包 - 你只是不能更快地填充数据!)

设备驱动程序会做一些缓冲,所以我不担心。