Jump to content

Recommended Posts

Posted (edited)

Guten Tag,

ich bin gerade mit Tinkerforge IP Protokoll beschäftigt und da bin ich über die Sequence number gestolpert und habe hierzu eine Frage. In der Doku steht

Quote

The sequence number is incremented with every packet send. The answer from a Brick/Bricklet has the same sequence number. Since the Bricks/Bricklets currently guarantee that packets are answered in the correct order, this is not strictly needed. However, we can't rule out the possibility that there will be a Brick in the future that has a processor that is capable of real multitasking.

 außerdem gibt es zu dem Thema noch den Post von photron hier https://www.tinkerunity.org/topic/2800-sequence-number/?do=findComment&comment=18570.

So viel zur Ausgangslage. Nun zu meiner Sache: Wie photron ja schon geschrieben hat, antwortet der Brick immer mir der korrekten Sequence number egal in welcher Reihenfolge ich damit ankomme. So weit so gut, denn dann ist das weniger eine Sequence number, als mehr eine Jobnummer. Angenommen es gäbe irgendwann einen Brick oder eine Firmware, die fähig wäre Jobs asynchron abzuarbeiten (wäre ja jetzt schon denkbar bei der aktuellen Hardware), dann könnte es ja sein, dass der eine oder andere Job etwas länger braucht und dann eben Zahlen belegt sind und ich theoretisch blocken müsste bis der lahmste call irgendwann durch ist, weil ich die Sequence number nicht überspringen darf.

Mir geht es nun darum, wie das vermutlich von eurer Seite aus in (ferner) Zukunft gehandhabt wird, denn ich möchte meinen eigenen Code nicht unnötig kompliziert schreiben müssen (blockend). Ein pool aus 14 Zahlen wäre mir hier lieber.

Ich kann mir aktuell keinen triftigen Grund überlegen, warum die Reihenfolge eine Rolle spielen sollte. Ich denke auf Paketebene braucht man die Pakete nicht zu sortieren. Auf Datenebene kann man das ja immer noch machen. Aber es gibt vermutlich keinen Grund, warum man Pakete zu einem "Superpaket" zusammensetzen wollte (zumindest aus meiner Sicht).

Ich würde mich über eine kleine Rückmeldung freuen.

Edited by maat
Posted

Die Sequenznummer kannst du in der Tat eher als Jobnummer betrachten. Die ist nur dafür da, ansonsten identisch aussehende Anfragen unterscheiden zu können. Den Bricklets ist egal, ob du die Reihenfolge der Sequenznummern einhältst oder nicht.

Edit:

Quote

Ein pool aus 14 Zahlen wäre mir hier lieber.

15 Zahlen, nur die 0 ist für Callbacks reserviert.

Posted

Vielen Dank für die schnelle Rückmeldung. Das klingt super! Finde ich spitze, dass ihr die im Protokol drin habt. Damit kann man das ganze schön asynchron hoch ziehen.

  • maat changed the title to [gelöst] Tinkerforge TCP/IP Protocol, Sequence number
Posted
1 hour ago, rtrbt said:

15 Zahlen, nur die 0 ist für Callbacks reserviert.

Ja, genau. Das mit dem Pool bezog sich auf die Zahlen, aus denen ich die Nummern wähle, bzw. ich löse es durch eine Queue, in die die Zahlen zurück gegeben werden, wenn der Request durch ist.

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...