
QNX オペレーティング システムで USB シリアル デバイスを設定して、次のようなコードで使用するにはどうopen("/dev/serusb1")
すればよいでしょうか。VMWare を使用して QNX をホストしています。USB アダプターが正しく接続されているかどうかを確認するにはどうすればよいですか。
答え1
実行する必要があるドライバーは devc-serusb と呼ばれ、実行すると、ハードウェアが存在する場合は /dev に /dev/serusbx デバイスが表示されます。(x はデバイス インデックスです)
USB-シリアルデバイスを物理ボックスに接続した後、それが実行中の QNX Vmware イメージに接続され、ドライバーの実行後にデバイスが実際に /dev に表示されることを確認します。
次のステップは、コマンド ラインから動作していることを確認することです。serusb デバイスのもう一方の端を、データを送信するものに接続します。次に、コマンド ラインでこれを実行します。
# cat /dev/serusb1
データが何も入ってこない場合は、ボーレートまたはその他のシリアル パラメータがオフになっている可能性があります。stty コマンドのドキュメントを参照して、パラメータを正しく設定してください。115200 8-n-1 で実行している場合は、次のようにします。
# stty baud=115200 < /dev/serusb1
コマンドラインからデバイスを 'cat' したときにデータを表示できる場合は、プログラム内からデバイスを開いて、ファイルであるかのように読み取る準備が整っています。次のようになります。
int main(int argc, char* argv[]) {
int fd=-1;
char ch;
fd = open("/dev/serusb1", O_RDONLY);
while(read(fd, ch, 1) > 0) {
printf("%c", ch);
}
}