Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik Programmierung mit Eclipse und Remote Debug auf SH

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Interessant. Läuft das über eine ssh instanz oder öffnet der debugger eine verbindung? Das sollte sich mit eclipse dann eventuell auch umsetzen lassen.

    Werde ich mir dann mal anschauen.

    Gesendet von meinem GT-I9195 mit Tapatalk

    Kommentar


      #17
      Zitat von pfischi Beitrag anzeigen
      Am WE werd ich mal versuchen, das HowTo fertig zu machen. Neben Frau und Kind nimmt much auch noch das Sonos-Plugin / Server in Beschlag. Aber ich denke, HowTos fuer die Entwicklungsumgebung haben fast den Vorrang
      Hallo pfischi,

      hast Du hier schon was unternommen? Ich würde mir auch gerne die community version von pycharm installieren und mich ein wenig an smarthome.py Programmierung versuchen.

      Greetinx,
      Udo

      Kommentar


        #18
        Ich habe schon ein paar Screenies erstellt. Sobald das Sonos-Plugin rund läuft, werd ich es zusammenschreiben. Die Woche ist fest eingeplant.

        Gesendet von meinem GT-N7000 mit Tapatalk
        Sonos

        Kommentar


          #19
          Funktioniert, danke!

          Kommentar


            #20
            Zitat von firefox Beitrag anzeigen
            kein thema, bevor ich das howto dort einstelle würde ich aber noch gerne ein wenig feedback abwarten. Klappt das bei euch wie beschrieben?

            Derweil zeichnet sich dann doch ein kleines Problem ab.

            Wenn eine Logik ausgeführt wird, die den pydevd importiert, wird mein smarthome in der debug console mit "Ctrl+C" nicht mehr sauber gekillt. Da hilft dann nur noch ein explizites "smarthome --stop" in einer zweiten ssh Session.
            Hallo firefox,

            nachdem ich mir das mit eclipse auch nach Deiner Anleitung installiert habe, komme ich genau auch an diesem Punkt vorbei. Gibt es dazu schon eine Idee ?

            Michel

            Edit: Funktioniert bei mir jetzt wunderbar. Wichtig: smarthome im interaktiven mode starten smarthome.py -i, dann geht auch das Abbrechen. und ganz wichtig: nicht vergessen die Pfade anzugleichen (eclipse auf Rechner, smarthome auf RASPI), damit der Debugger die source Files auflösen kann. Klasse Anleitung !

            Kommentar


              #21
              Hi Orion,

              komm erst jetzt wieder dazu mich mit dem Thema zu beschäftigen.

              Zitat von Orion Beitrag anzeigen
              und ganz wichtig: nicht vergessen die Pfade anzugleichen (eclipse auf Rechner, smarthome auf RASPI), damit der Debugger die source Files auflösen kann. Klasse Anleitung !
              Hast du gegenüber meiner Anleitung an Pfadvariablen was geändert? Oder wie ist das gemeint?
              Hast du auch die Variante mit dem symbolischen Link und dem Eclipse Workspace auf dem PI versucht?

              EDIT:
              Ok, ich denke jetzt weiß ich was du meinst. Werde den Punkt mit der PATHS_FROM_ECLIPSE_TO_PYTHON Variable noch ergänzen.

              Danke und Gruß
              Thomas

              Kommentar


                #22
                Hallo Thomas,

                ja , das ist das eine. Wichtig aber auch, dass Du ja die pydevd Files vom Eclipse Workspace auch auf den Raspi an die richtige Stelle kopieren mußt. Aufpassen bei einem Update auf deinem Entwicklungsrechner mit Eclipse, weil dort natürlich u.U. auch die pydevd Files einen Update erfahren, die mußt Du dann wieder auf den Raspi kopieren usw.

                Michel

                Kommentar


                  #23
                  Hallo,

                  bei mir klappt das debuggen zwar prinzipiell, nicht aber mit Breakpoints.
                  Ich habe /usr/local/smarthome als Z:\ gemountet.

                  Setze ich bei laufendem Debugger einen Breakpoint in Eclipse, so sehe ich in der linux-Konsole (sh.py log):

                  Code:
                  pydev  debugger: warning: trying to add breakpoint to file that does not  exist: /usr/local/smarthome/Z:/plugins/lohberger/__init__.py (will have  no effect)
                  Das ist komisch, denn ich habe das Mapping der Pfade ja angegeben:
                  Code:
                  /usr/local/lib/python3.4/dist-packages/pydevd_file_utils.py
                  PATHS_FROM_ECLIPSE_TO_PYTHON = [(r'Z:', r'/usr/local/smarthome')]#,("Z:\Python3.4", "/usr/lib/python3.4")]
                  Wie sieht das bei euch aus?

                  Gruß,
                  Hendrik

                  Kommentar


                    #24
                    Hallo Hendrik,

                    was mit auffällt: das steht python 3.4 drin, smarthome läuft auf 3.2 ???
                    Path im Beispiel mit
                    Code:
                    PATHS_FROM_ECLIPSE_TO_PYTHON = [(r'c:\my_project\src', r'/user/projects/my_project/src')]
                    gesetzt, das hast Du deutlich mehr drin. Bei mir habe ich
                    Code:
                    PATHS_FROM_ECLIPSE_TO_PYTHON = [(r'/Users/mw/git/smarthome', r'/usr/smarthome'),]
                    funktioniert gut, allerdings habe ich eclipse auf einem MAC.

                    Michel

                    Kommentar


                      #25
                      Hallo Michel,

                      vielen Dank für deine Antwort.
                      Bei mir läuft sh.py unter python3.4. 3.2 habe ich gar nicht auf dem System.

                      Ich habe auch nicht wirklich mehr als du drin, denn der Teil
                      Code:
                      #,("Z:\Python3.4", "/usr/lib/python3.4")]
                      Ist ja auskommentiert (sorry, hätte ich löschen sollen).

                      Du hast mit deinem MAC natürlich den Vorteil, dass du weder ein Laufwerksnamen, noch einen Backslash im Pfad hast. Daher kann ich von dir leider nicht direkt lernen :-)

                      Bei wem funktioniert's unter Windows?

                      Gruß,
                      Hendrik

                      Kommentar


                        #26
                        ...noch eine Idee (nur auf dem Papier): Probier mal z:\ explizit, damit klar ist, dass im Verzeichnis ganz oben...

                        Michel

                        Kommentar


                          #27
                          Sorry, ich verstehe nicht, was du meinst..

                          Kommentar


                            #28
                            Hallo Hendrik,

                            sorry. Du hattest nur z: im Pfad angegeben.U.U. landest Du bei Windows nicht im obersten Verzeichnis. Wenn Du z:\ wie auch bei Deinen auskommentierten Einträgen angibst, wäre das sichergestellt !

                            Michel

                            Kommentar


                              #29
                              ja, das muss folgendermaßen aussehen:

                              Code:
                              PATHS_FROM_ECLIPSE_TO_PYTHON = [(r'Z:\', r'/usr/smarthome/logics')]

                              Kommentar


                                #30
                                die sache mit dem unsauberen kill in der debug console liegt definitiv am devd.

                                bevor die smarthome instanz gekillt wird, muss sicher gestellt sein, dass der debuger das script vollständig durchlaufen hat.
                                im zweifel solange auf den resume button klicken bis eclipse keine variablen mehr anzeigt und dann die smarthome instanz mit strg+c killen. das funktioniert sogar dann noch wenn man smarthome bereits weggeschossen hat.

                                Kommentar

                                Lädt...
                                X