ich bin noch ziemlich neu im Bereich Python und beschäftige mich momentan mit einem Script, dass sich via PySerial mit einem Arduino verbindet und fragt ab, welche Taster gedrückt wurden. Die Kommunikation funktioniert einwandfrei, nur habe ich leider ziemliche performance Probleme.
Mithilfe von ein paar clock() Befehlen konnte ich dann die übeltäter in meinem Script finden, wüsste jetzt aber nicht wie ich es besser machen sollte
Hier mal ein Ausschnitt aus meinem Code:
Code: Alles auswählen
arduinoDigital = "1"
arduinoAnalog = "2"
arduinoLED = "10"
arduinoDisplay = "11"
arduinoPWM = "12"
arduinoSystem = "20"
LEDon = "1"
LEDoff = "0"
def converter( thelist ):
result =""
a= clock()
for element in thelist:
str(element)
if result != "":
result = result +"," + element
if result == "":
result = element
b=clock()
print(b-a)
return result
def ComInterface():
ser = Verbindungsaufbau("off")
while(threadFlag == 0):
for i in range(0,15): #Joystickabfrage
a = clock()
ser.write(converter( [arduinoAnalog, format(i)] ).encode())
b = clock()
print("senden: ")
print(b-a)
x = clock()
command = str(ser.readline().decode().strip('\r\n'))
y= clock()
print("empfangen: ")
print(y-x)
joystickNR = i
ergebnis = joystickControl(command, joystickNR)
Code: Alles auswählen
in def ComInterface 1. Schleife
Converter:
1.3687216311453199e-05
senden:
0.007375698689621402
empfangen:
1.0011197853844482
Converter:
1.454266733169618e-05
senden:
0.007338914295782928
empfangen:
0.9980050882226639
ab der 2. Schleife
Converter:
5.132706114352459e-06
Converter:
8.554510195324383e-06
Converter:
5.98815713459544e-06
Converter:
9.409961208461937e-06Gedacht war, dass so eine Abfrage innerhalb weniger Millisekunden durch wäre, damit ich den Arduino und die Taster als Controller benutzen kann. Habt ihr vielleicht noch bessere Ideen?
Vielen Dank
und
einen schönen Abend noch
Kaito
