beim Programmieren GS verhindern und aufgehängtes Plugin beenden

  • Hallo
    Ich habe da mal 2 Fragen zu diesem Thema.


    Beim Programmieren eines Plugins kommt es ja doch öfter mal zu einem GS.
    Ich habe daher den Code mittlerweile schon mit try und except ausgestattet, um solche GS zu verhindern, was jedoch nicht immer in jedem Fall funktioniert.


    1. Welche Möglichkeiten gibt es noch, den Code abzusichern, um beim Testen solche nervigen GS zu verhindern?
    (eine Fehlermeldung im Telnet würde mir da schon reichen)


    Ein weiteres nerviges Problem ist das Aufhängen eines Screens bei Fehlern im Screen bzw. Code.
    Bisher musste ich dann immer über Telnet einen Enigma-Neustart anschieben.


    2. Gibt es dabei noch andere Möglichkeiten den Screen bzw. das Plugin zu beenden, ohne Enigma neu starten zu müssen?
    (vielleicht irgendein Spezialbefehl für Telnet, um gezielt das Plugin zu killen - so ähnlich wie im Windows-Taskmanager :face_with_tongue: )


    Danke schon mal.


    Wüsche allen ein frohes Osterfest :winking_face:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

    • Offizieller Beitrag

    Hmm aber es crasht doch nicht ohne Grund.


    Wenn es keinen Crash geben würde, würdest du deine Fehler doch gar nicht finden :winking_face:


    Also grosse try except blöcke sind keine gute Idee... dadurch verschleppst du Fehler nur weiter nach hinten.. und dann crasht es ggf. wo anders.. und du verstehst gar nicht nicht mehr wieso.


    cu

  • Da hast du natürlich vollkommen recht. Aber das Programmieren macht spätestens nach 10 GS keinen Spaß mehr.


    Da würde ich mir eine Fehlerausgabe im Live-Log im Telnet wünschen.
    Mit try ecxept klappt das ja zum Teil.


    Also gibts zu meinem beiden Fragen keine Lösung?


    Weil Programmierfreundlich ist das ganze nicht gerade :face_with_tongue: (nicht böse gemeint - nur meine naive Meinung)

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Keine Ahnung. Da stecke ich nicht tief genug im System drin.


    Meine Vorstellung wäre eben, dass Enigma das intern abfängt, das Plugin intern killt und einen Fehler fürs log schreibt :smiling_face:


    Aber wahrscheinlich müsste man das komplette enigma umprogrammieren :face_with_tongue:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Das ist doch nur anfänglich so. Später weisst du wie es geht und es gibt weniger Crashes

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Ich leide bei jedem GS mit der Box mit und denke dann immer, dass ihr das in Bezug auf die Lebensdauer auch nicht gut tut :face_with_tongue:


    Besonders ärgerlich sind GS bei Fehlern im Skin.
    Die fehlerhaften Objekte könnte Enigma doch einfach ignorieren, Fehler ins Log und fertig.
    Das ich da was falsch gemacht habe, sehe ich ja im Screen, wenn das Objekt fehlt oder es anders aussieht als ich dachte.


    Wollte heute im Menu-Skin einem '<widget name="pixmap"...' (für die Menü-Icons) die Eigenschaft valign="bottom" verpassen, weil
    ich die Bilder nach unten ausrichten wollte, weil ich denke, dass es wohl zentriert dargestellt wird.
    (sieht komisch aus beim Bewegen durch das Menü, wenn es unterschiedlich hohe Grafiken gibt - svg's und png's)


    Was dann passierte, brauch ich ja bestimmt nicht weiter beschreiben. :smiling_face:


    Nebenbei, gäbe es für das Ausrichten (bottom) der Menü-Ions (im Menü-Screen) eine Lösung für den Skin?

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Es gibt übrigens bei twisted crashes, die man nur im log sieht. Aus erfahrung kann ich dir sagen, dass da manchmal viel zeit vergeht, wenn man die console nicht grad mitlaufen hat, bis der fehler gefunden ist.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Alles was ich bei skins mache, ist rudimentär. Das sollen die machen, die davon ne Ahnung haben. daher befasse ich mich auch kaum mit valign

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Ich verstehe überhaupt nicht, warum ihr so auf den GS abfahrt.


    In diesem Modus würde mir eine Fehlerausgabe in der Console völlig reichen, welche ich dabei natürlich immer mitlaufen lasse.
    (könnte ja eine für das eigene Plugin reduzierte Ausgabe sein, um nicht zu viele Ausgaben zu haben - aber eben nur in diesem Spezialmodus)


    Im Normalmodus würde dann ja wieder beim kleinsten Fehler ein GS kommen.
    Mich persönlich stört das ständige Neustarten bei der Pluginerstellung. Da bin ich dann sehr schnell gefrustet :smiling_face:


    Liegt aber wahrscheinlich auch daran, dass ich noch Anfänger bin und wie @dre schon feststellte einfach noch zu viele Fehler mache :face_with_tongue:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Es gab mal ein Stück Code, wo die pyo bei jedem Start des Plugins neu generiert wird. Aber die 900 bootet so schnell, da lohnt sich das schon wieder nicht mehr.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Das mit der reload() habe ich ja schon eingebaut, so spart man sich schon mal den Neustart nach jeder kleinen Code-Änderung.


    Das ist auf jeden Fall eine hilfreiche Unterstützung beim Programmieren.


    Die 7080 geht auch noch von der Startzeit, aber nervig ist es trotzdem :face_with_tongue:
    (die 7020HD war da gefühlt noch deutlich langsamer)

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Du bist einfach verwöhnt :face_with_tongue:


    Früher (DM7000, DM7020) musstest du zuerst alles auf dem Rechner progammieren, dann kompilieren und auf die Box rüberschieben. Meistens hab ich das zuerst als Plugin gebaut, damit ich nicht jedes Mal die Box neu flashen musste. Mit den e2-Boxen sind wir da schon verwöhnt. Aber auch da hat sich seit der 7025 einiges getan. Ich fand schon die 820 toll als Dev-Box. Jetzt ist es halt die 900.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Das stimmt auf jeden Fall.


    Aber mal ehrlich, würdest du das als Entwickler nicht auch toll finden, wenn E2 dir beim Programmieren mit einem aktivierbaren Specialmode die Fehler ohne GS in der Console ausgibt und das Plugin intern killt?


    Ich bin halt ein Träumer :winking_face:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • :winking_face: ich mach das jetzt schon ein paar Jahre und von daher kenn ich es nicht anders.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Was auch nervt ist, wenn beim Öffnen des Screens am Bildschirm nichts passiert und beim Tastendruck dieses Symbol für unzulässige Taste erscheint.


    Da wäre es doch super, wenn man da im Telnet eingeben könnte: "enigma kill pluginname" :smiling_face:


    Ich träume immer noch :face_with_tongue:

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • das läuft halt alles unter dem e2-prozess. Wichtig ist halt immer gleich mal eine Taste zu definieren, die self.close() aufruft

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource