www.mikrocontroller.net

Forum: Projekte & Code SignalView - octave/gnuplot in C++ einbinden


Autor: Franz N. (abnoname)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich möchte hier mal kurz meine quick and dirty Lösung für eine sehr 
komfortable Möglichkeit, Messwerte von Mikrocontrollern über die 
serielle Schnittstelle, direkt in GNU Octave bzw. GNUplot grafisch 
darzustellen und weiterzuverarbeiten. Enstanden ist es mal für meine 
Studienarbeit als mir die Anbindung Scilab/Octave zur seriellen 
Schnittstelle unter Linux fehlte. Seither ist das mein Mittel der Wahl 
:-)

Das Programm öffnet eine pipe auf die binary der jeweiligen Programme 
und steuert direkt jene direkt mit deren Kommandosprache an.

Für das C/C++ Projekt steht dann z.B. folgende Klasse zur Verfügung:
class GNUoctave
{
public:
    GNUoctave();
    ~GNUoctave();
    void command(const string& cmd);

protected:
    FILE *pipe;
};

Das ganze ist in einem einfachen Konsolenprogramm realisiert, welches 
für meine Zwecke Daten von Mikrocontrollern verarbeitet. Dazu wird die 
serielle Schnittstelle eingebunden (fest im Code: ttyUSB0, 57600 Baud). 
Auf das Kommando "R" an den µC wartet das Programm dann auf einen 
Datenblock: "<"+129Byte+">" und verarbeitet diesen mit verschiedenen 
gnuplot/octace Funktionen.

Als Beispiel ist im Bild mal die Berechnung einer FFT von einem 
digitalisierten Signal, erfasst von einem ARM7.

Falls es jemandem Nützt, stelle ich hier gleich noch den Quelltext rein. 
Compilieren sollte es unter fast jedem aktuellen Linux mit GCC4.3/4.4. 
Spezielle Libs sind nicht von Nöten.

Tschöö
Franz

Autor: Franz N. (abnoname)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und der Quellcode.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.