2017-08-16 2 views
0

Je suis en train d'obtenir des données de framboise pi 3 à Azurevariable référencée avant affectation: Python

Le script lit les données de framboise Pi3, qui est de se connecter via Bluetooth aux capteurs et prend plusieurs valeurs.
Malheureusement, je reçois une erreur, quand je le lance

« variable locale « température » fait référence avant l'affectation »

def iothub_client_sample_run(): 
    msgs=[] 

    for address, name in list(devices.items()): 
    try: 
     client = iothub_client_init() 

     if client.protocol == IoTHubTransportProvider.MQTT & (name == "Flower care"): 
     msg_txt_formatted = MSG_TXT % (
      temperature, 
      sunlight, 
      moisture, 
      fertility) 

      message = IoTHubMessage(msg_txt_formatted) 
       # optional: assign ids 
     message.temperature_id = "%d" % temperature 

     client.send_event_async(message, send_confirmation_callback, devices.items()) 
     print ("IoTHubClient.send_event_async accepted message {} for transmission to IoT Hub.".format(devices.items())) 
     return msgs  
while 1: 
msgs=iothub_client_sample_run() 
for msg in msgs: 
print msg['topic'] 
print msg['payload'] 
(result, mid)=mqttc.publish(msg['topic'],msg['payload']) 
print ("Send status: %s" % status) 
     time.sleep(10) 
mqttc.disconnect() 

except IoTHubError as iothub_error: 
     print ("Unexpected error %s from IoTHub" % iothub_error) 
     return 
except KeyboardInterrupt: 
     print ("IoTHubClient sample stopped") 
    print_last_message_time(client) 
+0

Afficher le retraçage complet s'il vous plaît –

+0

Fixez votre mise en forme. Et votre erreur est assez claire - vous essayez d'utiliser la variable 'temperature' avant que la variable ne soit assignée à une valeur ie température = 'x' .. Cela pourrait être dû à votre instruction try: mais nous ne le saurions pas à cause du formatage – AK47

Répondre

1

Le message d'erreur ici est assez clair. Rappelez-vous que Python lit et exécute le code une ligne à la fois, donc si vous avez une variable indiquée après la fonction qui l'utilise, alors elle va lancer une erreur. Jonglez avec votre code pour placer vos variables avant qu'elles ne soient appelées et vous ne devriez plus avoir de problèmes avec cette erreur.

+0

merci j'ai compris. – PUser