Ниже приведен код, который я использую, чтобы вытащить некоторые серийные данные из ардуино. Этот оператор IF if (Ardinput == stagecode): Не использует глобальную переменную, объявленную ранее в той же функции. Я знаю его кое-что с моей логикой, я просто не уверен, что.Мои глобальные переменные не работают, как я представляю, они должны
EDIT Я добавил все мой код, чтобы помочь очистить вещи
stagecode = "STAGE "
ser = serial.Serial(
port='COM3',
baudrate=9600,
)
def stage():
urllib.request.urlopen(url + 'f.stage')
def capture():
global Ardinput
print ("Start capture")
while (1):
line = ser.readline()
if (line != ""):
print (line)
Ardinput = line
Ardinput = Ardinput.decode("utf-8")
print (Ardinput + ' Befor CR')
Ardinput = Ardinput[:-1]
print (Ardinput)
done = Ardinput
break
if (Ardinput == stagecode):
print (stagecode + ' IN IF FUNCTION')
#stage()
print ("Start Application" + Ardinput )
print
capture()
Такая же функция? Вы уверены, что ваш отступ здесь такой же, как и в вашем коде? – laike9m
Я думаю, что вам действительно нужно выполнить 'capture()' перед оператором if. – Marcin
Вы не присвоили значение по умолчанию или не получили значение в 'stagecode'? –