2012-02-08 21 views
0

UARTオスインターフェイスを備えたバーコードリーダーは、Ubuntu 10.10デスクトップのシリアルポート経由で接続されています。独自のreadmeドキュメントから、私が送るコマンドのためにデバイスからACKかNAKを得るためにACK/NAKハンドシェークを有効にしなければならないことを知りました。私はLinux環境でCシリアルポートプログラミングを使用してそれらを有効にする方法がわかりません。UARTシリアルポート通信のACK/NAKハンドシェイクを有効にします。

誰かがこれにいくつかの光を投げることができますか?

UPDATE:

はソフトウェアハンドシェイクを有効にするには、次のでした - スピードを設定
system ("stty ixon -ixoff -F /dev/tty");
bzero (shcmd, 64);
sprintf (shcmd, "stty ixon -ixoff -F %s", UART_DEVICE);
system (shcmd);

から
system("stty speed 9600");
bzero (shcmd, 64);
sprintf (shcmd, "stty speed 9600 -F %s", UART_DEVICE);
system (shcmd);

コマンドを書いた -
unsigned char req_rev[6] = {0x05,0xA3,0x04,0x00,0xFF,0x55};
n = write(fd, req_rev, 6);

デバイスから

読む -
int n = read(fd, result, 254);

しかし、私が得た "EGAIN" 読みながら毎回。なぜ私はそれを得る任意のアイデア?

答えて

1

ACK/NACKが存在しません。存在するものはXON/XOFFです。 XON/XOFFのdoc利用ACK/NACK

  • 、そしてあなたの問題は、 "私のシリアルポートにXON/XOFFを設定する方法" である:ここから。

  • docが正しいです。まず、適切なコマンドを送信して、デバイスのACK/NACKメカニズムを有効にする必要があります。助けを得るためには、文書を閲覧したり、詳細を提供する必要があります。

+0

ご回答ありがとうございます。その方向に進みましょう。 –

関連する問題