ich meine Seriengerät mit hexadezimal als data = "\x35\x0d"
dargestellt schreiben (die 5 und Carriage Return) mit diesem Code:Hex-String an Bytes für ASIO schreiben
boost::asio::write(
*serial_port,
boost::asio::buffer(data.c_str(), data.size()),
boost::asio::transfer_at_least(data.size()),
error
);
Wie könnte ich die Zeichenfolge konvertieren „350d“ in eine Byte-Zeichenfolge für den Schreibzugriff auf meine serielle Schnittstelle? Nicht alle meine Befehle sind fest codiert. Vielen Dank.
danke; Ich brauche die Funktion, um eine Zeichenfolge zurückzugeben; Ich fand sehes Antwort hier ziemlich gut: http://StackOverflow.com/a/36627615/4056146 – xinthose
Es ist ein bisschen seltsam, eine 'std :: string' für Binärdaten zu verwenden, aber es funktioniert. Solange Sie wissen, dass Sie C-Funktionen wie "strlen" nicht verwenden können, wenn die Daten Nullwerte enthalten. Damit dieser Code Zeichenfolgen verwendet, müssen Sie im Grunde nur die Vektoren für Zeichenfolgen wechseln und 'char' anstelle von' uint8_t' verwenden. Die verknüpfte Lösung ist ein bisschen schöner, da sie keinen 'stringstream' verwendet. – paddy
OK, ich verstehe. Ich werde mit meinen Ergebnissen bei der Arbeit berichten. – xinthose