Ich schreibe eine OS X-App, die über eine serielle Verbindung mit einem Arduino UNO interagiert. Es hat derzeit kein Problem, Strings von der UNO zu lesen, aber ich kann es nicht schaffen, die richtigen Newline- und Carriage-Return-Zeichen für ausgehende Strings zu senden.Fügen Sie Newline und Carriage-Return in Swift String ein
Der Code für die Zeichenfolge zu senden ist wie folgt:
@IBAction func SendCommand(sender: AnyObject) {
let data = self.sendTextField.stringValue.dataUsingEncoding(NSUTF8StringEncoding)
self.serialPort?.sendData(data)
}
Für den Moment I versucht haben, um manuell Einfügen ‚\ r \ n‘ am Ende der Nachrichten, wenn das Programm läuft. Sollte das nicht dem entsprechen, was die Arduino-IDE programmatisch in ihrem eigenen seriellen Monitor tun würde? Meine App interpretiert diese Befehle jedoch nicht als Newline of Carriage-Return-Zeichen. Ist es nur programmatisch möglich und wenn ja wie?
Vielen Dank im Voraus!
Der Code zeigt das Hinzufügen von/r/n und auch Hex-Dumps. Wenn Sie die zusammengesetzte Anweisung in mehrere einfache Anweisungen aufteilen, wird das Debuggen vereinfacht, und es gibt nichts zu gewinnen, wenn Sie alle Methodenaufrufe zusammenmischen. – zaph
Nun für den Moment habe ich einfach \ r \ n eingegeben, nachdem ich einen Befehl in meinem Programm eingegeben hatte (Befehl: Dies ist ein Befehl \ r \ n), nur um zu überprüfen, dass es funktionieren würde, aber aus irgendeinem Grund hat das nicht funktioniert . Ich stelle mir vor, dass die Escape-Zeichen nur innerhalb des Programms erkannt werden, ist das korrekt? – user3185748