als Python Anfänger versuche ich gerade meine Arduino an meinen Pi via Python anzukoppeln.
pyserial läuft - allerdings ist die CPU Last recht hoch. Ca 30% - nur fürs Lesen des Ports. Da mache ich bestimmt was falsch!?
Außerdem komme ich mit den globalen Variablen noch nicht klar. Zumindest wenn ein Teil des scripts importiert wird.
Es wäre super wenn mich jemand erhellen könnte.
Robert
Hier der Code:
gVar.py
Code: Alles auswählen
GlobalSerIn = ""
Code: Alles auswählen
import serial
import time
import gVar
ser = serial.Serial('/dev/ttyACM0', 115200, timeout=0)
ser.close()
ser.open()
ser.flush()
def SerialThread():
buffer = ''
while True:
#ser.open()
buffer += ser.read(ser.inWaiting() or 1)
if '\n' in buffer:
#print(buffer)
gVar.GlobalSerIn = buffer.rstrip()
buffer = ""
time.sleep(0.005)
Code: Alles auswählen
import time
import thread
import gVar
import th_serial
thread.start_new_thread(th_serial.SerialThread())
if __name__ == '__main__':
time.sleep(1)
if gVar.GlobalSerIn != "":
print(gVar.GlobalSerIn)
gVar.GlobalSerIn = ""