Hallo zusammen,
ich habe via USB ein USB zu UART Stöpsel angeschlossen.
Der Treiber von Silicon Labs funktioniert einwandfrei:
silabs.com/products/developmen…o-uart-bridge-vcp-drivers
Was möchte ich?
Ich möchte mit dem angeschlossenen Gerät kommunizieren.
Zu dem Gerät selbst gibt es aber leider nicht vielen Informationen.
Was habe ich gemacht?
- ich erstelle mit "open" einen "file descriptor" von "/dev/cu.SLAB_USBtoUART"
- ich nehme den "file descriptor" und erzeuge eine NSFileHandle-Instanz
- ich lausche via NSFileHandleReadCompletionNotification nach -readInBackgroundAndNotify
- ich stöpsle das Gerät an
- ich bekomme ein NSData-Objekt
- ich prüfe das erste Byte und tata, es ist genau was ich erwarte
- bis hierhin alles super und somit kann es nicht grob falsch sein
Nach dem ich das Gerät mit entsprechendem Byte getestet habe möchte ich gleich 1024 Byte schreiben.
Also habe ich von NSFileHandle -writeData: genommen.
Danach bekomme ich die Antwort, die Teile aus den übermittelten Bytes sind.
Das ist natürlich für mich unbrauchbar.
Ich möchte die Daten schreiben und vom angeschlossenen Gerät, nach dem Schreiben, die Daten lesen.
Dort ist natürlich das nächste Byte drin, das mir sagt, ob es richtig oder falsch war.
Aber irgendwas klappt bei dem Schreiben nicht. Auch weiß ich nicht, ob und wie ein "flush" durchgeführt werden muss.
Hat hier jemand Ahnung?
Danke.
Viele Grüße
ich habe via USB ein USB zu UART Stöpsel angeschlossen.
Der Treiber von Silicon Labs funktioniert einwandfrei:
silabs.com/products/developmen…o-uart-bridge-vcp-drivers
Was möchte ich?
Ich möchte mit dem angeschlossenen Gerät kommunizieren.
Zu dem Gerät selbst gibt es aber leider nicht vielen Informationen.
Was habe ich gemacht?
- ich erstelle mit "open" einen "file descriptor" von "/dev/cu.SLAB_USBtoUART"
- ich nehme den "file descriptor" und erzeuge eine NSFileHandle-Instanz
- ich lausche via NSFileHandleReadCompletionNotification nach -readInBackgroundAndNotify
- ich stöpsle das Gerät an
- ich bekomme ein NSData-Objekt
- ich prüfe das erste Byte und tata, es ist genau was ich erwarte
- bis hierhin alles super und somit kann es nicht grob falsch sein
Nach dem ich das Gerät mit entsprechendem Byte getestet habe möchte ich gleich 1024 Byte schreiben.
Also habe ich von NSFileHandle -writeData: genommen.
Danach bekomme ich die Antwort, die Teile aus den übermittelten Bytes sind.
Das ist natürlich für mich unbrauchbar.
Ich möchte die Daten schreiben und vom angeschlossenen Gerät, nach dem Schreiben, die Daten lesen.
Dort ist natürlich das nächste Byte drin, das mir sagt, ob es richtig oder falsch war.
Aber irgendwas klappt bei dem Schreiben nicht. Auch weiß ich nicht, ob und wie ein "flush" durchgeführt werden muss.
Hat hier jemand Ahnung?
Danke.
Viele Grüße