Guest Broken_Mind Posted April 18, 2014 at 10:55 PM Posted April 18, 2014 at 10:55 PM 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 Quote
Guest Robin Posted April 19, 2014 at 10:42 AM Posted April 19, 2014 at 10:42 AM 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. Quote
Guest Broken_Mind Posted April 19, 2014 at 12:56 PM Posted April 19, 2014 at 12:56 PM Ich erkenne leider da kein überflüssiges Leerzeichen im Code. Quote
Guest Robin Posted April 19, 2014 at 01:00 PM Posted April 19, 2014 at 01:00 PM 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. Quote
Guest Broken_Mind Posted April 19, 2014 at 04:22 PM Posted April 19, 2014 at 04:22 PM Ich danke dir Genau das wars das ist mir garnicht aufgefallen Quote
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.