RS232シリアルポートから端末に、ファイルへのディレクティブを使用してデータを受信したい。それはかなり簡単なはずです。
cat /dev/ttyS0
cat /dev/ttyS0 > file.txt
その前に、デバイス(生化学分析装置)のパラメーターと一致するようにパラメーターを構成しました。
Sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb
つまり、
しかし、端末には何も表示されません。空白です。何が問題ですか?
Minicom を最初に試して、シリアルポートが何を返すかを確認してください。 Sudo apt-get install minicom
でインストールします
次のように開始します(ttyS0の場合)。
Sudo minicom -D /dev/ttyS0
Minicom内から(ctrl-A P
を使用して)通信パラメーターを設定できるため、それらが正しいことを確認できます。
デバイスが特定のプロトコルを使用している場合、通信を開始するためのコマンドが必要になる場合があります。だから、ユーザーマニュアルを見てください。
たぶん、あなたのデバイスはハードウェアハンドシェイクを使用するように設定されています。可能であれば、オフにします(少なくとも最初は)。
オフにできない場合は、自分の側でも設定する必要があります。 Minicomでは、これはctrl-A O
の下にあり、次にserial port setup
の下にあります。
私はシリアル通信をデバッグするためにMinicomを頻繁に使用しましたが、それが最も効果的であることがわかりました。
OPからさらに情報を受け取りました。
実験装置(Cobas C311)はASTMプロトコルを使用しています。インターフェイスで、[ホストに送信]をクリックするだけで、一連のASTMレコードが送信されます。私はそれらをファイルで受け取る必要があります。他に設定はありますか?データの取得を開始するコマンドは何ですか?...そしてデータをファイルに保存する方法は?
適切なパラメータを選択しました。 Minicomは96008N2を表示しています。それが大丈夫だといいのですが。しかし、何も受信しません-1ビットではありません。アナライザーは、「機器は送信要求としてENQを送信しましたが、ホストは15秒以内にACKまたはNAKを返しませんでした。(リンクタイムアウト)」と言います。
デバイスは ASTMプロトコル を使用します。デバイスは、データの送信を開始する準備ができたことを示す信号として<ENQ>
文字を送信します。
これは、minicom
またはその他のターミナルプログラムを使用して受信できるものではありません。このプロトコルをサポートする適切なアプリケーションソフトウェアが必要になります。
このプロトコルをサポートするアプリケーションについては、ユーザーマニュアルを読み、インストールディスク(ある場合)と製造元のWebサイトを確認する必要があります。
このデバイスのアプリケーションサポートがない場合は驚きます。それらが何かを提供する場合、それはWindowsアプリケーションまたはいくつかのサンプルコードとライブラリである可能性があります。
自分で何かを書くことは可能ですが、それは簡単なことではありません。いくつかのPythonサポート [〜#〜] astm [〜#〜] があり、 Perlスクリプト を試すことができます。
SOには post とASTMに関する情報もあります。