Author Topic: Verbindung zu GPS Bricklet stürzt immer ab  (Read 1337 times)

akafpv

  • Newbie
  • *
  • Posts: 6
    • View Profile
Verbindung zu GPS Bricklet stürzt immer ab
« on: January 07, 2016, 20:41:47 »
Ich habe eine einfache Java Applikation geschrieben, mit der ich die Höhe aus meinem GPS Bricklet auslesen möchte. Dies funktioniert soweit auch sehr gut, jedoch immer nach der gleichen Anzahl Messungen (231 Messungen), unterbricht die Verbindung und ich erhalte folgende Exception:

Code: [Select]
com.tinkerforge.TimeoutException: Did not receive response in time for function ID 3
Die Bricks sind per USB Kabel an meinem Computer angeschlossen, alle anderen Bricklets funktionieren einwandfrei mit der Software. Habe auch schon den Reset versucht auf dem GPS Bricklet sowie dem Masterbrick.

Woran könnte das liegen? Brauche sehr dringend Hilfe!!

reinweb

  • Full Member
  • ***
  • Posts: 210
  • irgendwas ist immer...
    • View Profile
Re: Verbindung zu GPS Bricklet stürzt immer ab
« Reply #1 on: January 26, 2016, 11:44:03 »
ich habe dasselbe Phänomen in unterschiedlichsten Kombinationen
(Anbindung USB, PoE, WLAN, unterschiedliche Bricklets, Bricklet am Master oder an anderen Bricks...)
Verwendet werden die PHP Bindings. Die Erhöhung des
IPConnection::setTimeout(float $seconds)
hat offenbar keinen Effekt.
Es ist echt ärgerlich, weil es relativ häufig auftritt. Oft bringt echt nur ein PowerOff des Stacks etwas.

reinweb

  • Full Member
  • ***
  • Posts: 210
  • irgendwas ist immer...
    • View Profile
Re: Verbindung zu GPS Bricklet stürzt immer ab
« Reply #2 on: January 29, 2016, 10:05:19 »
Vielleicht habe ich ein mögliche Ursache gefunden.
In den PHP Bindings von IpConnection
Device->sendrequest steht:
Code: [Select]
if ($this->receivedResponse == NULL) {
                throw new TimeoutException("Did not receive response in time for function ID $functionID");
            }
ich habe den Vergleichsoperator auf
Code: [Select]
=== ausgebessert - weil sonst auch ein Ergebnis von "0" als "NULL" interpretiert wird (und vor allem das Ende des Timeouts nicht abgewartet wird bis zur obige Fehlermeldung!)
Vielleicht kann man einer der Experten meine Änderung auf Sinnhaftigkeit prüfen. Danke :-)
Seither läuft es weeesentlich stabiler
« Last Edit: January 29, 2016, 10:07:23 by reinweb »

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.467
    • View Profile
Re: Verbindung zu GPS Bricklet stürzt immer ab
« Reply #3 on: February 04, 2016, 18:16:37 »
reinweb, receivedResponse ist entweder NULL oder ein Array, es ist niemals 0, die Änderung zu === ist unnötig schadet aber auch nicht.

Das ist aber PHP spezifisch und hat mit dem eigentlichen Problem dieses Threads nichts zu tun.

reinweb

  • Full Member
  • ***
  • Posts: 210
  • irgendwas ist immer...
    • View Profile
Re: Verbindung zu GPS Bricklet stürzt immer ab
« Reply #4 on: February 06, 2016, 23:03:53 »
ja, ist PHP spezifisch - das stimmt.
Tatsache ist, dass der Fehler "did not response in time" geworfen wird, bevor der Timeout abgelaufen ist. Darum glaube ich nach wie vor, dass ein Resultat zurückkommt, dieses aber falsch interpretiert wird (eventuell weil leeres Array)
Code: [Select]
        $o = [];
        if ($o == null) { // Ergebnis ist TRUE };
        if (empty($o)) { // Ergebnis ist TRUE };

photron

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 2.467
    • View Profile
Re: Verbindung zu GPS Bricklet stürzt immer ab
« Reply #5 on: February 08, 2016, 10:41:47 »
Kann ich nicht nachvollziehen. Ich nehme z.B. das Accelerometer Simple Example und führe es aus mit einer unbekannten UID, um einen Timeout beim Aufruf des Getters zu provozieren. Der Timeout passiert nach 2,5 Sekunden, genau wie erwartet.

Wie sieht dein PHP Script aus, bei dem der Timeout zu früh ausgelöst wird?

Im Code wird receivedResponse entweder auf NULL oder auf ein Array mit 2 Elementen gesetzt, niemals ein leeres Array.

reinweb

  • Full Member
  • ***
  • Posts: 210
  • irgendwas ist immer...
    • View Profile
Re: Verbindung zu GPS Bricklet stürzt immer ab
« Reply #6 on: February 08, 2016, 13:46:02 »
hallo, leider kann man es eben nicht nachvollziehen.
Beispiel:: Wenn ich die Funktion
Code: [Select]
BrickletSegmentDisplay4x7::getSegments()jede Sekunde aufrufe (z.b. um den Doppelpunkt im Sekundentakt zu togglen), dann geht das oft viele Stunden ohne Probleme, aber irgendwann kommt dieser lästige Fehler "did not respond in time" (aber nicht erst nach dem Timeout).
Ich werde mal einen Versuchsaufbau machen und maximales Debugging einbauen, dann kann ich genaue Telemetriedaten liefern...