У меня есть два модуля, хост и сканер. Обе петли бесконечно для связи с последовательными портами. Я хочу импортировать переменную "bestchannel" из сканера в хост, но импортируя ее, цикл while внутри сканера запускается первым и циклически выполняется вечно. Я хочу, чтобы каждый модуль запускался отдельно, но мог отправлять друг другу данные в режиме реального времени. Возможно ли это?
(за пределами оперативной памяти)
Пример кода:
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 со сканера был доступен для хоста.
образец кода находится в ссылке или внизу в ответе, извините, мне пришлось использовать другой браузер.