Jump to content

IPConnection socket data recording


Recommended Posts

Hallo TF-Team,

 

ich habe in die IPConnection am Anhang eine einfache Art des Recordings der zum Stack gesendeten Daten eingefügt.

Ich nutze dass, um Command-Sequenzen mit Zeitstempel zu extrahieren, die ich "manuell" angesteuert habe.

 

Auch für Analysezwecke könnte das recht hilfreich sein, wenn ein record+replay verfügbar wäre. Der Trace hat folgendes Format (nur auf Linux übersetzt):

 

SEC.USEC          LEN UID    FUNC OPT  PAYLOAD DATA
1376724754.011230  0C 00009C4C 08 68 - F4 01 00 00
1376724754.011323  10 00009442 03 70 - 01 00 01 00 D0 07 00 00
1376724754.017937  0C 00009C4C 0A 88 - F4 01 00 00
1376724754.023898  09 DC332931 01 90 - 00
1376724754.023926  0B DC332931 07 A0 - 00 FF FF
1376724754.023946  0B DC332931 0A C0 - 00 FF FF
1376724754.023975  0D DC332931 10 D0 - 00 6C EE 94 11

 

Vielleicht übernehmt Ihr sowas in der Art in die API.

ip_connection.h

ip_connection.c

Link to comment
Share on other sites

Einfacher und wiederverwendbarer als das in die Bindings einzubauen wäre es daraus ein eigenes Tool zu machen, das man zwischen Programm und Stack schaltet. Diese könnte dann die Pakete durchschleust und dabei mitschneiden und auch wiederholen.

Link to comment
Share on other sites

Ich hab schonmal darüber nachgedacht ein Plugin für Wireshark zu machen welches unser Protokoll versteht. Das wäre dann IMO noch einfacher. Damit könnte man sich dann sowohl die USB als auch die TCP/IP Kommunikation angucken ;).

Link to comment
Share on other sites

Ein eigenes Programm wäre auch OK, es sollte nur möglichst einfach in der Anwendung sein.

 

In den Bindings hat es den Vorteil, dass es zur Laufzeit über den Client ein-/ausgeschaltet werden kann und relativ einfach umzusetzen ist. Aber damit verbunden auch den Nachteil: der Client muss die Befehle kennen und aufrufen und da die IPConnection handgeschrieben ist relativiert sich das mit "einfach" über alle Bindings wohl.

 

Ein Replay der aufgezeichneten Commands, die ich über eine 2. Socket-Connection zum Stack sende funkitoniert im ersten Test wie erwünscht:

das Relais bekommt z. B. Monoflop Befehle und über die erste Verbindung der IPConnection kommt der Callback wenn der Monoflop beendet ist. Die Servos bewegen sich zeitgesteuert wie von Geisterhand ...

 

Jetzt muss ich "nur" noch Aktions-Commands von Zustands-Commands (z. B. callback setzen) auseinander halten können.

Link to comment
Share on other sites

  • 2 months later...

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.

 Share

×
×
  • Create New...