Wie stelle ich sicher, dass die Ausführung einer Python-While-Schleife eine bestimmte Zeit in Anspruch nimmt?Python

Python-Programme
Guest
 Wie stelle ich sicher, dass die Ausführung einer Python-While-Schleife eine bestimmte Zeit in Anspruch nimmt?

Post by Guest »

Ich lese serielle Daten mit einer While-Schleife. Allerdings habe ich keine Kontrolle über die Abtastrate.

Die Ausführung des Codes selbst scheint 0,2 Sekunden zu dauern, daher weiß ich, dass ich nicht schneller sein werde als das. Aber ich würde gerne genau steuern können, wie viel langsamer ich probiere.

Ich habe das Gefühl, ich könnte es mit „Sleep“ machen, aber das Problem ist, dass das so ist Möglicherweise dauert das Lesen der Schleife selbst an verschiedenen Stellen länger (abhängig davon, was genau über serielle Daten übertragen wird), sodass der Code den Rest ausgleichen müsste.

Nehmen wir zum Beispiel an, ich möchte alle 1 Sekunden abtasten, und die Schleife dauert Die Laufzeit liegt zwischen 0,2 und 0,3 Sekunden. Mein Code muss intelligent genug sein, um 0,8 Sekunden (wenn die Schleife 0,2 Sekunden dauert) oder 0,7 Sekunden (wenn die Schleife 0,3 Sekunden dauert) zu schlafen.

Code: Select all

import serial
import csv
import time

#open serial stream
while True:

#read and print a line
sample_value=ser.readline()
sample_time=time.time()-zero
sample_line=str(sample_time)+','+str(sample_value)
outfile.write(sample_line)
print 'time: ',sample_time,', value: ',sample_value

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post