Hallo,
mit dem Befehl fprintf(vtek,'CURVESTREAM?') versetze ich mein Oszilloskop in einen only-talk-modus und schickt mir ununterbrochen Daten. Allerdings hab ich keine Ahnung, wie ich diese Daten abholen/auffangen kann. Ich habe nur einen C-code mit dem ich nicht viel anfangen kann/nicht übersetzen kann:
Code:
ViPInt8 data = (ViPInt8)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 2000000 * sizeof(ViInt8));
ich kann Dir bei der Lösung im Prinzip nicht helfen. Ich versuche nur mal, den Code auseinander zu nehmen:
Code:
% hier wird eine Methode aufgerufen, der dynamisch, teils mit weiteren Methoden, aktuelle Werte zugewiesen werden.
Datentyp_A data = (Konvertiere in Datentyp_A) HeapAlloc(HoleVariable(), Variable_c, 2000000 * Größe_von(Variable_d));
long size = 2000000 %ist sie immer mit der obigen identisch? dann würde ich sie mehrmals verwenden.
%Hier wird eine (Datenbank-)Abfrage gemacht, wobei die Abfrage stets neu zusammengebastelt wird.
viStatus = viQueryf(VI, "CURVESTREAM?\n", "%#b", &size, data);..."
% das letzte ..." hat kein Pendant und steht wohl für weiteren Quellcode?
Ich weiß nicht, was Du davon schon selbst wusstest. Um verstehen zu können, was das Matlab-Programm tun soll, braucht es weiteres Wissen:
Geht es um eine Neuschreibung des C-Codes in Matlab?
Wie ist der Datentyp ViPInt8 definiert?
Was machten die Methoden HeapAlloc, GetProcessHeap, viQueryf?
Was steht in den Konstanten HEAP_ZERO_MEMORY, VI?
Wie ist die Variable ViInt8 aufgebaut?
Wofür soll viStatus verwendet werden?
Ich bezweifle, dass es lediglich daran liegt, dass ich noch nie ein Oszilloskop verwendet habe, dass ich mit Deinem Wunsch nichts anfangen kann. Wenn dieser Code-Schnipsel der relevante ist, dann fehlt Dir entweder das Wissen um den Hintergrund oder Du setzt diesen vorraus. Wahrscheinlich ist es auch eher was für Leute mit Simulink-Kenntnis. Ich weiß es nicht.
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.