我想間隔讀取串行端口上的數據和Arduino。所以基本上像讀取串行端口 - 忽略寫入串行端口一段時間的數據部分
- 進行讀數
- 等待
- 進行讀數
- 等待
- 以...
等
我的問題面對的是,當我呼叫等待f時,端口將緩衝其信息串口上的數據將開始緩衝。一旦等待函數完成,我嘗試再次讀取數據,但是我從緩衝區的開始處讀取數據,並且數據不再是當前數據,而是大致在等待函數開始時讀取的數據。
我的問題是,是否有一種方法,我不知道在等待期間忽略讀入的數據部分,只讀取當前串行端口上的數據?
我有這樣的事情類似於這個至今:
import serial
s = serial.Serial(path_to_my_serial_port,9600)
while True:
print s.readline()
time.sleep(.5)
爲了便於說明我有Arduino的輸出時間,因爲它開始了它的循環。通過python代碼,每次調用的時間應該相差半秒。通過串行輸出,時間在不到一毫秒的時間內遞增。無論睡眠時間如何,這些值都不會改變。
輸出示例:
504
504
504
504
505
505
505
...
作爲自己的最終目標的想法,我想衡量港口的價值,等待時間延遲,看到價值是什麼,然後,等待再次,看什麼那麼值是,再等一等。
我目前正在使用Python
,但我對其他語言開放。
這正是我所要求的,但是因爲我提出了這個問題,我試過這個,發現它經常會把我寶貴的數據截斷一半!我想出了一個適合我的目的的替代解決方案。儘管謝謝你的回覆。 –