ich Matlab bin mit Befehlen fopen
, fwrite
und fscanf
zwischen zwei Laptops mit dem folgenden Code eine Reihe von Kommunikation über serielle Schnittstelle zu öffnen:Aufzeichnung der Zeit während der Kommunikation über serielle Schnittstelle in Matlab
auf dem Laptop # 1:
portID='/dev/tty.USA28Z145P2.2'
s=serial(portID)
fopen(s)
fwrite(s,'67')
auf dem Laptop # 2:
s=serial('COM3')
fopen(s)
out=fscanf(s)
Von dem Skript, das ich ausführe, ist der fwrite manchmal 67 und manchmal 83. Out
kann alle diese aufzeichnen.
Ich versuche einen Weg zu finden, um den genauen Zeitpunkt aufzuzeichnen, zu dem jede fscanf
auftritt, ist das möglich? Ich sammle einige andere Daten und diese Befehle laufen, während die Datenerfassung stattfindet, und ich muss einen Weg finden, um die Zeit aufzuzeichnen, wenn jede fscanf
auftritt, damit ich sie mit meinen anderen Daten synchronisieren kann.
Für z.B. Wenn der COM3-Anschluss '67' scannt, muss ich wissen, zu welchem Zeitpunkt genau dies der Fall ist, da '67' für meine Datensammlung den Beginn einer 12-Sekunden-Periode bedeutet.
Weiß jemand, wie man das macht? Irgendwelche Vorschläge würden sehr geschätzt werden!
Danke,
Maheen
Was haben Sie versucht, so weit? Warum schnappst du dir nicht einfach die aktuelle Zeit, wenn du 'fscanf' über' clock', 'now', etc anrufst? – Suever
Erwarten Sie außerdem, dass MATLAB die Daten aus mehreren Quellen in Echtzeit erfasst oder unterschiedliche Systeme alle unterschiedlichen Daten erfassen? – Suever
@Suever Matlab erfasst Daten aus einer einzigen Quelle. Es ist ein Spektrometer, das auch über eine serielle Schnittstelle angeschlossen ist. Ich habe versucht, Uhr in meinem Skript zu verwenden, aber es gibt mir das Datum und die Zeit usw. aber überschreibt alle vorherigen Erwerbungen. Ich benutze es wie folgt: 'out = fscanf (s); c = Uhr 'und dann prüfen, was out und c sind. out notiert alle Werte von Anfang an, aber die Uhr nicht –