我已經創建了一個腳本來監視每半小時接收3-4行數據的串行端口的輸出 - 腳本運行正常,並抓取從端口出來的所有內容結束的一天是至關重要的...Python/PySerial和CPU使用情況
但是,什麼錯誤的是,對於一個程序,只是監視一個串行端口的CPU使用率似乎相當高,1核心將始終在100%的使用率,而這腳本正在運行。
基本上,我在這個問題上運行代碼的修改版本:pyserial - How to Read Last Line Sent from Serial Device
我已經試過輪詢定期的inWaiting()功能,並且inWaiting()時,它的睡眠是0 - 我我已經嘗試了從1秒到0.001秒的時間間隔(基本上,儘可能多的時候不用提高CPU使用率) - 這將成功抓取第一行,但似乎錯過了其餘的數據。
調整串口的超時時間似乎對CPU使用率沒有任何影響,也沒有將監聽功能放到它自己的線程中(不是我真的認爲它有差異,但值得嘗試)。
- python/pyserial應該使用這麼多的cpu? (這看起來像是矯枉過正)
- 我在這個任務上浪費了我的時間/我是否應該咬下子彈並安排腳本在我知道沒有數據將要來臨的時間內睡覺?
太棒了!它現在像一隻小貓一樣咕嚕咕嚕,旁邊沒有CPU的使用,它抓住了我所扔的一切。 我一直在使用read(inWaiting()),它的功能與read(1)的功能相同 - 顯然情況並非如此。感謝您爲我清理。 – 2009-08-25 15:32:23
很酷,並感謝讓我發現pyserial,我會考慮它下一次我玩串行端口:) – tonfa 2009-08-25 16:28:01
這是非常好的 - 無痛設置和使用,這是我唯一遇到麻煩和**我**是問題。 – 2009-08-25 17:33:34