Python Tinkerforge Varibale aus function wird nicht wieder erkannt

OP #6616834
Lesenswert?

Hallo ich bin neu hier und habe die Suche in Google und auf diesem Forum 
schon umpfänglich genutzt. Vielleicht habe ich aber auch nach 2 Tagen 
immer noch nicht die richtigen Fragaen gestellt.

Mein Problem:

Ich habe in Python ein Programm geschriebn das Werte Voltwerte einlesen 
soll diese in Byte umwandeln und dann über einen Can verschicken soll.
Allerdings erkennt mein Proframm dies Variable später nicht mehr und 
gibt über dei Spyder IDE einen Fehler: " Undefined Name" aus ich habe es 
schon mit global versucht, wovor jedoch in vielen Foren abgeraten wurde. 
Hat leider nicht funktioniert.

in Zeile 25 erschient der Fehler. In der Funktion wird der Int in zwei 
Bytes aufgeteilt und dann über dei can.write_frame verschickt der 
Empfänger kann dann die Daten wieder decodieren. Wenn ich nicht dei 
"CALLBACK" Variante verwende funktioniert es. Aber ich möchte die 
Callbackvariante verwennden um die Signale besser Takten zu können.

Danke schon mal für jegliche Hilfe
1
def cb_voltage1(voltage):
2

3
    T10 = voltage[0].to_bytes(2, byteorder='little', signed=True)
4
    T11 = voltage[1].to_bytes(2, byteorder='little', signed=True)
5

6
if __name__ == "__main__":
7
 
8
    ipcon = IPConnection() # Create IP connection
9
    idai1 = BrickletIndustrialDualAnalogInV2(UID_idai1, ipcon)
10
    can = BrickletCANV2(UID_can, ipcon) # Create device object
11
    
12
    ipcon.connect(HOST, PORT) # Connect to brickd
13
        # Don't use device before ipcon is connected
14

15
        # Register voltage callback to function cb_voltage
16
    idai1.register_callback(idai1.CALLBACK_ALL_VOLTAGES, cb_voltage1)
17
      
18
        # Set period for voltage (channel 0) callback to 1s (1000ms) without a threshold
19
    idai1.set_all_voltages_callback_configuration(cbinterval, False)
20
    
21
     # Configure transceiver for loopback mode
22
    can.set_transceiver_configuration(250000, 625, can.TRANSCEIVER_MODE_NORMAL)    
23
        
24
    #Aufteilen der Bits da nur 8Bits gesendent werden können
25
    can.write_frame(can.FRAME_TYPE_STANDARD_DATA, 0, [ T10[0], T10[1]])
26
        
27
    input("Press key to exit\n") # Use raw_input() in Python 2
28
    ipcon.disconnect()

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren