Her yarım saatte 3-4 satırlık veri alan bir seri bağlantı noktasının çıkışını izlemek için bir komut dosyası oluşturdum - komut dosyası düzgün çalışıyor ve bağlantı noktasından çıkan her şeyi günün sonunda ...Python/PySerial ve CPU kullanımı
Ancak, sadece bir seri portu izleyen bir program için cpu kullanımı oldukça yüksek gibi görünüyor, ancak bu durumda 1 çekirdekli her zaman% 100 kullanımda olacak komut dosyası çalışıyor.
Temelde bu, söz konusu kodun değiştirilmiş bir versiyonunu koşuyorum: Ben düzenli aralıklarla inWaiting() fonksiyonu yoklama denedim pyserial - How to Read Last Line Sent from Serial Device
ve) (inWaiting zaman uyku sahip 0'dır - Ben 1 saniyeden 0,001 saniyeye kadar aralıklarla denedim (temel olarak, cpu kullanımını kullanmadan olabildiğince sık sık) - bu ilk satırı yakalamayı başarır ancak verilerin geri kalanını kaçırır gibi görünüyor.
Seri bağlantı noktasının zaman aşımını ayarlamak, cpu kullanımı üzerinde herhangi bir etkiye sahip görünmüyor ve dinleme işlevini kendi iş parçacığı haline getirmiyor (gerçekten bir fark beklediğimden değil, denemeye değerdi).
- Python/pyserial bu kadar CPU kullanıyor mu? (bu overkill gibi gözüküyor)
- Zamanımı bu görev için harcıyorum/Mermiyi ısırmalı mıyım ve senaryoyu hiçbir veri gelmeyeceğini bildiğim dönemler için uyumaya mıyım?
Harika! Şimdi bir yavru kedi gibi cüret ediyor, Nil CPU kullanımının yanında ve ona attığım her şeyi ele geçiriyor. Oku (1) ile aynı şekilde çalışacağı izlenimi altında read (inWaiting()) kullanıyordum - açıkçası böyle değil. Bunu temizlediğin için teşekkürler. –
Cool, ve bana serpantini keşfettirdiğin için teşekkürler, seri portlarla bir dahaki sefere oynayacağımı düşüneceğim :) – tonfa
Mükemmel - kurulum ve kullanım için acısız, bu benim için sorun olan tek şeydi ve ** Ben ** sorun oldu. –