Verbindung über Winsock- Reaktionszeit zu lang

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich habe zwei Raspberrys miteinander über Winsock verbunden.

    Einer überwacht eine Lichtschranke und wenn diese unterbrochenwird soll der

    Andere ein Photo machen und mir es über Telegram schicken.

    Das Problem ist, der an der Lichtschranke reagiert zwar schnell und schickt

    mir eine Nachricht fast ohne Verzögerung, der Andere schickt das Bild aber mit bis

    zu 5 Sekunden Zeitverzögerung.

    Auf dem ersten, der an der Lichtschranke läuft das Programm:

    Und auf dem Anderen dieses:

    Was läßt sich denn da verbessern und was ist den da eine realistische Reaktionszeit?

    Es wäre sicher besser gewesen nur Einen einzusetzen, aber auf Grund der baulichen Gegebenheiten

    wäre das schwierig und außerdem will ich ja auch noch was lernen ;)

    Gruß Reinhard

  • Hallo Bootsmann,

    danke für die Antwort!

    Abgesehen davon, dass dein Programm inkl. Stil nicht wirklich an Schönheit glänzt, frag ich mich, warum du ein ``time.sleep(5)`` einbaust und zugleich dich frägst, warum dein Programm 5 Sekunden und mehr braucht...

    Ich bin leider absoluter Anfänger, das nächste Programm wird besser.

    Time.sleep hat aber nicht das geringste mit dem Problem zu tun, ich habe es eingefügt

    damit nicht ständig Nachrichten kommen wenn einer in der Lichtschranke steht und die

    geradeso unterbricht.

    Die Nachricht an den anderen pi wird ja sofort abgesetzt und es geht um die Reaktionszeit danach.

  • Hallo,

    bist du sicher, dass die 5 Sekunden nicht einfach die "noramle" Latentz sind? Du hast Dateisystem I/O (Bild speichern und neu lesen) und Netzwerk I/O (Bild versenden). Plus dein Smartphone oder wo auch immer der Telegram Client drauf läuft muss die Daten empfangen.

    Da finde ich 5 Sekunden jetzt nicht übermäßig viel, zumal der Rapsi keine I/O Rakete ist.

    Das unschöne `sleep(5)` kannst du eliminieren, in dem du nur auf eine Flankenwechsel am GPIO-Pin reagierst, nicht auf "high" oder "low".

    Gruß, noisefloor

  • Hallo noisefloor,

    Da finde ich 5 Sekunden jetzt nicht übermäßig viel, zumal der Rapsi keine I/O Rakete ist.

    Wahrscheinlich hast du recht, ich muß mir dann was Anderes einfallen lassen.


    Das unschöne `sleep(5)` kannst du eliminieren, in dem du nur auf eine Flankenwechsel am GPIO-Pin reagierst, nicht auf "high" oder "low".

    Mir geht es darum, das die Lichtschranke generelle eine Weile gesperrt ist, wenn zB. eine Gruppe

    durchläuft. Die 5 Sekunden sind ein willkürlicher Wert, er wäre in der Praxis eher höher, so

    30 Sekunden vielleicht, wie könnte man das ohne sleep lösen?

    Gruß Reinhard

  • Könnte es ein, daß bootsmann sich auf das sleep(5) im 2. Listing bezogen hat? Das steht doch m.E. zwischen conn.recv und bot.sendMessage und führt damit zwangsläufig zur beobachteten Verzögerung. Oder übersehe ich da was?

    Einmal editiert, zuletzt von Manul (15. März 2018 um 15:52)

  • Könnte es ein, daß bootsmann sich auf das sleep(5) im 2. Listing bezogen hat? Das steht doch m.E. zwischen conn.recv und bot.sendMessage und führt damit zwangsläfug zur beobachteten Verzögerung. Oder übersehe ich da was?

    Ich sehe es gerade, das gehört da absolut nicht hin. Ich hatte zwischendurch alles Mögliche ausprobiert, kann ich mir nicht erklären.

    Muß noch arbeitsmäßig was erledigen und dann kümmere ich mich darum.

    Danke!

  • Hallo,

    es lag wirklich einfach an sleep(5) was da völlig sinnfrei drin was und die Aufname verzögert hat.

    Abgesehen davon, dass dein Programm inkl. Stil nicht wirklich an Schönheit glänzt, frag ich mich, warum du ein ``time.sleep(5)`` einbaust und zugleich dich frägst, warum dein Programm 5 Sekunden und mehr braucht...

    Genau, bootsmann, ich habe es nur nicht begriffen und dachte du meinst den Befehl im anderen Modul.

    Das kommt davon, wenn man sich Programmteile zusammenkopiert und nicht richtig versteht bzw. nicht richtig anschaut.

    Auf jeden Fall funktioniert es und ich gelobe Besserung.

    Schönes Forum hier, bisher wurde mir bei jedem Problem geholfen, vielen Dank!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!