シリアルポートにデータを送受信するために使用できるコマンドラインプログラムを探しています。テストプロセスを自動化したい。テストスクリプトを起動し、ファイルを送信し、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
コマンドラインでパリティを設定できませんでした。
もっと良いものがありますか?
答え1
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
。
答え2
私の問題を解決するために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
答え3
sttyコマンドでシリアルポートを設定する必要があります。