2017-02-07 3 views
0

Kürzlich arbeite ich an der Auto-zu-X-Kommunikation und verwende zwei On-Board-Units (OBU). Es ist möglich, die GPS-Daten auf beiden Modulen mit GPS- und GPS-Clients zu lesen und zu überwachen. Außerdem kann ich die Netzwerkleistung mit iPerf messen. Um dies zu tun, agieren ein Gerät als ein Server und ein anderes als ein Client. Jetzt möchte ich diese zwei Geräte mit zwei verschiedenen Laptops verbinden und die Netzwerkleistung messen sowie die GPS-Daten außerhalb der OBUs lesen. Außerdem muss ich zwischen GPS-Daten und iPerf-Ausgabe synchronisieren, damit ich TPV (Zeit, Position, Geschwindigkeit), Durchsatz, Latenz usw. erkennen kann. Jetzt muss ich GPS- und iPerf-Daten synchronisieren, damit ich sie als Log-Datei speichern kann. file und verarbeiten Sie die Daten später. Kann mir jemand bei der Idee helfen, wie das geht? Ich habe bereits eine Lösung versucht, die ist - Zeitstempel sowohl GPS & Iperf Daten und speichern, um Protokolle. Ich habe eine zweite Lösung, GPS-Daten als iperf Payload zu senden, mit der Option -f. Ich würde gerne die zweite ausprobieren, aber nicht genau, wie das geht. Hilfe von jedem wird wirklich geschätzt.Benötigen Sie eine Lösung, um die von iPerf und GPS empfangenen Daten zu synchronisieren

Antwort

0

Sie erwähnen nicht, welche Skriptsprachen oder Programmiersprachen Ihnen vertraut sind. Es gibt viele Möglichkeiten, dies zu tun, von einem einfachen Python- oder Bash-Skript bis hin zu komplexeren C++ - Programmen.

Ich wollte nicht eine ganze Demo-Software für Sie nicht genau wissen, was Sie gesucht haben, aber ich konnte Teile davon sample c++ gpsd client nehmen und es so ändern, dass es auch iperf läuft und als csv (die Sie können dann zu einem Logger pipe oder wie Sie es tun möchten).

Sie können die Variable iperfCmd ändern, um den Befehl iperf zu ändern. Beispielsweise können Sie es in "-rey C" ändern, wenn Sie einen bidirektionalen Test ausführen möchten. Sehen Sie sich iperf --help an, was Sie brauchen, aber Sie müssen das Flag "-y C" für die CSV-Ausgabe beibehalten. Wenn Sie gpsd haben (und manchmal auch die notwendigen libgps-dev Bibliotheken), können Sie den Code als solche kompilieren:

g++ -Wall -std=c++14 -pedantic $(pkg-config --cflags --libs libgps) gpsd-iperf-example.cpp -o gpsd-iperf-example 

Dann einfach laufen (Drücken Sie STRG-C zum Beenden):

gpsd-iperf-example servername 

Unter der Annahme, gpsd ordnungsgemäß funktioniert, und Sie verwenden iperf v2, sollte die Ausgabe wie folgt aussehen:

07-05-2017 19:05:10,45.3XXXXX,-75.8XXXXX,192.168.2.36,40466,192.168.2.28,5001,4,0.0-10.0,286785536,228615722 
07-05-2017 19:05:11,45.3XXXXX,-75.8XXXXX,192.168.2.36,40468,192.168.2.28,5001,4,0.0-10.0,328859648,261792317 
07-05-2017 19:05:12,45.3XXXXX,-75.8XXXXX,192.168.2.36,40470,192.168.2.28,5001,4,0.0-10.0,293601280,234307789 

Welche Sie weiter analysieren kann oder einfach die C++ Programm einzustellen. Nicht sicher, ob dies das war, was Sie gesucht haben, aber auch hier gibt es viele Möglichkeiten. Suchen Sie einfach nach Codeschnipsel und passen Sie sich an Ihre Bedürfnisse an.

Verwandte Themen