Seite 1 von 1

Code Python3 PyQt5 "säubern" und erweitern gegen Honorar

Verfasst: Freitag 16. November 2018, 08:23
von medix
Liebe Gemeinde,

ich bin nun an meine Grenzen bzgl. des Codes gekommen und schaffe es zeitlich (berufstätiger Papa von 3 Kiddies ohne Mama) einfach nicht, mich weiter in die Materie einzuarbeiten, vor allem in Hinblick darauf, dass ich wohl nicht wirklich in Python zukünftig Programme erstellen werde.

Ich habe ein lauffähiges Programm mit ca 200 Zeilen, ist mit PyQt5. Das ganze läuft auf meinem Raspberry Pi 3b+ sehr gut und absturzfrei lokal. Netzwerk ist nicht erforderlich. Ich bin mir bewusst, dass der Code nicht optimal geschrieben ist. Folgende Aufgaben lägen an:

Den Code schlank und sauber machen
Eine Meldung, welche das System von Zeit zu Zeit bei einem Ereignis generiert, soll eine bestimmte Aktion (Meldung) im Programm anzeigen. Das Ereignis betrifft den Zustand des Druckers (Papier alle, Farbe alle). Ausdrucken kann ich super aus dem Programm heraus sowohl über Subprocess lp als auch über Cups. Über Flake bekomme ich auch per JSON Info auf Port 5000, leider ist das cups-http-notifier wohl nicht in Python3 geschrieben, jedenfalls komme ich da nicht weiter.

Ich vermute, dass ein Programmierer für die Sache 1 bis 2 Stunden braucht. Als Dank Stelle ich mir 100 Euro vor.

Lieben Dank
Andy

Re: Code Python3 PyQt5 "säubern" und erweitern gegen Honorar

Verfasst: Freitag 16. November 2018, 10:02
von medix
Ich habe ein lauffähiges Programm mit ca 200 Zeilen, ist ..
Es sind ca. 400 Zeilen

Re: Code Python3 PyQt5 "säubern" und erweitern gegen Honorar

Verfasst: Montag 19. November 2018, 13:22
von medix
Nachdem ich mich kurz in Python eingelesen habe, löste ich das Problem nun auf folgende Weise:

Code: Alles auswählen

def druck_test(self):
        self.screen = 6
        if(self.isLive):
                self.camera.stop_preview()
                self.isLive = False
        f_read = open('/var/log/cups/error_log', 'r')
        last_line = f_read.readlines()[-1]
        f_read.close()
        meldung = (last_line.split(" ", 5)[5])
        papier_alle = "No paper tray loaded" in meldung
        if (papier_alle is True):
           //rumjammern, dass Papier fehlt
          // Wenn Papier gewechselt ->
          // teste irgendwie, ob alles ok. Logfile schreibt ja nicht in error_log "Alles schick"
        else:
            self.ui.druck()    



def druck(self):
        self.screen = 5
        ....

        os.system('/usr/sbin/cupsenable MeinDrucker')
      
        FILE = self.saved+self.lastPhoto
        conn = cups.Connection()
        conn.printFile(PRINTER, FILE, title='Foto', options={})
Das ist noch nicht fertig, aber es funzt soweit erst mal.