Hilfe bei der Entwicklung einer pygame Anwendung

  • Hallo zusammen,

    ich habe mir als Projekt vorgenommen eine Steuerung für mein Aquarium zu entwickeln.
    Angezeigt werden sollen später verschiedene Temeraturwerte, PH Wert, Wasserdurchfluss, etc.
    Außerdem soll man Auswählen können wann der letzte Wasserwechsel gemacht wurde und wann die PH Sonde das letzte mal kalibriert wurde.

    Erstmal will ich aber den groben Aufbau der pygame Anwendung entwickeln.
    Hier hab ich jetzt die Ersten bedenken.
    Ich habe mal angefangen mit python und pygame halbwissen eine Anwendung zu schreiben.
    Ein Bestandteil ist ein Numpad um den KH Wert zu einzugeben.

    An dieser Stelle (geöffnetes Numpad) brechen die FPS zusammen, sodass eine kleine Verzögerung bei der Eingabe entsteht. Bisher ist die Verzögerung nur ein bruchteil einer Sekunde.. Habe aber sorgen, dass die Verzögerung mit wachsendem Code noch deutlich länger wird.

    Das ganze wurde getestet auf meinem Raspberry Pi 2 B.

    Vielleicht kann jemand mal meinen "wurstel Code" anschauen und mir evtl ein paar Tipps geben wo bzw wie Performanceoptiomierungen drin sind, ober ob ich mangels Performance es am besten gleich vergessen soll!?

    Ich bin für jeden Rat in jede Richtung dankbar!

    So und jetzt zum code:

    Achja.. ein paar wenige Bilder habe ich auskommentiert, die waren aber mehr oder weniger erstmal nur zum Testen für mich, spielen an der Stelle also eigentlich keine wichtige Rolle.

    Viele Grüße

    EDIT:
    Ganz vergessen! Das Numpad geht beim aktuellen Stand auf wenn man in den oberen 40 pixeln klickt - soll natürlich später einen Button bekommen, aber so erstmal zum testen-

  • Hallo,

    es gibt ja den schönen Satz: "Premature optimization is the root of all evil". Heißt: wer sich zu früh Gedanken über die Optimierung macht, macht sich unnötiger Weise Probleme.

    Das trifft wohl auch hier zu: du denkst, du könntest vielleicht mal ein Problem bekommen. Aber de facto hast du keins. Also gibt es auch keine Grund, irgendwie irgendwas zu optimieren.

    Ansonsten ist im allgemeinen das häufigen verwenden von `global`ein Zeichen dafür, dass mit dem Code was nicht stimmt. Normalerweise kommt man bei Python ohne aus.

    Hast du eigentlich schon die Applikationslogik zum Messen / Erfassen der Daten? Damit hätte ich angefangen. Nützt ja am Ende nichts, wenn du eine chice GUI hast, aber nicht an die Messwerte kommst, die du darstellen willst ;)

    Gruß, noisefloor

  • Danke erstmal für deine Antwort!


    [...] Heißt: wer sich zu früh Gedanken über die Optimierung macht, macht sich unnötiger Weise Probleme.

    [...] du denkst, du könntest vielleicht mal ein Problem bekommen. Aber de facto hast du keins. Also gibt es auch keine Grund, irgendwie irgendwas zu optimieren.


    Leider nicht ganz richtig..
    durch die Verzögerung bei der Eingabe im Numpad kann es zu falscheingaben kommen wenn man zu schnell tippt.
    So wird wenn man schnell tippt aus "123" mal kurz "223", "133" oder auch "13", weil beim Auswerten der Mausposition der Cursor schon ganz woanders steht.
    Die sorgen sind also nicht so ganz aus der Luft gegriffen, weil ich eigentlich nicht nach jedem klick 1 Sekunde warten möchte.


    Ansonsten ist im allgemeinen das häufigen verwenden von `global`ein Zeichen dafür, dass mit dem Code was nicht stimmt. Normalerweise kommt man bei Python ohne aus.


    das stimmt wohl, da bin ich aber auch schon dabei zu optimieren.. Kommt noch von den ersten gehversuchen.


    Hast du eigentlich schon die Applikationslogik zum Messen / Erfassen der Daten? Damit hätte ich angefangen. Nützt ja am Ende nichts, wenn du eine chice GUI hast, aber nicht an die Messwerte kommst, die du darstellen willst ;)


    Nö hab ich nicht. Das liegt aber ganz einfach daran, dass ich die ganzen Sensoren noch nicht habe. :)
    Die werden im laufe der nächsten Wochen bei mir Eintreffen.

    Viele Grüße

  • ich habe für mich jetzt beschlossen das ganze nicht als python sondern in php zu schreiben. Die php Seite soll dann auf dem Pi direkt nach den booten in vollbild aufgerufen werden.
    Dafür gibt es verschiedene Gründe.
    - Das Projekt soll sowieso auch aus der Ferne verfügbar sein. d.H. ich hatte sowieso schon vor eine php seite zu schreiben
    - in PHP habe ich bereits deutlich mehr Erfahrung als in python, daher für mich persönlich leichter zu entwickeln und debuggen
    - Nur eine statt 2 Baustellen (Pi und via Remote wird auf die selbe Seite zugegriffen)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!