Hallo Tinkergemeinde.
Es geht um vollgendes. Ich würde gerne über die Callbacks die uid auslesen und in einer globalen variable ablegen lassen. Das auslesen an sich ist kein Problem aber irgendwie scheinen die Callbacks nicht rechtzeitig durchzulaufen. Vielleicht habt ihr eine Idee. Die Ausgabe habe ich einfach mal angehangen.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
HOST = "localhost"
PORT = 4223
UID_Barometer = None
UID_Humidity = None
UID_AmbientLight = None
from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_barometer import Barometer
def my_testcallback(uid, connected_uid, position, hardware_version, firmware_version,
device_identifier, enumeration_type):
if device_identifier == 221:
global UID_Barometer
UID_Barometer = uid
print('test: ' + UID_Barometer)
elif device_identifier == 27:
UID_Humidity = uid
print('test: ' + UID_Humidity)
elif device_identifier == 21:
UID_AmbientLight = uid
print('test: ' + UID_AmbientLight)
if __name__ == "__main__":
ipcon = IPConnection()
ipcon.connect(HOST, PORT)
ipcon.register_callback(IPConnection.CALLBACK_ENUMERATE, my_testcallback)
ipcon.enumerate()
print('test2: ' + str(UID_Barometer))
print('test2: ' + str(UID_AmbientLight))
print('test2: ' + str(UID_Humidity))
#b = Barometer(UID_Barometer, ipcon) # die uid`s brauch ich um die bricklets anzusprechen
#air_pressure = b.get_air_pressure()/1000.0
#print('Air Pressure: ' + str(air_pressure) + ' mbar')
#altitude = b.get_altitude()/100.0
#print('Altitude: ' + str(altitude) + ' m')
input('Press any key to exit\n')
ipcon.disconnect()
Vielen Dank schon mal im vorraus für die Hilfe.