大家好! 我从包的端口获取数据。 一秒钟的几个包,如下所示:
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。
答案 0 :(得分:0)
您正在读取比特率为921600 bps的串行端口。称它为每秒100,000个字符,或10μs/字符。到达250个字符至少需要2.5毫秒 - 您可以在2.5毫秒内完成批次。 (顺便说一句,这意味着你不能每秒获得超过400个数据包 - 你只是不能更快地填充数据!)
设备驱动程序会做一些缓冲,所以我不担心。