Ich habe zwei Module, einen Host und einen Scanner. Beide können unbegrenzt mit den seriellen Ports kommunizieren. Ich möchte die Variable "bestchannel" vom Scanner in den Host importieren, aber indem ich sie importiere, läuft die While-Schleife im Scanner zuerst und läuft für immer. Ich möchte, dass jedes Modul separat läuft, aber in der Lage ist, einander Daten in Echtzeit zu senden. Ist das möglich?Python: Importieren einer Variablen innerhalb einer Endlosschleife
(außerhalb des Scannens ram)
Beispielcode:
Host Loop----------------------------------------------
while True:
ser.write(assemble("20","FF","FF","64","B"))
sData = ser.read(100)
if len(sData)>0:
for i in range(0, len(sData)-17):
if sData[i]==chr(1) and sData[i+1]==chr(20) and sData[i+2]==chr(int("A1", 16)):
height = (ord(sData[i+16])*256+ord(sData[i+17]))/100
print "Sensor ", ord(sData[i+12]), " is returning height ",
height, "mm. The minnoisechan:",minchannel
Scanner Loop----------------------------------------------
while True:
ser.write(scan("FF", "FF", str(scanlength))) #Channel Mask, Length
time.sleep(scanlength+2.0)
sData = ser.read(100)
if len(sData)>0:
for i in range(0, len(sData)-16):
if sData[i]==chr(1) and sData[i+1]==chr(23) and sData[i+2]==chr(int("C5", 16)):
for j in range(0, 16):
chan[j] = sData[i+5+j]
print "channel: ",j+11,"=",ord(chan[j])
if ord(chan[j])<minvalue:
minvalue=ord(chan[j])
minchannel=j+11
count+=1
print "count",count,"minvalue:",minvalue,"minchannel:",minchannel
minvalue=999
Ich möchte minchannel vom Scanner Host zugänglich sein.
Beispielcode ist im Link oder unten in der Antwort, sorry, ich musste einen anderen Browser verwenden.
Ohne Code zu gehen, meine erste Frage wäre, verwenden Sie Threads, um Ihre zwei Module zu laufen? Wenn Sie einen vorhandenen Code haben, würde ich es gerne sehen. – spade78
Fügen Sie einen Beispielcode hinzu, um zu verdeutlichen, was Sie tun. –
Hi - wähle den Code aus, den du gepostet hast, und drücke dann den Button mit den '{}' Klammern, damit wir ihn als Code lesen können. – bgporter