0
私は2つのモジュール、ホストとスキャナを持っています。どちらも無期限にループしてシリアルポートと通信します。変数 "bestchannel"をスキャナからホストにインポートしたいのですが、インポートすると、スキャナ内部のwhileループが最初に実行され、永遠にループします。私は、各モジュールを別々に実行したいが、リアルタイムで互いのデータを送信できるようにしたい。これは可能ですか?Python:無限ループの内部で変数をインポートする
サンプルコード(走査ラムの外):
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
私はスキャナからminchannelがホストにアクセスできるようにします。
サンプルコードが回答にリンクまたはダウンしています。申し訳ありません、別のブラウザを使用する必要がありました。
私の最初の質問は、あなたの2つのモジュールを実行するスレッドを使用しているでしょうか?既存のコードがある場合は、それを確認したいと思います。 – spade78
何をしているのかを明確にするために、サンプルコードを追加してください。 –
あなたが投稿したコードをハイライトしてから、 '{}'の角括弧でボタンを押してコードとして読むことができます。 – bgporter