Jump to content

TimeoutException ID -1


Recommended Posts

Hallo,

 

ich habe ein relativ komplexes System am Laufen bestehend aus DCBrick -> Master -> StepperBrick -> SilentStepperBlrick, dazu noch zwei PerformanceDC Bricklet, zwei Load Cell, ein IO16 und zwei RelaisBricklet.

Das funktioniert grundsätzlich sehr gut, heute jedoch wirft er mir ständig eine TimeoutException mit ID -1. Immer an unterschiedlichen Systemen, einmal an den Load Cells, dann am Stepper.

Was Wofür steht denn die ID -1?

 

VG

Michael

Link to comment
Share on other sites

Ich rate mal und sage du meinst diese Meldung:

Exception in thread "main" com.tinkerforge.TimeoutException: Did not receive response in time for function ID -1

Die -1 ist ein falsch dargestelltes Byte und soll 255 sein. Das ist ein Darstellungs-Bug in den Java Bindings. Wird behoben. auf Dauer zeigen wir da vermutlich einfach den Funktionsnamen und nicht die ID an.

255 ist die Funktions ID für die getIdentity Funktion. Die Bindings rufen beim ersten Aufruf den dein Programm macht intern getIdentity auf, um zu prüfen ob der Brick/Bricklet vom Typ her zur Bindings Klasse passt, die du instanziiert hast.

Das gibt dir da keine weitere Information, du läufst da einfach in einen Timeout rein, sprich die Kommunikation ist gestört, oder du versuchst Bricks/Brciklets anzusprechen die nicht angeschlossen sind.

Taucht der Stapel sauber in Brick Viewer auf?

Hast du vielleicht einfach den Stapel nicht ordentlich zusammengesteckt? Ist der Stapel nicht verschraubt und hat einen Stoß bekommen?

Link to comment
Share on other sites

Hi,

das erscheint plausibel, der Stack ist fest verschraubt und hat keinen stoß bekommen, es taucht auch alles sauber im Viewer auf.
Allerdings läuft das Programm auf einem Raspberry und wird mit dem Bootvorgang nach einem Delay gestartet. Vielleicht muss sich da manchmal der USB noch sortieren.

Wir haben jetzt allerdings auch festgestellt dass der Stepper Brick ohne Last sehr heiß wird und mittlerweile scheint der defekt zu sein, er gibt zwar an ein Signal zu liefern, der Motor tut allerdings keinen Mucks mehr. Kann es sein dass das mit rein spielt?

Die Software ist übrigens in Kotlin mit Java Bindings, die Fehlermeldung ist korrekt :-D

 

Link to comment
Share on other sites

Meine Fehlermeldung lautet ähnlich:

"Mikro-Schalter Did not receive response in time for function ID 1"

Ich arbeite mit VB.NET.

Helfen kann ich mir nur mit Strom aus und Strom ein bei den Bricklets.

Fehler tritt nicht ständig auf; aber oft!

 

Bricks und Bricklets sind fest verschraubt und hängen auf der Hutschiene!

 

Wo kann ich ansetzen?

Link to comment
Share on other sites

  • 1 month later...

Fehlermeldung

---------------ANFANG-----------

System.IndexOutOfRangeException
  HResult=0x80131508
  Message=Der Index war außerhalb des Arraybereichs.
  Source=Tinkerforge
  StackTrace:
   at Tinkerforge.IPConnection.HandleResponse(Byte[] packet)
   at Tinkerforge.IPConnection.ReceiveLoop(Int64 localSocketID)
   at Tinkerforge.IPConnection.<ConnectUnlocked>m__2()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

____________ENDE_____________________

Link to comment
Share on other sites

Der Fehler kommt daher, dass die Bindings eine beschädigte Antwort empfangen haben. Es steht noch auf der TODO Liste diesen Fehler besser zu behandeln. Das ist aber kein Bug in den Bindings, sondern die Antwort wurde vom Brick(let) entweder schon beschädigt losgeschickt, oder ist auf dem Weg beschädigt worden.

Wie ist dein Stack angeschlossen? USB, WLAN oder Ethernet? Ist ein RED Brick involviert?

Wie sehen die Fehlerzähler im Brick Viewer Health Monitor aus? Im besten Fall sind alle 0, oder ändern sich zumindest nicht. Falls diese durchgängig steigen dann ist deine Bricklet Kommunikation durch die Umgebung gestört. Die Kommunikation kann ein gewisses Level an Störung kompensieren, ab einem bestimmten Level greift das aber nicht mehr und beschädigte Antworten kommen durch.

Link to comment
Share on other sites

Frage ist jetzt was ist am Analog In Bricklet anders als mit den anderen Bricklets.

Hast du das abgesetzt vom Stapel an einem langen Bricklet Kabel?

Was misst du mit dem Analog In Bricklet?

Hast du vielleicht die Schrittmotorkabel parallel zum Analog In Bricklet Kabel verlegt? Die Vermutung ist, dass du dort elektromagnetische Störungen einfängst, die dann die Kommunikation mit dem Bricklet stören.

Beobachte mal im Betrieb mit dem Health Monitor die Fehlerzähler. Gibt es bestimmte Situation in denen diese steigen? Zum Beispiel, wenn die Schrittmotoren laufen?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...