C++ COMPort auslesen

M1ch1

Lieutenant
Registriert
Nov. 2009
Beiträge
787
Hi,

Ich versuche gerade mit C++ serielle Communication zu ermöglichen.

Anwendung ist, dass ich Daten über einen emulierten COMPort empfangen will.

Soweit so gut. mit einem im Internet gefundenen Beispiel funktioniert der empfang auch schon, allerding erhalte ich dabei nur einen string, der sowohl für die Ausgabe, als auch für die Weiterverarbeitung erst aufbereitet werden müsste.
Code:
String^ indata = sp->ReadExisting();
dies war die verwendete Zeile dafür.

NAch etwas googlen bin ich auf die ReadByte () Funktion gestoßen, die die gesendeten Daten BYteweise in ein Array speichert. Wäre für meinen anwendungsfall also ideal.

Code:
int EmpfangeneDatenArray[16];
int indata = sp->Read(array<int>^EmpfangeneDatenArray,1,16);
Dies ist der dazu von mir erstellte Code, allerdings bin ich mir absolut nicht sicher, wie ich dass Array korrekt angeben muss. Denn so wie ich es angegeben habe, wird mir immer ein fehler ausgegeben "der Typename ist unzulässig". (der Fehler wird bereits in Visual Studio ausgegeben)

Wo liegt mein fehler? Hab es auch schon wie auf der MSDN seite mit array<unsigned char>^ versucht, und ebenfalls einen fehler erhalten.

Grüße M1ch1
 
Zuletzt bearbeitet:
Hi,
ich kenne mich zwar nicht mit C++ aus, komme aber von C.
Und dort ist es so, dass ein String dasselbe ist, wie ein Array aus chars.
Du also identisch darauf zugreifen kannst.
Ich kann dir leider gerade keinen Beispielcode senden, aber evtl hilft dir Google da weiter :))

Gruß
 
Soweit so gut. mit einem im Internet gefundenen Beispiel funktioniert der empfang auch schon, allerding erhalte ich dabei nur einen string, der sowohl für die Ausgabe, als auch für die Weiterverarbeitung erst aufbereitet werden müsste.
Kannst du das mal genauer beschreiben? Ein String ist doch die beste Datenform um ihn in C++ auszugeben. Auch zum weiter verarbeiten ist er sehr gut, weil ein string wie ein byte array verwendet werden kann aber noch viel mehr bietet.
myString[3] zeigt dir zB das 4te empfangene Zeichen.
Wenn du die Daten schon als String hast ist eigtl das schlimmste geschafft. Was genau würdest du denn gerne anschließend machen wo du denkst, dass ein anderes Format besser geeignet wäre?
 
ok wenn man direkt auf den string zu greifen kann, dann lass ich es dabei ;)

Daten werden als 16byte hex gesendet, und müssen anhand der Position und des werte bewertet werden.

DA aber ein string wie ein Array ansprechbar ist, hat sich mein "Problem" in luft aufgelöst. Dachte man müsste den String davor erst noch in die einzelnen Elemente zerlegen.

Danke für die hilfe.
 
Zurück
Oben