maat Posted January 19, 2021 at 06:18 AM Posted January 19, 2021 at 06:18 AM (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 January 19, 2021 at 11:01 AM by maat Quote
rtrbt Posted January 19, 2021 at 09:27 AM Posted January 19, 2021 at 09:27 AM 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. Quote
maat Posted January 19, 2021 at 11:00 AM Author Posted January 19, 2021 at 11:00 AM 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. Quote
maat Posted January 19, 2021 at 11:02 AM Author Posted January 19, 2021 at 11:02 AM 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. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.