Gast Broken_Mind Geschrieben April 18, 2014 at 22:55 Geschrieben April 18, 2014 at 22:55 Hallo, ich habe mich mal an Python versucht um auf meinem Raspberry Pi ein GUI zu erstellen. Beim starten des Scripts bekomme ich aber die folgende Fehlermeldung: File "GUI.py", line 24 ipcon = IPConnection() # Create IP connection ^ IndentationError: expected an indented block HOST = "127.0.0.1" PORT = 4223 UID = "jNw" from Tkinter import * from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_remote_switch import RemoteSwitch import os master = Tk() master.title("GUI") w = Canvas(master, width=300, height=200) w.pack() def shutdown(): os.system("sudo shutdown -h now") def reboot(): os.system("sudo shutdown -r now") def light_on(): if __name__ == "__main__": ipcon = IPConnection() # Create IP connection rs = RemoteSwitch(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected # Switch socket with house code 17 and receiver code 1 on. # House code 17 is 10001 in binary (least-significant bit first) # and means that the DIP switches 1 and 5 are on and 2-4 are off. # Receiver code 1 is 10000 in binary (least-significant bit first) # and means that the DIP switch A is on and B-E are off. rs.switch_socket_b(1, 1, RemoteSwitch.SWITCH_TO_ON) def light_off(): if __name__ == "__main__": ipcon = IPConnection() # Create IP connection rs = RemoteSwitch(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected # Switch socket with house code 17 and receiver code 1 on. # House code 17 is 10001 in binary (least-significant bit first) # and means that the DIP switches 1 and 5 are on and 2-4 are off. # Receiver code 1 is 10000 in binary (least-significant bit first) # and means that the DIP switch A is on and B-E are off. rs.switch_socket_b(1, 1, RemoteSwitch.SWITCH_TO_OFF) b=Button(master, text= "Shutdown", command=shutdown) b.pack() b=Button(master, text= "Reboot", command=reboot) b.pack() b=Button(master, text= "Licht an", command=light_on) b.pack() b=Button(master, text= "Licht aus", command=light_off) b.pack() mainloop() Grüße Zitieren
Gast Robin Geschrieben April 19, 2014 at 10:42 Geschrieben April 19, 2014 at 10:42 Da stehen wahrscheinlich Leerzeichen vor, die da nicht hingehören. Versuche die mal weg zu machen. Leerzeichen vor Befehlen dürfen und müssen nur bei schleifen, if und try Anweisungen eingesetzt werden. Dort sind sie allerdings auch erforderlich damit python erkennt welche Befehle zu der entsprechenden Abfrage gehören. Zitieren
Gast Broken_Mind Geschrieben April 19, 2014 at 12:56 Geschrieben April 19, 2014 at 12:56 Ich erkenne leider da kein überflüssiges Leerzeichen im Code. Zitieren
Gast Robin Geschrieben April 19, 2014 at 13:00 Geschrieben April 19, 2014 at 13:00 Oh du hast recht. Mein Fehler . Du hast zu wenig! Du hast ja die Abfrage if __name__ usw. Der Code darunter hat die gleiche Einrückung. Der muss weiter eingerückt werden, wenn er dazu gehören soll. Zitieren
Gast Broken_Mind Geschrieben April 19, 2014 at 16:22 Geschrieben April 19, 2014 at 16:22 Ich danke dir Genau das wars das ist mir garnicht aufgefallen Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.