s = serial('COM3');
fopen(s);
Hier muss man einfach den entsprechenden COM-Port eintragen. Danach kann man auch schon alle verfügbaren Zeichen einlesen:
str = fscanf(s);
Das Problem daran ist allerdings, dass es auch sein kann, das eine Nachricht vom Arduino erst halb gesendet wurde und alle bisher gesendeten Zeichen eingelesen werden. Das kann man umgehen indem man z.B. alle gelesenen Zeichen in einen String schreibt und diesen dann ausliest. Am Ende sollte man nicht vergessen, den Port wieder zu schließen:
fclose(s);
Als nächstes möchte ich nun erklären wie man mit C# kommuniziert. Prinzipiell muss hier auch zuerst ein Port geöffnet werden:
port = new SerialPort("COM3", 9600);
port.Open();
Danach kann man direkt alle existierenden Zeichen lesen (analog zum Beispiel mit Matlab):
string indata = sp.ReadExisting();
In C# muss man den Port nicht unbedingt schließen, da dies beim Beenden des Programmes automatisch passiert.
Keine Kommentare:
Kommentar veröffentlichen