私はGTK + 2.0 GUIを使用してCで簡単なアプリケーションを開発しています。もちろん、Linuxでは、このアプリケーションは、USBポートを介して接続され、FTDIドライバーを使用してUSBポートを介してRS232非同期プロトコルをエミュレートするデバイスを制御するように設計されています。
関数g_io_channel_write_chars()
を使用してデバイスにデータを送信しています。問題は、私が送信しているシーケンスが、ASCII であるがどの (目に見える) 文字にも一致しない多くの値で構成されていることです。
たとえば、送信\x40\x40\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01
しているときは機能しません。プログラムはエラーで停止します。
GLib:ERROR:/build/buildd/glib2.0-2.34.1/./glib/giochannel.c:2382:g_io_channel_write_chars: code should not be reached
Przerwane (core dumped)
関数を使用sprintf
してこのシーケンスをテーブルに配置すると、最初の 2 つの値のみがコピーされ、このシーケンスはエラーなしでデバイスに送信されます。
次に、私の質問は、デバイスにバイトを送信するにはどうすればよいかということです。これに相当するものはありg_io_channel_write_chars()
ますか?私は GIOChannel のドキュメントを調べてきましたが、このようなものは見つかりませんでした。どうもありがとうございました。