web-dev-qa-db-ja.com

ttyからファイルへの書き込み/ファイルへの読み取りを行うシリアルポートプログラム?

シリアルポートとの間でデータを送受信するために使用できるコマンドラインプログラムを探しています。テストプロセスを自動化したい-ファイルをttyPCに送信し、outputをファイルに受信して結果を比較するテストスクリプトを開始します。まず、2つのプロセスでcatを試しました。

# output
echo "Output"
cat /dev/ttyPC > ./out/out${fileNumber}.txt &
outputPID=$!

#input
echo "Input"
cat ./in/in${fileNumber}.txt > /dev/ttyPC

しかし、これは安定していません。時々、それは絶えずデータを送信している、または「以前に開かれたファイル」に問題がある、または2番目のttyの開始が最初にcatを閉じる。

次に、minicomを試しました(script.txtがデータを送信しています)minicom -D /dev/ttyPC -b 115200 -8 -C log1.txt -S script.txtですが、コマンドラインからパリティを設定できません。

もっと良いものはありますか?

2
s.paszko

私は問題を解決するためにpythonスクリプトを記述しました。このスクリプトは、シリアルポートデバイス、入力ファイル、出力ファイルを引数として取り、入力ファイルの内容をシリアルポートに送信し、同時に読み取ります(量バイトは入力ファイルサイズに等しい)から出力ファイルへ。すべてが読み込まれた場合、または5秒間データが発生しなかった場合、スクリプトはポートを閉じて終了します。

https://github.com/folkien/pyIoCat

usage: serialCat [-h] -i INPUTFILE -o OUTPUTFILE -d DEVICE [-B BAUDRATE]
                 [-P PARITY]

optional arguments:
  -h, --help            show this help message and exit
  -i INPUTFILE, --inputFile INPUTFILE
                        input file
  -o OUTPUTFILE, --outputFile OUTPUTFILE
                        output file
  -d DEVICE, --device DEVICE
                        tty Device
  -B BAUDRATE, --baudrate BAUDRATE
  -P PARITY, --parity PARITY
0
s.paszko

minicomは、主に構成ファイルから設定を取得します。デフォルトは/etc/minicom/minirc.dflですが、他の構成を/etc/minicom/minirc.<configuration name>として保存したり、ホームディレクトリに~/.minirc.<configuration name>として保存したりできます。

/dev/ttyPCをデフォルトのポートとして使用し、必要に応じて速度とパリティを設定して、1つ以上の準備済み構成ファイルをセットアップできます。たとえば、minicom -s ttyPCをrootとして実行し、Serial port setupメニューに移動し、必要に応じて調整(パリティを含む)し、Save setup as ttyPCを選択してMinicomを終了します。これで/etc/minicom/minirc.ttyPCファイルができました。 root以外のユーザーとしても、minicom ttyPCのようにMinicomを起動することで、その設定を使用できます。複数の構成設定セットが必要な場合は、必要に応じて、異なる構成名を使用して繰り返します。

コマンドラインオプションを使用して、構成ファイルの設定を上書きできます。したがって、可能なすべてのパリティ設定を含む複数の構成ファイルを作成し、コマンドラインオプションを使用して残りを上書きすることができます。

minicom構成ファイルは単なるテキストです。テスト環境のセットアップを完全に自動化する必要がある場合、スクリプトに構成ファイルの内容を含めることができ、構成ファイルに書き込むminicomの使用を開始する前。

1
telcoM