- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 8 von 8

Thema: pySerial "port is already open"

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.09.2010
    Ort
    Bad Nenndorf
    Beiträge
    159

    pySerial "port is already open"

    Anzeige

    Powerstation Test
    Moin Leute

    ich habe ein kleines Problem. Ich habe im Internet ein Interessantes Cnc Projekt entdeckt welches mit einem Arduino und einem Python Script realisiert wird. So ist es nun das der Arduino und der Pc über die Serielle Schnittelle Kommunizieren.
    Dieses geschieht über das pySerial Modul und hat auch gut funktioniert. Nun bekomme ich seit geraumer Zeit keine Verbindung mehr zu meinem Arduino hin. Ich habe nichts anders eingestellt ich habe alles so gelassen wie es war.
    Ich bekomme nun im Terminal die Rückmeldung "port is already open".

    Kann mir vielleicht einer Helfen?

    Danke Tom

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    Hi,
    Wie die Rückmeldung schon sagt, der Port ist schon geöffnet, einen geöffneten Port kann man nicht nochmal öffnen.
    Kenn pySerial nicht, hab aber in C# manchmal ähnliches Problem, deshalb teste ich vor Öffnen eines Ports, ob der schon
    offen ist und schliesse ihn: if(Serialport1.IsOpen) Serialport1.Close();, dann kann ich den Port problemlos öffnen.
    Vielleicht geht das auch in pySerial.
    mfg
    Achim

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.09.2010
    Ort
    Bad Nenndorf
    Beiträge
    159
    Ja das mag sein, ich werde das mal probieren. Was mich aber dennoch verwundert ist, dass dieser "Fehler" jetzt erst auftaucht und nicht schon seit dem ich das Programm benutze.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Ich bekomme nun im Terminal die Rückmeldung "port is already open".
    Passiert das auch nach einem Systemneustart? Hast Du einfach mal im Hardwaremanager überprüft, ob Du überhaupt den richtigen COM-Port öffnest?

  5. #5
    shedepe
    Gast
    Das Verhalten kann durch mehrere Ursachen entstehen.
    1. Du öffnest den falschen Comport der bereits durch ein anderes Programm belegt ist
    2. Du öffnest den richtigen Comport der aber bereits durch ein anderes Programm belegt ist
    3. Dein Programm schließt den Comport nicht (richtig). Dadurch kann es sein dass das Betriebssystem denkt dass dein Programm eben den Port noch geöffnet hat (kann gerade unter Linux passieren)

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von robots4-ever Beitrag anzeigen
    Ich bekomme nun im Terminal die Rückmeldung "port is already open".
    Wenn dieser Zustand eingetreten ist, könntest du mit "lsof" nachschauen, wer den File offen hat. Daraus könnte man dann schließen, was schief gegangen ist.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    13.09.2010
    Ort
    Bad Nenndorf
    Beiträge
    159
    Ok ich komm nicht mehr weiter ich bin mit meinem Wissen am ende.
    https://docs.google.com/file/d/0B1FD.../edit?hl=en_US
    hier ist der Link zu der Datei. Vielleicht kann ja einer von euch gelehrten sich das mal angucken.(Man brauch Python 2.7 und das PySerail Modul)
    Ich weis echt nicht mehr was ich noch versuchen kann.
    Trotzdem danke für eure Hilfe

  8. #8
    shedepe
    Gast
    Was wir versuchen dir zu erklären ist, dass es nicht unbedingt an deinem Programm liegen muss. Aber auch wie man es in seinem eigenen Programm abfangen kann.
    Hier noch mal die zusammenfassung der Ideen die du in deinem Programm umsetzen kannst: (Nachdem du überprüft hast ob du garantiert den richtigen Comport ausgewählt hast)
    1. Schließe den Comport beim beenden des Programms
    2. Bevor du den Comport öffnest kannst du versuchen ihn zu schließen.

    Ansonsten würde ich dir vorschlagen meine Liste mit Ursachen der Reihe nach auszuschließen. Wenn du uns schreibst welches Betriebssystem du verwendest können wir dir dabei auch noch weiterhelfen.

    Zitat Zitat von shedepe Beitrag anzeigen
    Das Verhalten kann durch mehrere Ursachen entstehen.
    1. Du öffnest den falschen Comport der bereits durch ein anderes Programm belegt ist
    2. Du öffnest den richtigen Comport der aber bereits durch ein anderes Programm belegt ist
    3. Dein Programm schließt den Comport nicht (richtig). Dadurch kann es sein dass das Betriebssystem denkt dass dein Programm eben den Port noch geöffnet hat (kann gerade unter Linux passieren)

Ähnliche Themen

  1. Sehr schönes Projekt -> "Open Servo"
    Von Andree-HB im Forum Motoren
    Antworten: 8
    Letzter Beitrag: 26.01.2016, 12:57
  2. Linux SerialStream.h friert ein bei Open("/dev/ttyUSB0")
    Von TomSawer im Forum Software, Algorithmen und KI
    Antworten: 5
    Letzter Beitrag: 19.04.2011, 10:42
  3. Probleme mit Bascom: "Devise not open" / "Div
    Von Sebbokalypse im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 0
    Letzter Beitrag: 13.11.2009, 14:59
  4. Mega32 mit "Piepser"... Port PA spinnt plötzlich..
    Von Bender_U22 im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 02.12.2007, 13:57
  5. Antworten: 5
    Letzter Beitrag: 05.03.2005, 19:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests