Im пытается сделать небольшой 3 связанных роботов. Они должны отправлять и получать данные датчиков друг от друга и предпринимать действия для того, чтобы показания снова стали равными нулю. Iam пытается обменять угол движений, чтобы другой последовал за ним. Я использую MQTT, и он работает очень хорошо. Но когда я пытаюсь получить данные из def on_message, чтобы использовать его в следующем, а переменная не является глобальной. код следующим образом:Как получить данные из переменной в Def, чтобы использовать ее снаружи и остается обновленной?
############### MQTT section ##################
# when connecting to mqtt do this;
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe(sub_topic)
# when receiving a mqtt message do this;
def on_message(client, userdata, msg):
masterangel = int(msg.payload)
print (masterangel)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(Broker, 1883, 60)
client.loop_start()
# Start the Program
psm.screen.termPrintAt(1, "Press Go to stop program")
while(not doExit):
oldAngel = Angel
Angel = gyro.readValue()
Angelshow = "Current Angel ="+" "+str (Angel)
if (oldAngel != Angel):
psm.screen.termPrintAt(5, Angelshow)
if (Angel < masterangel) :
psm.BBM1.setSpeedSync(20)
psm.BAM1.floatSync()
elif (masterangel < Angel) :
psm.BAM1.setSpeedSync(20)
psm.BBM1.floatSync()
client.publish(pub_topic, "test")
теперь никому идея, как я могу использовать переменную «masterangel» в то время цикла? , кстати, порядок печати работ прекрасен.
print (masterangel)
спасибо заранее, и я ценю вашу помощь
Спасибо, что сработало отлично! Спасибо за помощь :) –