Unsigned char über SerialPort Klasse



  • Hallo, ich möchte ein kleines Programm schreiben, welches 8-bit 21 Kallibrierwerte an einen Mikrocontroller über die Serielle Schnittstelle sendet.
    Als Programmierumgebung hab ich mir Visual C++ 2005 Express runtergeladen.
    Ich krieg es einfach nicht hin, eine Kette von Bytes über die Schnittstelle rauszugeben, immer wenn ich die 21 unsigend char werte in eine System::String wandle und dann in serialPort1->Write schreibe kommen nur die Hälfte der Bytes beim Controller an. Irgendwie hab ich den Verdacht, dass System::String nur gültige ASCII Zeichen kenn, wenn ich nähmlich 0x00 oder 0x01 senden will kommt nix raus.
    Wie kann ich das Hinbiegen über die Serielle schnittstelle mit VC++ 2005 x beliebige Bytes zu versenden ??
    Muss ich schlimmstenfalls anstatt auf die Visual C++ eigene Klasse auf ein anderes Port dll zurückgreifen ?
    Hätte da jemand einen vorschlag ?
    Optimal wäre es, wenn ich direkt nen unsigned char array versenden könnte, ohne die Typenumwandlung in nen Char oder eben in einen System::String.



  • Warum verwendest Du auch einen System::String ??? Du willst doch Daten senden und keine Strings, oder?
    Es auch auch angemerkt, dass System::String UNICODE ist (also 16-bit) und keine 8-bit wie Du annimmst...
    Per default wird der String dann nach ASCII convertiert...

    Die Daten werden natürlich nur bis zu einem "NUL" Zeichen übertragen, da ja dann der String aufhört...
    Du solltest also

    array<Byte> ^bytes;
    

    verwenden...



  • Ok danke für den Tipp, funktioniert prächtig. Ein Problem hab ich trotzdehm noch, wie Konvertiere ich den Inhalt eines Textfeldes als String in einen Array von Bytes ??
    In der Hilfe hab ich ConvertAll gefunden, leider verstehe ich nach der Beschreibung nicht wie ich das einsetzen kann.
    Wie bringe ich den Wert von this->textBox2->Text in array<Byte>^arr.



  • System::String ^str = "abc";
        array<Byte> ^bytes = System::Text::Encoding::ASCII->GetBytes(str);
    


  • Thx, wirklich n geiles Forum hier 😃
    Gruss


Anmelden zum Antworten