Forum: Digitale Signalverarbeitung / DSP / Machine Learning Oszilloskop-Objekt von Matlab an C++ übergeben


von Cereza (Gast)


Lesenswert?

Hallo,

ich habe ein Matlab Programm welches mit einem Oszilloskop über 
VISA/GPIB kommuniziert. Zuerst werden alle Einstellungen vorgenommen, 
dann die Messungen gestartet und die Daten auch wieder zurück an den PC 
übertragen.
Nun möchte ich die Messung an sich jedoch in ein c++-mexFile auslagern, 
damit das ganze Programm (hoffentlich) etwas schneller läuft.

Das mexFile habe ich bereits erstellt und wenn ich dort eine neue 
ViSession anlege, klappt auch die Messung, allerdings sind dann alle 
Einstellungen (die ja noch in Matlab vorgenommen wurden) weg.
Mein Problem liegt nun darin, dass ich das Oszilloskop-Objekt aus Matlab 
an das mexFile übergeben muss, damit man es dort als ViSession weiter 
verwenden kann. Prinzipiell weiß ich wie man Daten übergibt und bei 
einfacen Datentypen (int, char etc.) funktioniert das auch einwandfrei. 
Lediglich das Oszilloskop-Objekt wird beim Übergeben irgendwie geleert.
Laut VISA-Dokumentation kann man eine ViSession über 2 Typen auf den 
einfachen Daten Typ unsigned long zurückführen.
Eine Übergabe ala:
unsigned long scopeObj = *(mxGetPr(prhs[0])); oder
ViSession scopeObj = *(mxGetPr(prhs[0]));
funktioniert leider nicht.

Ich würde mich freuen, wenn jemand eine Idee hat, wie ich dieses Problem 
lösen kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.