2017-11-10 4 views
1

Ich machte ein Armaturenbrett, wo Licht von einem Lichtsensor auf einem Arduino uno in einen Prozentsatz umgewandelt wird. Ich versuche, weiterhin Eingaben zu empfangen, nachdem mein Arduino getrennt wurde.Weitere Daten von Arduino nach dem Trennen erhalten

try: 
    ser = Serial(
     port='COM3', 
     baudrate=19200, 
     parity=PARITY_NONE, 
     stopbits=STOPBITS_ONE, 
     bytesize=EIGHTBITS, 
     timeout=0) 
except: 
    print("Disconnected") 

def updateTick(): 
    try: 
     f.root.after(1000, updateTick) 
     value = ser.read() 
     min = 25    #min light value 
     max = 50    #max light value 
     if value: 
      lightNum = int.from_bytes(value, byteorder='little') 
      print(lightNum) 
      lightToPercentage = round((lightNum - min) * 100/(max - min)) 
      #print(lightToPercentage) 
      view.l1.lightLabelCount.config(text="{}%".format(lightToPercentage)) 
      checkPreset(lightToPercentage) 
      updateGraph(lightToPercentage) 
    except: 
     view.l1.lightLabelCount.config(text="N/A") 
     view.l1.lightLabelPreset.config(text="[Restart]") 

Also, wenn ich das Armaturenbrett zu starten, erhalte ich Daten von meinem Arduino, wenn ich meinen Arduino trennen, der Prozentsatz in de Armaturenbrett Änderungen N/A.

Aber was ich versuche zu tun ist, Daten wieder zu erhalten, sobald der Arduino wieder verbunden ist.

Irgendeine Idee, wie man das macht?

Antwort

0

Ich werde versuchen, Pseudo-Code der möglichen Lösung kam mir in den Sinn. Es kann irgendwie helfen.

if(check if serial comm. exist) 
    read received value 
    write the value to dashboard 
else 
    write last received value to dashboard 
    while(!(check if serial comm. exist)) 
     keep writing last received value to dashboard 
//when comm. come back, it'll automaticly update the value 
Verwandte Themen