Change language

Zuletzt besucht

Ausgewählte Projekte

Web Applikationen

Links

Andere Projekte

Meta

Ein .csv zu .png Konverter für Oszilloskop-Datensätze

Jun 2015

Wähle .csv Datei (1MB max. Dateigröße):

Höhe:
Automatisch
Lege diese Höhe fest:

Breite:
1 Pixel pro Datenzeile (beste verlustfreie Kompression)
Lege diese Breite fest:

Visualisierung:
Alle Kanäle teilen die gleiche 0V Linie
Trenne die Kanäle

Vor einiger Zeit habe ich das Datenübertragungsprotokoll zwischen zwei Schaltungen in meinem Lexmark Drucker analysiert. Das Ziel war es, den Drucker mit billiger Tinte drucken zu lassen (Lexmark-Tinte kostet übertrieben viel).
Das Problem an der Analyse lag in der Speicherung der Daten. Screenshots der Messkurven auf dem Oszilloskop zu machen war zu zeitintensiv, da ich die einzelnen Screenshots nachträglich zusammenfügen musste. Die einzige andere Möglichkeit, die Daten zu speichern, war die Ausgabe als „comma seperated values“ (.csv) Datei. Diese war aber eine Textdatei, nicht ein einfach zu lesender Graph.
Also nahm ich die Herausforderung an, einen Daten-Visualisierer in PHP zu programmieren, welcher die .csv Datei in eine .png Bilddatei umwandelt.

Eine Bilddatei, welche von meiner Applikation erstellt wurde.

Ich fand es wichtig, eine kleine Menge an Einstellbarkeit einzubauen. Man kann die Höhe und Breite festlegen (oder die Software das Optimum wählen lassen) und auswählen, ob man die Kanäle überlappend oder untereinander dargestellt haben möchte. Mit den Datenpaketen meines Druckers, welche über 2 Drähte laufen, habe ich die „untereinander“ Option gewählt, sodass ich die einzelnen Kanäle besser untersuchen kann.
Die einzige Begrenzung ist die Größe des Bildes. Es sollte aber kein Problem sein – die maximale Bildfläche beträgt 12.5 Millionen Pixel (Bsp.: 10.000px X 1.250px).

Struktur der CSV Eingabedatei

Wenn du eine .csv Datei eines Rigol DS1052E hast, solltest du dich nicht um Kompatibilität kümmern müssen, ich verwendete das gleiche Modell. Falls nicht, kannst du hier die Struktur überprüfen:

Die ersten paar Zeilen einer kompatiblen Datei

Des Weiteren kann die Applikation bis zu 8 Kanäle darstellen, was mehr als genug sein sollte. Wenn du dir unsicher bist, ob deine Datei funktioniert, probiere es aus! Wähle aus den verschiedenen Optionen die aus, mit denen dein Datensatz an besten dargestellt wird.
Falls du den PHP Code sehen möchtest, er ist open-source! .