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()
|